Introducción:
En el presente tutorial se dará a conocer el Driver L298N, cuya función es el control de motores, aquí explicaremos las características, la conexión, el código que usaremos mediante Arduino para controlar dos motores en paralelo y el funcionamiento del circuito.
Características del Driver L298N
Es una placa que incorpora todos los componentes necesarios para usar el integrado L298 con un Arduino, una Raspberry, entre otros microcontroladores. Entre sus principales características se encuentran:
- Alimentación desde 5V hasta 30V (dependiendo de la configuración elegida con un Jumper).
- Corriente DC máxima total peak de 3,5A.
- Protección en caso de sobre-temperatura.
- Bajo voltaje de saturación.
- Diodos en cada canal para proteger el circuito de corrientes externas (girar el motor con la mano puede «introducir» corriente al circuito y quemarlo).
- Regulador de 5V integrado.
- Capacidad de controlar la velocidad de cada motor mediante PWM (que en nuestro caso no se controlará en este tutorial).
Se profundiza más en el datasheet de este componente, donde se puede encontrar información precisa, puede encontrar el datasheet oficial del Circuito integrado L298 pinchando aquí.
Puente H de L298 ¿Qué es y qué nos permite realizar?
El puente H del L298 es un circuito que nos permite controlar la dirección del flujo de corriente a través de un motor, permitiéndonos controlar también la dirección de giro de este. Puede visualizarlo como un grupo de cuatro interruptores, como en la ilustración siguiente:
Cerrando unos interruptores u otros, la corriente fluirá en una dirección o en otra a través del motor, lo que hará que gire en un sentido o en el contrario:
Hoy en día, la mayoría de puentes H actuales se pueden comprar como circuito integrado, donde los interruptores son transistores. Nos ofrecen la posibilidad de controlar una potencia grande en el motor mediante señales de control de una potencia mucho más reducida.
IMPORTANTE: El sentido de giro de los motores dependerán de como se les ha conectado. Recordemos que si conectamos el motor DC en un sentido girará en una dirección y si lo conectamos al revés girará en sentido opuesto. Debemos encontrar que configuración es la que requerimos para el proyecto que estemos realizando.
Así pues, en resumen, los puentes H son componentes que nos ofrecen las siguientes posibilidades:
- Habilidad para invertir el sentido de giro de un motor
- Habilidad para utilizar una fuente de alimentación de mayor frecuencia para el motor que para la lógica (normalmente el Arduino que controla el circuito)
- Habilidad para controlar la potencia del motor (siempre que tenga una entrada «enable»).
En este tutorial no será necesario el Enable, por lo que debe tener un Jumper puesto (en el pin «EnA»)
Enable: El pin de «Enable» en el L298N permite controlar la velocidad de los motores mediante la variación de la señal de ancho de pulso (PWM) aplicada a este pin (Ya sea EnA o EnB). Cuando el pin de «Enable» recibe una señal de PWM, el módulo habilita la salida de energía a los motores, y la velocidad de los motores se controla ajustando el ciclo de trabajo del PWM, desde el valor 0 a 255 debido a que Arduino para esto trabaja con 8 bits. En caso que este Pin tenga un Jumper puesto la velocidad siempre será la máxima, por el contrario, si no tiene un Jumper puesto, y también, no está conectado a algún pin, los motores no van a funcionar.
Freno Rápido: El «freno rápido» es un estado donde ambas mitades del puente H están activadas, creando una conexión directa entre el motor y el voltaje de alimentación. Esto puede hacer que el motor sea difícil de girar y actúe como una especie de freno. En realidad, se podría considerar como un estado de frenado, ya que al activar ambas mitades del puente H, se crea una resistencia eléctrica significativa en el circuito del motor, lo que puede detener rápidamente el movimiento del motor. Sin embargo, la terminología puede variar y algunos podrían referirse a este estado como «freno» mientras que otros podrían preferir términos como «bloqueo» o «parada rápida». De todas formas, el término «freno rápido» puede no ser el más preciso, y en lugar de eso, podríamos describirlo como un estado de frenado o bloqueo. La clave aquí es que al tener todos los pines en HIGH (todos los interruptores cerrados), se están activando ambas mitades del puente H, creando una resistencia eléctrica en el circuito del motor y, por lo tanto, deteniendo rápidamente su movimiento.
Conexión y Pinout del Driver L298N
- Pin In1 de L298N al Pin 7 de Arduino, debido a que en este proyecto se usará para comandar el motor utilizado.
- Pin In2 de L298N al Pin 6 de Arduino, ya que junto a el Pin mencionado anteriormente comandará el motor utilizado.
- Output1 de L298 al motor (esto depende de la polarización del motor en uso) nuestro caso es el siguiente: Cable rojo a la izquierda (V+) y Cable gris a la derecha (GND) (sentido según imágen «Pinout» anterior).
- 12V de L298N a alimentación, en nuestro caso es un transformador.
- GND de L298N a GND de Arduino y GND de alimentación.
Código y tabla de verdad:
A continuación se presenta un video que muestra el funcionamiento del circuito, utilizando el código proporcionado en este tutorial, además, el comportamiento de los motores que se muestran en el video se puede comprobar con la siguiente tabla de verdad:
(VIDEO)
La tabla de verdad representa nuestras conexiones y circuito, el cual controlará dos motores en paralelo, si hay algo que en su circuito no se vea reflejado, por favor compruebe las conexiones de Arduino al modulo L298N, las conexiones del motor, o la polarización de este elemento.
Descargar Autito1MsinEn.ino (Un motor sin Enable)
Código, explicación por partes:
const int IN1 = 6;
const int IN2 = 7;
- Aquí se están declarando dos constantes,
IN1
yIN2
, y se les asignan los valores 6 y 7 respectivamente. Estos valores representan los pines a los que están conectados los motores.
void setup() {
pinMode(IN1, OUTPUT);
pinMode(IN1, OUTPUT);
Serial.begin(9600);
}
- En la función
setup()
, se configuran los pinesIN1
eIN2
como salidas digitales mediante la funciónpinMode()
. Además, se inicia la comunicación serial con una velocidad de 9600 baudios medianteSerial.begin(9600)
.
void loop() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
Serial.println("Ambos motores detenidos")
delay(5000);
}
- En el bucle
loop()
, se apagan ambos motores al poner los pinesIN1
eIN2
en estado bajo (LOW
). Luego se imprime un mensaje en el monitor serial indicando que ambos motores están detenidos. Después, hay un retraso de 5000 milisegundos (5 segundos).
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
Serial.println("Giro ->")
delay(3000);
- Se configura el motor para girar en una dirección al poner
IN1
en estado bajo yIN2
en estado alto. Se imprime un mensaje indicando el sentido del giro en el monitor serial y se espera durante 3000 milisegundos (3 segundos).
digitalWrite(IN1, HIGH);
digitalWrite(IN2, HIGH);
Serial.println("Freno rápido")
delay(5000);
- Ambos pines se ponen en estado alto, lo que genera un freno rápido en los motores. Se imprime un mensaje indicando el freno en el monitor serial y se espera durante 5000 milisegundos (5 segundos).
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
Serial.println("Giro <-")
delay(3000);
- Se configura el motor para girar en la dirección opuesta al caso anterior al poner
IN1
en estado alto yIN2
en estado bajo. Se imprime un mensaje indicando el sentido del giro en el monitor serial y se espera durante 3000 milisegundos (3 segundos). - Este ciclo se repite continuamente mientras el Arduino esté en funcionamiento.
Conclusión:
En conclusión, el tutorial del Driver L298N ofrece una comprensión de características y aplicaciones de este elemento, destacando su utilidad en el control de motores con Arduino. La capacidad del puente H para invertir la dirección de giro y aplicar frenos rápidos amplía las posibilidades de este componente, convirtiéndolo en una elección clave para proyectos que requieran un control motor preciso y versátil.
Si desea profundizar más acerca del módulo L298N le dejaremos este tutorial (Tutorial L298N), que explica más sobre este componente y su funcionamiento