Uso de Driver L298N para motores DC

Uso de Driver L298N para motores DC

Este módulo basado en el chip L298N te permite controlar dos motores de corriente continua o un motor paso a paso bipolar de hasta 2 amperios.

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.

 

Conexión de alimentación

Este módulo se puede alimentar de 2 maneras gracias al regulador integrado LM7805.

Cuando el jumper de selección de 5V se encuentra activo, el módulo permite una alimentación de entre 6V a 12V DC. Como el regulador se encuentra activo, el pin marcado como +5V tendrá un voltaje 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, el módulo permite 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.

Recomendamos nunca conectar una tensión de entrada al pin de +5V, cuando el jumper de selección de 5V se encuentre activado. Esto provocaría un corto y podría dañar permanentemente el módulo.

Control de un motor DC

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.

Esquema de conexión

 

 

Código en Arduino

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.

 

/* 
 Ejemplo de control de motor DC usando modulo L298
 http://www.roboticadelacosta.uy
 
 El programa activa el motor en un sentido por 4 segundos, 
 para el motor por 1 segundo, activa el motor en sentido inverso por 4 segundos 
 y se detiene por 5 segundos. Luego repite la acción indefinidamente.
 
 */

int IN3 = 5;    // In3 conectada al pin 5 del Arduino
int IN4 = 4;    // In4 conectada al pin 4 del Arduino

void setup()
{
  pinMode (IN4, OUTPUT);    // Establecemos el pun 4 como de salida 
  pinMode (IN3, OUTPUT);    // Establecemos el pun 5 como de salida
}
void loop()
{
  // Girar en un sentido
  digitalWrite (IN4, HIGH);
  digitalWrite (IN3, LOW); 
  delay(4000);

  // Detener motores un segundo
  digitalWrite (IN4, LOW); 
  delay(1000);

  // Girar en sentido inverso
  digitalWrite (IN3, HIGH);
  delay(4000);

  // Detener motores un segundo
  digitalWrite (IN3, LOW); 
  delay(1000);
}