En esta entrada aprenderemos a
utilizar el módulo para programar el giro de las ruedas de nuestro proyecto y
variar la velocidad de giro de las mismas.
El módulo cuenta con todos los
componentes necesarios para funcionar sin necesidad de elementos adicionales,
entre ellos diodos de protección y un regulador LM7805 que suministra 5V a la
parte lógica del integrado L298N.
Cuenta con jumpers de selección para habilitar cada una de las salidas del
módulo (A y B). La salida A esta conformada por OUT1 y OUT2 y la salida B por
OUT3 y OUT4. Los pines de habilitación son ENA y ENB respectivamente
En la parte inferior se
encuentran los pines de control del módulo, marcados como IN1, IN2, IN3 e IN4.
1.- Práctica para el giro de un motor.
Alimentación
Este módulo se puede alimentar de 2 maneras gracias al
regulador integrado LM7805.
Cuando el jumper de selección (marcado en amarillo) de 5V se encuentra activo
(clavija puesta), el módulo permite recibir una alimentación de entre 6V a 12V
DC. Como el regulador se encuentra activo, el pin marcado como +5V tendrá un
voltaje de salida de 5V DC. Este voltaje se puede usar para alimentar la parte de control
del módulo ya sea un microcontrolador o un Arduino, pero recomendamos que el consumo
no sea mayor a 500 mA.
Cuando el jumper de selección de 5V se encuentra inactivo (clavija quitada),
el módulo permite recibir una alimentación de entre 12V a 35V DC. Como el regulador no
esta funcionando, tendremos que conectar el pin de +5V a una tensión de 5V para
alimentar la parte lógica del L298N. Usualmente esta tensión es la misma de la
parte de control, ya sea un microcontrolador o Arduino. El Jumper ENB debe estar puesto.
Conexiones
Código Arduino:
/*
Ejemplo de control de motor DC usando modulo L298
El programa activa el motor en un sentido por 4 segundos,
para el motor por 500 ms, activa el motor en sentido inverso por 4 segundos
y se detiene por 5 segundos. Luego repite la acción indefinidamente.
*/
int IN3 = 5;
int IN4 = 4;
void setup()
{
pinMode (IN4, OUTPUT); // Input4 conectada al pin 4
pinMode (IN3, OUTPUT); // Input3 conectada al pin 5
}
void loop()
{
// Motor gira en un sentido
digitalWrite (IN4, HIGH);
digitalWrite (IN3, LOW);
delay(4000);
// Motor no gira
digitalWrite (IN4, LOW);
delay(500);
// Motor gira en sentido inverso
digitalWrite (IN3, HIGH);
delay(4000);
// Motor no gira
digitalWrite (IN3, LOW);
delay(5000);
}
2.- Práctica para la variación de velocidad
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, pines ENA y ENB, respectivamente, los jumper de selección no serán
usados y se deben quitar. En la placa Arduino se debe utilizar las conexiones
digitales con PWM, en este caso se utiliza el Pin nº 3
Utilizaremos también las salidas para el motor B.
Conexiones:
Código Arduino:
/*
Ejemplo de control de motor DC usando modulo L298
*/
int IN3 = 5; // Input3 conectada al pin 5
int IN4 = 4; // Input4 conectada al pin 4
int ENB = 3; // ENB conectada al pin 3 de Arduino
void setup()
{
pinMode (ENB, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
}
void loop()
{
//Preparamos la salida para que el motor gire en un sentido
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
// Aplicamos PWM al pin ENB, haciendo girar el motor, cada 2 seg aumenta la velocidad
analogWrite(ENB,55);
delay(2000);
analogWrite(ENB,105);
delay(2000);
analogWrite(ENB,255);
delay(2000);
// Apagamos el motor y esperamos 5 seg
analogWrite(ENB,0);
delay(5000);
}
¿Te ha gustado este tutorial?
Colabora con nosotros y haz una
donación: