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.
Ro***** 11/03/2023 Responder
Puedo conectar 4 motores? Y que voltaje es recomendado porque en un diagrama vi conectados 4 motores pero a 12 vJo*** 12/05/2023 Responder
si se puede, pero tendrias que usar otro modulo, ya que si no las ordenes chocarian de dos motores en dos motores, ahora que si quieres que el mismo modulo controle dos motores al mismo tiempo, solo tendrias que cambiar el voltaje de alimentacion para que no exista una perdida de potencia en los motoresAn***** F. 18/11/2022 Responder
Hola. Quería saber si la GND de las baterías compartida con la placa puede ocasionar algún problema de retorno de energía y la queme. Y lo otro que me gustaría saber es si este programa controla el giro del motor invirtiendo la polaridad, ya que me serviría para otra aplicación.Desde ya muchas gracias
An**** 31/12/2022 Responder
Por lo que yo se y he experimentado si, la GND compartida podría llevar ruido eléctrico producido por el arranque de los motores al microcontrolador que este usando y comprometer su funcionamiento, que tanto se vea afectado tu micro, será determinado por la potencia a la que trabaje tu motor. Idealmente se debe usar un optoacoplador entre este driver y el arduino.Y si este programa invierte la polaridad en las borneras del motor.
Jh*** 26/11/2021 Responder
Una pregunta, se puede controlar 4 motores con este driver a la vez?no importa que solo permita girar en una direccion y que solamente se controle la velocidad de cada motor
Ab***** 27/01/2021 Responder
Cual es el simulador con el que hiciste el diagrama?an***** ******te 19/01/2021 Responder
boa tarde e possivel controlar um motor de passo com o driver l298 mas sem arduino.Ed*** *****ñ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 ?Ed*** *****ñ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.Os*** ***** ** ** **ga 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?Se******* 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?Fr** 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 6vIr**** 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.
Ge**** ***** *****za 11/12/2021 Responder
Eso va dependiendo de la aplicación que realices. Cuando tu dejas el jumper provocas que los motores y parte lógica puedan ser alimentados directamente de una fuente externa y se activa el regulador en este caso en el pin +5v tendríamos energía que nos podría funcionar para alimentar el Arduino si tu alimentara del arduino y tienes el jumper puedes provocar un cortocircuito. Al quitar el jumper vuelves independiente el sistema por un lado la fuente con la que alimentas 12v+ funcionara para alimentar directamente tus motores pero en esta parte el pin de +5v funcionara para alimentar tu parte lógica.An**** ****la 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 voltiosyo** 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 fanAl******* ****oz 13/11/2018 Responder
Buenas noches.Yo puedo conectar una válvula ?
Er***** ******** ***va 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 sujerenciavi**** ******ra 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.Mi**** 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 ? graciasma*********************** 03/06/2018 Responder
como podria hacer la conexion de 2 electrovalvulas que sean activadas con un pulsador cada unaMa**** *** **sa 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?
ga******* 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... saludosNa***** 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.Se**** 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?
Na***** 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.Lu** *****ez 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?Na***** 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****** 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.
Ju*** *****ez 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
Na***** 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 30AOs*** 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?Na***** 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.Ag****** 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?Na***** 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óvilma**** 04/02/2017 Responder
como conectaría el modulo l298n con un servomotorNa***** 13/02/2017 Responder
Los servomotores tienen su propio driver interno, el pin de datos puede ir directo al ArduinoJe**** 20/10/2016 Responder
Esta equivocado tu esquema donde ejemplificas las entradas de controlNa***** 25/10/2016 Responder
Estimado Jesús, la imagen ya fue corregida. Gracias por la observación