Arduino. Exemplo 8: Control de motor por PWM

Esquema:

Programa:
/* Exercicio 8 Control dun motor con axuda dun transistor e un potenciómetro
para controlar a velocidade. Con un pulsador verde activamos o motor e con un
pulsador vermello parámolo. O accionamento do relé controlamolo con un transistor.*/
int pulsador9 = 9; // o pulsador verde está conectado no pin 9
int pulsador8 = 8; // o pulsador vermello está conectado no pin 8
int pin5=5; // activamos o pin 5 para enviar un
// sinal a base do transistor para activalo
int valoranalox; //valor e nome da variable analóxica asociada co valor do potenciómetro
int estadop9; // Variable dixital de entrada, cando accionamos o pulsador verde activamos esta entrada
int estadop8; //Variable dixital de entrada, cando accionamos o pulsador vermello activamos esta entrada
void setup() {
// estado inicial da placa e pulsador
Serial.begin(9600); // velocidade de comunicación de datos da placa ao ordenador
pinMode(pulsador9, INPUT); // pin 9 é unha variable de entrada
pinMode(pulsador8, INPUT); // o pin 8 é unha variable de entrada
pinMode (pin5,OUTPUT); // o pin 5 é unha variable de saída
}
void loop()
{
valoranalox=analogRead(0); //lectura do valor da entrada analóxica 0 (valor da V a saída do potenciómetro)
// este dato representase con 10 bit, vai de 0 a 1023
estadop9 = digitalRead (pulsador9); //leemos o estado do pulsador verde (9), será 1( pulsado) ou 0 (sen pulsar)
estadop8 = digitalRead (pulsador8); // leemos o estado do pulsador vermello (8), será 1 (pulsasdo) ou 0 (sen pulsar)
if (estadop9 > 0){ // se o pulsador verde está pulsado o pin 9 toma un valor destinto de 0
analogWrite (pin5,valoranalox); // o accionar o pulsador verde enviamos un sinal a base do transisor para activala
Serial.println(valoranalox);
}
else { //se non accionamos 9
if (estadop8 > 0) // e accionamos 8
analogWrite (pin5,0); // deixamos de activar o transistor e o motor apaga
}
}
Vídeo:

Deja una respuesta