Para el manejo de la inversión de giro del motor se hace uso del driver de corriente L293D, soporta una corriente de 1A, así que se debe tener en consideración el consumo del motor a conectar.
Los pines 2 y 3 del arduino se encargan de el manejo de la velocidad y sentido de giro del motor, la velocidad del motor es modulada por medio de un PWM, y dependiendo el sentido del giro, usted puede verificar la intensidad por medio de un led, los pulsadores conectados a los pines 4 y 5 se encargan del valor a configurar en el PWM, este valor se encuentra en el rango de 0-255.
/*Ejemplo para manejo de servomotor con arduino
2-> Salida a motor 1
3-> Salida a motor 2
4-> Sube PWM
5-> Baja PWM
*/
int valorPWM=0;// Valor de intensidad del pwm, define la velocidad del motor
int est,est2;// Variables para guardar el estado del pulsador.
void izq(int velocidad);//rutina motor hacia la izquierda
void der(int velocidad);//rutina motor hacia la derecha
void setup()
{
pinMode(2,OUTPUT); //Pin 2 Como salida
pinMode(3,OUTPUT); //Pin 3 Como salida
pinMode(4,INPUT_PULLUP); //Pin 4 Como entrada -> activa con cero
pinMode(5,INPUT_PULLUP); //Pin 5 Como entrada -> activa con cero
digitalWrite(2,LOW);//Apaga el motor
digitalWrite(3,LOW);//Apaga el motor
}
void loop()
{
est=digitalRead(4);//Guarda el estado del pin 4, depende del pulsador
est2=digitalRead(5);//Guarda el estado del pin 4, depende del pulsador
if(est==0)//Aumento Pwm
{
delay(100);//retardo Antirebote
valorPWM +=1;
if(valorPWM>255)
{
valorPWM=255;
}
}
if(est2==0)//Disminuye Pwm
{
delay(100);//retardo Antirebote
valorPWM -=1;
if(valorPWM<0)
{
valorPWM=0;
}
}
//izq(valorPWM);//inicia el giro a izquierda
der(valorPWM);//inicia el giro a derecha
}
void izq(int velocidad)
{
digitalWrite(2,LOW);
analogWrite(3,velocidad);
}
void der(int velocidad)
{
digitalWrite(3,LOW);
analogWrite(2,velocidad);
}
No hay comentarios:
Publicar un comentario