Como demostración, vamos a controlar un motor DC a través de la salida B del módulo. El pin ENB se conectará con el jumper a +5V.
El ejemplo esta desarrollado en Arduino UNO, pero el código es compatible con cualquier Arduino o pinguino.
El programa básicamente activa el motor en un sentido por 4 segundos, luego detiene el motor por 0.5 segundos, después activa el motor en sentido inverso por 4 segundos y por último detiene el motor por 5 segundos. Luego repite la acción indefinidamente.
int IN3=5;
int IN4=4;
void setup() {
pinMode(IN4,OUTPUT);
pinMode(IN3,OUTPUT);
}
void loop() {
digitalWrite(IN4,HIGH);
digitalWrite(IN3,LOW);
delay(4000);
digitalWrite(IN4,LOW);
delay(500);
digitalWrite(IN3,HIGH);
delay(4000);
digitalWrite(IN3,LOW);
delay(5000);
}
Si queremos controlar la velocidad del motor, tenemos que hacer uso de PWM. Este PWM será aplicado a los pines de activación de cada salida o pines ENA y ENB respectivamente, por tanto los jumper de selección no serán usados.
El programa controla la velocidad de un motor DC aplicando PWM al pin ENB del módulo L298N.
int IN3 = 5;
int IN4 = 4;
int ENB = 3;
void setup(){
pinMode (ENB, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
}
void loop() {
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
analogWrite(ENB,55);
delay(2000);
analogWrite(ENB,105);
delay(2000);
analogWrite(ENB,255);
delay(2000);
analogWrite(ENB,0);
delay(5000);
}