Tutorial de Uso del Módulo L298N
En este tutorial explicaremos paso a paso todas las características del módulo L298 y un ejemplo básico de programación con Arduino.
El módulo L298N posee dos canales de Puente H, pudiéndolos utilizar para controlar dos motores DC o un motor Pasó a Paso, controlando el sentido de giro y velocidad.
Básicamente está conformado por un driver L298N sus diodos de protección y un regulador de voltaje de 5V(78M05)
Su esquema electrónico es el siguiente:
Posee un conector de 6 pines para ingresar las señales TTL para controlar los motores, una bornera de tres pines para la alimentación, y dos borneras de 2 pines para la salida a los motores.
Empecemos explicando la forma de alimentar el módulo, hay dos formas de hacer esto:
1. Utilizando una sola fuente, conectada a la entrada de 12V y con el Jumper para habilitar el regulador, aclarando que el voltaje de la fuente es el que soporta el motor. De esta forma la entrada de 5V no debe estar conectada a ninguna fuente, ya que en este pin están presentes 5V a través del regulador interno; pero puedes utilizar este pin como una salida de 5V, pero sin exceder los 500mA de consumo. Se recomienda hacer esta conexión para voltajes menores de 12V para no sobrecalentar el regulador
2. Utilizando dos fuentes, una de 5V conectada a la entrada de 5V (puede ser los 5V de un Arduino) y otra fuente con el valor del voltaje que trabaja el motor, conectada al pin de 12V. Para esto se tiene que desconectar el Jumper lo que deshabilitará al regulador.
Para el control del módulo:
Los pines ENA, IN1, IN2 correspondes a las entradas para controlar el MOTOR A (OUT1 y OUT2)
De igual manera ENB, IN3, IN4 permiten controlar el MOTOR B (OUT3 y OUT4)
ENA y ENB, sirven para habilitar o deshabilitar sus respectivos motores, generalmente se utilizan para controlar la velocidad, ingresando una señal de PWM por estos pines. Si no se usan se deben de conectar los Jumper para que siempre estén habilitados.
Ahora realicemos un ejemplo básico para controlar un motor DC
En el ejemplo utilizaremos un motor de 6V y lo conectaremos de la primera forma antes explicado.
Como vemos en la imagen para controlar el motor solo utilizaremos dos pines del Arduino.
Si enviamos un 1 lógico por la entrada IN1 del driver, saldrán 6V por la salida OUT1 (cable de color Amarillo en la imagen) y si enviamos un 0 lógico por IN1, saldrá GND (0V) por OUT1
De igual manera sucede con el pin IN2.
Por ejemplo si queremos hacer girar el motor en una dirección, enviamos:
IN1=1 -> OUT1= 6V
IN2=0 -> OUT2= GND
Y para invertir el sentido de giro:
IN1=0 -> OUT1=GND
IN2=1 -> OUT2=6V
EL código en Arduino sería el siguiente:
int PinIN1 = 7; int PinIN2 = 6; void setup() { // inicializar la comunicación serial a 9600 bits por segundo: Serial.begin(9600); // configuramos los pines como salida pinMode(PinIN1, OUTPUT); pinMode(PinIN2, OUTPUT); } void loop() { MotorHorario(); Serial.println("Giro del Motor en sentido horario"); delay(1000); MotorAntihorario(); Serial.println("Giro del Motor en sentido antihorario"); delay(1000); MotorStop(); Serial.println("Motor Detenido"); delay(1000); } void MotorHorario() { digitalWrite (PinIN1, HIGH); digitalWrite (PinIN2, LOW); } void MotorAntihorario() { digitalWrite (PinIN1, LOW); digitalWrite (PinIN2, HIGH); } void MotorStop() { digitalWrite (PinIN1, LOW); digitalWrite (PinIN2, LOW); }
Como se observa en el programa se han implementado funciones para cada movimiento del motor, las cuales llamamos desde el void loop(),
Inicialmente hacemos girar el motor en sentido horario, luego en antihorario y después lo detenemos, esto se repite constantemente, cada estado lo enviamos por comunicación serial a la PC.
Si el sentido de giro no corresponde al que se muestra en el monitor serial, simplemente invertir la polaridad de la conexión del motor, o también cambiar las funciones en el programa.
Abraham 27/01/2021 Responder
Cual es el simulador con el que hiciste el diagrama?antonio clemente 19/01/2021 Responder
boa tarde e possivel controlar um motor de passo com o driver l298 mas sem arduino.Edgar bolaño 03/01/2021 Responder
Buen día, para un proyecto, necesito controlar seis (6) motores DC de 3-12 Volt podrías por favor colaborarme en lo que necesito y si me lo suministras ?Edgar bolaño 03/01/2021 Responder
Buen día, necesito controlar seis (6) motores DC de 6-12 Volt vía Bluetooth. Podrías recomendarme algo por favor.Oscar Roman De La vega 10/06/2020 Responder
Conecte una fuente externa de 5.2 volts 2amperes, y no retire el Jumper para habilitar el regulador y el Arduino lo conecte a la computadora, mido en la salida de +5V con respecto a GND y me da 0.7Volts , además que no funciona el motor será por qué el regulador está dañado?Sebastian 18/05/2020 Responder
Hola! Muy buenos todos tus tutoriales. Te hago una consulta, en algún lugar leí que la electrónica del puente consume unos 3V. Por tanto,si tengo motores de 12V tengo que alimentarlo con una fuente de 15v?Fran 23/04/2020 Responder
Hola, podria conectar el modulo L298N directamente a una bateria de moto de 12v 12ah.la idea es alimentar unos motores de 6vIraitz 19/02/2020 Responder
Hola:No entiendo para qué se activa o desactiva el regulador de 5V. Entiendo que si está conectado puedo utilizar el pin de 5V para alimentar alguna otra cosa. Pero si tengo la placa Arduino UNO conectada al PC y no necesito esos 5V, ¿no importa si el jumper está puesto o no?
¿Cuándo es importante que esté puesto el jumper, y cuándo no?
Gracias.
Andres arcila 01/10/2019 Responder
tengo un problema que no he podido descubrir. estoy utilizando este modulo l298 para el control de un motor, con una fuente externa de 12V ya que mi motor trabaja con 12V... pero a su vez tengo conectado dos celdas de carga conectada a su conversor HX711.. mientras el motor no esta funcionando las celdas de cargar miden perfecto el peso, sin embargo, cuando llega el momento de activarse el motor, la lectura de las celdas de carga son erróneas, sube y baja, lee un peso que es el incorrecto... quisiera saber si alguien sabe cual es el motivo de que pase eso, ya que he verificado muchas veces las conexiones y el codigo y al parecer todo esta bien... pero el error con los sensores de carga solo es cuando tengo la fuente externa de 12 voltiosyorx 18/01/2019 Responder
hola,buenos días maquinon, eres un fiera pero ponme el código correcto porque sino el pepe me suspende el curso xfa, me veo siempre tus vídeos soy fanAlejandro Quiroz 13/11/2018 Responder
Buenas noches.Yo puedo conectar una válvula ?
Ernesto Guerrero Cueva 10/11/2018 Responder
Hola, estoy trabajando con el L298N y una tarjeta de arduino, para controlar un motor pap bipolar el modulo es nuevo, prove las salidas con el volmetro en vacio y las lecturas en OUT 1 y 2 y de la misma forma las 3 y 4 y si me daban las señales 12 0 y _12 al conectar el motor pap no movio el motor y al verificar nuevamente al vacio un canal ne seguia marcado como inicialmente, el otro canal en lugar de 12 volts me daba 9 pero al conectar resistencias se 220 ohms los voltajes vajan a 0.130 V, alguna sujerenciavictor aguilera 10/11/2018 Responder
como puedo programar con 4 motores para que avance,retroceda y gire hacia la izquierda y luego hacia la derecha con los mismos componentes pero con 4 motores gracias.Miguel 04/10/2018 Responder
que tal tengo un problema con el driver l298n tengo dos uno q compre hace tiempo que funciona normal, y otro q compre recientemente que no arranca con 4 pilas de 1.5v pero el otro lo hacia ademas su led es color anarajando y del anterior es rojo, no se si me pueda ayudar el modo que debo trabajar si son diferentes ? graciasmarcoflores.mfv@gmail.com 03/06/2018 Responder
como podria hacer la conexion de 2 electrovalvulas que sean activadas con un pulsador cada unaManuel Tuz Sosa 15/05/2018 Responder
Buenos días en un comentario decias que puedo conectar un servomotor poniendo los 5v y GND del servo al módulo y el de señal directo al arduino.Pero a cuál salida del arduino?
gato89918 29/08/2017 Responder
hola. soy nuevo en todo este tema, y me gustaria saber que posibilidades hay de conectar un motor dc a 12v en una entrada y otro motor dc a 5v del arduino... nc si es posible o si bien el puente h ya esta diseñado así para poder hacerlo... saludosNaylamp 19/09/2017 Responder
Hola, el módulo es de dos canales y puedes conectar dos motores pero ambos motores tienen que ser del mismo voltaje.Sergio 12/06/2017 Responder
Hola, buen día.Estoy controlando un motor de 6 V. tengo una fuente regulable y alimento el puente a ese mismo voltje.
Sin embargo cuando conecto el motor tengo una caida de 2 V. Es normal que haga esto?
Naylamp 18/06/2017 Responder
Hola Sergio, prueba conectando el motor directo a la fuente y comprueba si también existe caída de voltaje, sino debes estar realizando mal alguna conexión. La corriente que puede entregar la fuente tiene que ser mayor o igual a la corriente que consume el motor.Luis Ramirez 18/05/2017 Responder
Tengo una fuente de 7.2V y necesito alimentar 2 motores DC de 3V cada uno, para controlarlos por Arduino, como podria conectarlo?Naylamp 27/05/2017 Responder
Hola Luis, puedes Alimentar el modulo con los 7.2V y usar las entradas ENA y ENB del módulo y con PWM bajar el voltaje, de esta forma tendrás que estar seguro de siempre estar enviando el PWM, si en algún momento el pin EN envía un HIGH de forma continua, el motor recibirá los 7.2V también de forma continua y podrías quemar el motor. Lo mejor es usar un regulador Step Down y regular a los 3.0V que deseas, estos 3.0V van al módulo y tendrías que quitar el Jumper y alimentar desde el arduino al módulo con los 5V.Américo 14/11/2019 Responder
Buenos días, existe un error de concepto (con PWM bajar el voltaje), el PWM no "baja" el voltaje, la velocidad se reduce porque disminuye la potencia (forma de onda del PWM) el voltaje continúa siendo el mismo.Saludos.
Julio Vasquez 14/05/2017 Responder
Buena nochecon una consulta necesito mover dos motores de 12 volts..
con el L298n pro resulta q mis motores son starter de moto mi consulta cuantos amperes puedo manejar el modulo
espero su pronta respuesta gracias
Naylamp 27/05/2017 Responder
Hola Julio, el L298N soporta solo 2A, para manejar ese tipo de motores es mejor usar los Driver Puente H VNH5019 30AOscar 27/04/2017 Responder
Las salidas para un motor sea la 1 y 2 o la 3 y 4 se pueden poner en 1 al mismo tiempo?Naylamp 04/05/2017 Responder
Hola Oscar, si, poniendo ambas entradas a HIGH el motor se apagará, de igual forma que sucede poniendo las entradas a LOW.Agustín 10/03/2017 Responder
¿yo lo podría hacer con 2 puente h y 2 sensor ultrasonico? si es así, ¿tendrías un esquema y código?Naylamp 25/03/2017 Responder
Hola Agustín, No tenemos ejemplos así, Si necesitas mover dos motores necesitas un solo L298N, este tiene 2 puentes H. Para conectar los otros pines del L298N y de los ultrasónicos, hazlo en cualquiera de los pines digitales libres, en el código solo declara nuevas variables y repite lo demás. Puedes apoyarte de nuestro tutorial sensor ultrasónico HC-SR04 y del Tutorial Robot móvilmarcio 04/02/2017 Responder
como conectaría el modulo l298n con un servomotorNaylamp 13/02/2017 Responder
Los servomotores tienen su propio driver interno, el pin de datos puede ir directo al ArduinoJesús 20/10/2016 Responder
Esta equivocado tu esquema donde ejemplificas las entradas de controlNaylamp 25/10/2016 Responder
Estimado Jesús, la imagen ya fue corregida. Gracias por la observación