Tutorial: Uso de Driver L298N para motores DC y paso a paso con Arduino 110

El siguiente tutorial esta basado en el Driver dual para motores (Full-Bridge) – L298N, ofrecido por ELECTRONILAB.CO. Puedes adquirir este módulo en nuestra tienda.

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.

L298N_pines_Electronilab

En la parte inferior se encuentran los pines de control del módulo, marcados como IN1, IN2, IN3 e IN4.

Conexión de alimentación

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

L298N_power_Electronilab

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 o pinguino.

Esquema de conexión

L298N_1_mot

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.

Control de un motor DC variando su 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 o pines ENA y ENB respectivamente, por tanto los jumper de selección no serán usados.

Esquema de conexión

L298N_1_mot_PWM

Código en Arduino

El programa controla la velocidad de un motor DC aplicando PWM al pin ENB del módulo L298N.

Control de un motor paso a paso bipolar

Los motores paso a paso pueden ser bipolares o unipolares. En este ejemplo trabajamos con un motor paso a paso bipolar, sin embargo este driver es capaz de controlar un motor paso a paso unipolar si se conecta en configuración bipolar, obviando los cables del tab central de las bobinas del motor. El máximo consumo permitido es de 2 amperios.

Esquema de conexión

Control_Motor_paso_a_paso_arduino_L298N_Electronilab

El esquema de conexión muestra la conexión utilizada entre el modulo L298N y el motor paso a paso. Cada una de las bobinas del motor esta conectada a una salida del módulo. Para identificar las bobinas de un motor paso a paso utilizamos un multímetro en modo de continuidad. Los cables que dan continuidad son los extremos de cada bobina.

En este caso, como el motor paso a paso es de 12 VDC, utilizamos el jumper de selección de +5V, para activar el regulador interno del módulo y solo hacer uso de una fuente de 12 VDC para alimentar el motor.

Los jumper de activación ENA y ENB los hemos activado de igual manera.

Código de Arduino

El código de Arduino hace girar el motor paso a paso una vuelta en un sentido y luego ejecuta otra vuelta en sentido opuesto. Este código hace uso de la librería ‘Stepper.h‘, que se instala por defecto en las ultimas versiones del IDE de Arduino.

El valor de la variable stepsPerRevolution depende del número de pasos del motor paso a paso. Este valor se encuentra en las especificaciones de la hoja de datos del motor. En nuestro caso el motor paso a paso utilizado es de 48 pasos/vuelta.

 Vídeo de demostración:

ELECTRONILAB invierte tiempo y recursos en el desarrollo de estos tutoriales y provee código fuente abierto, por favor apoya a ELECTRONILAB mediante la compra de productos en nuestra tienda.

110 Comments

  1. Notable tutorial. saludos!!!

    1. Muy buen tutorial.Pude entender mejor como programar el L298.

  2. Amigos estoy haciedno un robot el cual posee 2 motores DC y estoy implementando este driver, pero me surge una pregunta eh leido que es necesario introducirle un voltage logico en la entrada que dice “+5” , pero para esto debo quitar el jumper que se encuentra detras de las borneras para que no aya inconvenientes?, entiendo esto segun la explicacion de una de sus imagenes…. Gracias

    1. Hola. Cuando va a utilizar un voltaje superior a 12V para los motores, se debe quitar el jumper de 5V e introducir un voltaje de 5V para la parte lógica del L298N. Si es un voltaje menor a 12 no es necesario.

  3. disculpne pero estoy trabajando con el modelo l298 el cual cuenta tb con los jumper puestos pero el problema es que cuando no le incerto 5v logicos no me trabaja los motores(los jumpers estan todos puestos) y alimento el puente con 11v encambio si le alimento con 5v logicas si me funciona pero estaria contradiciendo lo que tu dices que no se debe insertar ya los 5v logicos???

    1. Hola, de pronto lo que pasa es que el jumper de habilitación del regulador de 5V, no esta activado, por tanto al alimentarlo con 11V claramente no va a funcionar sino hasta que se le pongan los 5V lógicos. Si el jumper esta activado y el regulador esta trabajando, no me explico cual sea la causa, quizas un problema con tierras o algo parecido. Gracias.

  4. Hola amigo, una molestia. No puedo ver el codigo, sera que ya esta eliminado?

    1. Gracias por avisarnos. Arreglado!

  5. Amigo buenas noches, tengo una pequeña duda de cual de los 3 ejemplos debo usar para controlar una bomba de agua “micro water pump RS-360” la cual tiene un voltaje de entre “Input Voltage 6 – 12VDC /3-9v” y una corriente de “Load Current1-2A ” y me gustaría saber si alguno de esos 3 esquemas me podría servir y si debo hacer alguna modificación de conexiones para alimentarlo con mi Arduino Leonardo conectado a una fuente regulada.

    Muchas gracias y espero me puedan colaborar ( es para proyecto de grado ) Mil y Mil gracias.

    1. Hola, puede usar el primer ejemplo. No creo que deba realizar alguna modificación al esquema, pero no puedo estar 100%. Saludos!

      1. Pues me estuvo funcionando precisamente con el primero, pero tengo otra duda, yo estoy alimentando dicha bomba con una fuente regulada que hice hace algún tiempo con un transistor lm317 — arranca bien pero después de no se, 1 minuto, el voltaje disminuye, destapé y note que los transistores estaban recalentados, que me recomiendan ? Alguna manera de conectar dicha bomba a alguna fuente externa ?

        Muchas Gracias.

  6. Saludos, si tengo 2 Driver dual para motores y tengo dos motores paso a paso de 3v a 2 A, pueso alimentar todo con la misma fuente de 12v a 5 A, y a la saldida de los driver colocar resistencias de 5w ?

    David Alejandro Archila Baron
    1. Saludos, si tengo 2 Driver dual para motores y tengo dos motores paso a paso de 3v a 2 A, pueso alimentar todo con la misma fuente de 12v a 5 A, Buenas. Me podría decir si se puede con los motores alimentar 3 v a 12 los motores

  7. Hola,
    estoy trabajando en un proyecto en el que uso dos motores paso a paso bipolares con dos drivers l298n y no logro hacer que los dos motores se muevan independientemente. Lo que me sucede es que primero uno hace su secuencia de pasos y luego el otro. Por otra parte necesito contar la cantidad de pasos que hacen los motores, como podría programar un contador?
    espero puedan ayudarme,
    saludos.

    1. Hola.. disculpa soy muy novato en esto de arduino.. como podria hacer para q el pap avance x pasos (hasta un fin de carrera) y vuelva al inicio y q esto se repita constantemente. Osea q vaya y venga constantemente . No se si me explique bien

  8. quisiera saber si este driver utiliza alguna libreria en arduino

  9. Yo controlo la velocidad de los motores DC de una forma que me gusta más que la de variar el voltaje de ENA o ENB como haces tú porque no necesito retirar el jumper ENA o ENB (aunque tus comentarios e ilustraciones me han encantado, y no sabía que podía hacerse como lo has hecho tú).
    Como yo no entiendo mucho de esto, pensé que la velocidad del motor dependería de la diferencia de potencial entre los dos bornes del motor. Si se igualan, el motor se para. Si la diferencia es de 255 girará al máximo en un sentido y si es de -255 lo hará en el contrario. Eso equivaldría al HIGH y al LOW, pero utilizando analogWrite(IN1,x) en lugar de digitalWrite(IN1,x) logramos todo el abanico de valores intermedios:

    const int motora_in1 = 8;
    const int motora_in2 = 9;
    
    void setup()
    {
      pinMode(motora_in1,OUTPUT);
      pinMode(motora_in2,OUTPUT);
    }
    
    void loop()
    {
    // adelante_atras_deprisa();
      despacio();
    }
    
    void despacio()
    {
      // Parar el motor (basta con que IN1==IN2)
      analogWrite(motora_in1,50);
      analogWrite(motora_in2,50);
      delay(500);
      // A velocidad 50 se oye un ruido pero no se mueve
      // A velocidad 100 (lento) contra reloj
      analogWrite(motora_in1,0);
      analogWrite(motora_in2,100);
      delay(1000);
      // Más deprisa
      analogWrite(motora_in1,0);
      analogWrite(motora_in2,150);
      delay(1000);
      // Despacio y contra reloj (le cuesta más moverse que a favor del reloj)
      analogWrite(motora_in1,150);
      analogWrite(motora_in2,0);
      delay(1000);  
    }
    
    void adelante_atras_deprisa()
    {
      // Como el reloj
      digitalWrite(motora_in1,HIGH);
      digitalWrite(motora_in2,LOW);
      delay(1000);
      // Parar
      digitalWrite(motora_in1,HIGH);
      digitalWrite(motora_in2,HIGH);
      delay(1000);
      // Contra reloj
      digitalWrite(motora_in1,LOW);
      digitalWrite(motora_in2,HIGH);
      delay(1000);
    }
    1. Señores, acabo de darme cuenta de un error de principiante que cometí ayer. Para que funcione bien el digitalWrite() y, por lo tanto, la velocidad variable, debemos utilizar pines con la característica PWM, es decir, 3, 5, 6, 9, 10, 11 en mi Arduino UNO. Véase la documentación de digitalWrite() para más señas.
      Así que el error ha consistido en utilizar el pin 8.

      La solución consiste en modificar ligeramente el código:
      const int motora_in1 = 5;
      const int motora_in2 = 6;

      Conexiones físicas:
      – conectar el pin 5 del Arduino al IN1 de la controladora
      – conectar el pin 6 del Arduino al IN2 de la controladora
      – conectar el motor a los pines OUT1 y OUT2 de la controladora

      1. Hola, gracias por el aporte.

      2. Muchas gracias, no sabes cómo me ayudaste, el problema con este método esque el torque del motor también baja, no sabes alguna manera de bajar la velocidad sin sacrificar el torque? lo necesito para mi seguidor de lineas

        Emmanuel Beltran
    2. hermano, me sirvió mucho tu código para guiarme, ya q no me resultó el pwm según sale aquí

      saludos

    3. Hola.

      Yo he realizado la prueba de dejar el jumper entre EN y +5V, entonces los otros 2 pins, por ejemplo IN1 e IN2, no solo controlan sentido de giro sino que enviándoles PWM también se tiene velocidad.

      Es más, he probado, a solicitud de un colega hobbista, meter en IN1 e IN2 la salida de una placa de servo, recordanto que esta es polarizada, o sea según la palanca del transmisor de RC, cada cable es positivo o negativo, lo cual me preocupaba pero no pasó nada malo, el control era perfecto y en ambos sentidos. Pero atención, con tierra común!
      Saludos

      1. Hola podrias poner el esquema de la conexion del circuito de servos

  10. Interesante este módulo. Al estudiarlo noté que la placa utiliza diodos “M7”, es decir, 1N4007 con un trr de alrededor de 2 us, cuando el fabricante del L298 sugiere diodos con un trr < 200 ns, en específico diodos Schottky. Es por ello que me decanté en hacer por mí mismo esta tarjetita, con las carcterísticas que sugiere el fabricante del Puente H. Lo trabajo con un PIC16F886 en ASM.

    Saludos desde México.

    1. Amigo que modelo de diodo usaste ?

  11. Hola,
    Estoy pensando en realizar un proyecto de control de motores DC con el Arduino y viendo vuestro esquema creo que encaja bien en lo que busco, pero me falta algo: ¿Cómo puedo invertir el giro el motor?
    Un saludo

    1. Hola, lee detenidamente el primer código que aparece en la página. Allí el motor gira en un sentido y luego en el otro. Saludos!

  12. Hola buenos dias a todos, muy bueno el tutorial muy claro y sencillo, la inquietud por la cual les escribo es la siguiente.
    Con este mòdulo y arduino se puede variar la velocidad de un motor PAP, si es asi como se realiza la operacion.
    Desde ya muchas gracias por su ayuda.

  13. Muy bueno

    hola soy novato en el uso de estos componentes, por lo que quizás mis preguntas te atosiguen un poco, mira estoy tratando de controlar un motor paso a paso, para mover un carro.

    mi pregunta es como debo redactar los comando para que siempre gire para un lado, y realice una pausa, y siga girando para el mismo lado hasta que yo lo detenga.

    gracias nuevamente por este espacio

    Eduardo Quintana
    1. Darte la respuesta aquí es como crear un foro dentro de otro, debes meterte en el tema de la programación, pero es realmente sencillo, básicamente se trata de poner señales HIGH o LOW en determinados pines de la placa, que se conectan a drivers o controladores de motores, y con eso ya tienes la base. Recomiendo http://forum.arduino.cc/.

      Saludos

  14. Hola buenas, estoy haciendo un coche, un pequeño proyecto para el instituto, y agradeceria mucho su ayuda, tengo un coche de 2 motores y un controlador de motores L298n el coche es movido por una placa Arduino Leonardo y un Sensor ultrasónico, y tengo muchos problemas no a la hora de programar que tambien, pero le tengo comectado a los motores 9V y no tienen fuerza para tirar, porfavor si saben de algo de esto o de algún otro código de Arduino para esto, es urgente, espero su ayuda, muchas gracias.

    Jose Manuel Muñoz
  15. Hola,

    Es estrictamente necessario usar 3 salidas PWM para contrlar cada motor de passo???

  16. Que programa usaste para realizar el esquematico?

    1. Se llama fritzing. Es libre.

      1. Pero ahi no viene el driver l298 asi como el de la imagen,, o si=?

        1. Pudiste encontrar el componente como lo pusieron aqui en el BLOG?

  17. Hola ! necesito sacarme una duda tengo dos motores de 12volt y de 0,6 Amperios, es posible utilizar el modulo del L298 y conectar IN1, IN2, IN3 Y IN4 a las salidas digitales de un Arduino Nano.? Es decir que si mi Arduino soporta la corriente de ambos motores ? o lo que interesa es que el Modulo L298 los soporte ??

  18. hola, muy buen post, tengo una duda como se podría combinar Control de un motor DC del primer ejemplo variando la velocidad al mismo tiempo? me explico digamos:
    El programa básicamente activaría 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, luego detiene el motor por 0.5 segundos. Luego repite la acción con mayor velocidad(o menor velocidad)
    como se podría hacer esto?
    saludos

  19. hola
    tengo un problema tengo mi arduino y el puente h conectado a 9 voltios que nesecito para mi motor DC. las conecciones todas estan revisadas y mido el voltaje sin conectar el motor a las salidas del puente h y me da paso de los 9 voltios pero cuando conecto el motor solo me da un maximo de 5 voltios y .. no me sirve por que nesecito los 9 para el mov del motor…

    1. Solucionaste el problema, porque tengo la misma duda?

    2. A mi me pasa lo mismo pero con 5 voltios. Solo me pasan 3.5 y los motores no se mueven. Ni usando el esquema que viene aqui

  20. hola, buenos días amigo tengo un problema y quería ver si podías resolverme por favor.
    lo que pasa es que no entendí bien lo de la alimentación del driver es que pondré dos motores que son de mas de 12v creo que de 18v, el chiste es que no entendí como conectarlo para que se alimenten sin dañar el driver, ojala puedas ayudarme pues lo usare para un proyecto final para la preparatoria gracias amigo

  21. hola..
    tengo un motor bipolar de 22v. y me gustaría darle una utilidad, pensé utilizar el puente H, pero no se sí se podrá o tendría que utilizar otro tipo de controlador. si no es mucha molestia me gustaría que me aconsejen .. gracias

  22. Hola, estoy probando de girar un motor paso a paso con el controlador l298n y tengo el problema que, con el modelo que ha puesto en la página no me funciona, es decir, si lo conecto directamente de los 5v de la placa arduino y en la entrada de 5v del driver y lo mismo con la tierra, el motor gira, pero sin mucha fuerza, lo puedo parar con los dedos, en cambio si quito el jumper y le proporciono 12v externos el motor y el driver no responden, ni el motor gira ni el driver enciende el led rojo. Me puedes decir como lo debería conectar? Se trata de un motor paso a paso nema 17 JK42HS40-1704-13A

    Muchísimas gracias.

  23. Hola,

    Aparte del sentido de rotación de un motor paso a paso bipolar, ¿también se controlar la velocidad con este driver?

    Muchas gracias.

  24. Gracias por este buen tutorial. Una pregunta supongo que sencilla. La activación del motor la tengo dentro de un condicional (If) que funciona si se da una determinada condición. El problema es que una vez activado el motor el programa deja de funcionar. Bueno en concreto deja de funcionar un módulo lector RFID.

    Muchas gracias!

  25. hola te queria hacer una consulta como conectar un paso a paso unipolar de 6 hilos

  26. Buenas amigo, te comento que al verificar el codigo para el motor paso a paso me sale este que el ld.exe a detectado un problema y debe serrarse y luego en arduino 1.6.5 me da un error que dice: Arduino:1.6.5 (Windows XP), Placa:”Arduino/Genuino Uno”

    collect2.exe: error: ld returned 5 exit status
    Error de compilación

    This report would have more information with
    “Show verbose output during compilation”
    activala desde Archivo > Preferencias

    Agradezco de antemano toda la ayuda que pueda darme….Saludos…

  27. Buenas tardes quisiera saber si puedo conectar 3 drivers L298 a arduino uno y como seria la conexion, gracias..

  28. Buend dia una pregunta noob como es que se activa el jumper de 5v?. No entiendo o sea hay que alimentarlo o algo asi para que permita mas de 12 volts?. Mas que nada seria eso como se activa o desactiva y soy de esas personas que lo entienden pero visualmente.
    Gracias

  29. Hola:
    Estoy haciendo un proyecto en el cual utilizo dos motores paso a paso Nema 17 y dos drivers L298N.
    La parte que más me cuesta es la programacón de los mtores. Necesito hacer combinaciones con las diferentes posiciones de los motores, es decir, por ejemplo que el motor1 haga 5 pasos hacia la derecha y que el motor2 haga 13 pasos hacia la izquierda. Despúes de esto que el motor1 haga 3 pasos a la derecha (partiendo des de los 5 pasos hacia la derecha iniciales), y que el motor2 haga 6 pasos a la derecha (partiendo des de los 13 pasos hacia la izquierda que había hecho previamente), y que entre estas os combinaciones de movimientos haya un retraso de 5 segundos.
    Me sería de gran ayuda si alguien me mostrara un ejemplo.
    Gràcias!

  30. Hola 🙂 Buenas tardes, una pregunta hiciste tus diagramas en fritzing, o en algún otro programa???

  31. Hola, comento algo por si a alguien se le ocurre una solución o le sirve:

    quería construir un carro a control remoto con arduino, como no quería gastar en esos chasis con motores feos que venden (y a un alto precio) compré un carro a control remoto de juguete (uno barato), quité el circuito y use un Arduino nano, un módulo L298N y un módulo de radio frecuencia. El problema principal es que al final es tanto el peso del auto (comparado al incial) que le cuesta a los motores avanzar, además el módulo L298N trabaja con mínimo 6v, el auto originalmente tiene para 3 baterías AA (4.5 v), es decir que tengo que poner 1 pila más para que funcione y aún así da a las justas para alimentar el sistema. Al final un proyecto tan simple como construir un carro a control remoto se complica porque no he encontrado un motor driver decente para motores pequeños, había otro que además de grande (solo se podía acoplar al Arudino uno) no daba el amperaje suficiente por lo que era un desperdicio.

    Sin duda para pruebas a “modo general” Arduino es genial, pero después de haber hecho pruebitas luego de unos meses con Arduinos siento que necesito “subir de nivel” y empezar a ver cómo fabricar microcontroladores y módulo porque es estresante toparse siempre con los mismos problemas: adaptabilidad, voltaje, amperaje, tamaño, etc.; ojalá pueda tomar un curso estos meses que las posibilidades de proyectos son ilimitados.

    Saludos.

  32. estoy haciendo una embobinadora automatica con dos motores dc de 12 vol. y quiero manejarlos con arduino uno tanto el que lleva la formaleta del trasformador a enbobinar como el motor que va y biene formando las espiras calibrando con arduino el ancho del trasformador y contar el numero de espiras o vueltas y apagarse una vez haga este trabajo. me puedes dar una manito en esto. ha se me olvidaba la regulacion de velocidad para cada motor independientemente………. gracias me gusta tus proyectos ….ahi…vamos …aprendiendo……….TOKI

    Gerardo Ojeda Tobar
  33. En el código del motor bipolar,¿que pondríais para que se quedara parado al menos 10 segundos y después volviese a girar?.
    He observado también, que el consumo de los motores bipolares sube muchísimo al pararse después de haber estado en marcha. Por cierto, en un datasheet he leído que el L298 puede entregar un total de 4 amperios (2 por canal), pero aquí pone que solo entrega un máximo de 2 amperios al usar un bipolar ¿tenéis idea?.
    Saludos,

  34. Gracias, muy buena información.

  35. hola, tengo una duda, si tengo que controlarle la velocidad un motor de 24v DC de 4A, y el driver l298n da 2 A por salida, ¿puedo poner las dos salidas en paralelo conectar el motor y obtener 4A? ¿o necesitaria 2 drivers l298?

    1. creo que si amigo, cuentame que tal te fue

  36. Excelente trabajo Andrés. Gracias!

  37. Hola que tal espero y alguno de uds. me pueda ayudar, quiero usar este driver para manejar dos motores DC que funcionan con 1.6 A a 6v, este driver puede darme ese amperaje necesario para poder usar ambos motores..? he leido que soporto hasta dos amperes. Pero la verdad prefiero consultarlo antes de hacer un gasto que podria resultar innecesario.

  38. hola, muy buen tutorial, la verdad yo estoy hacienda un coche a control remote con arduino mediante Bluetooth y android, y tengo problemas con la fuerza, pues no da todo su potencial no sabes a que se debe, y podrias ayudarme, pues lo apreciaria mucho

    1. Usa una batería lipo pero cambia el disipador del integrado del l298n

  39. Hola, ¡excelente explicación! yo tengo un problema con el modulo L298N ya que después de unos segundos trabajando el motor de pasos, lo dejo sin mover y el L298N se empieza a calentar. A alguno de ustedes les a pasado lo mismo? de antemano muchas gracias por su ayuda!!!

  40. Hola muy buen dia, como puedo sacarle los 4 Amperes o 3.5, necesito alimentar dos motores de 3.7 amperes cada uno, espero su apoyo, gracias

  41. Buenas. tengo un L298N y quiero controlar 2 motores DC de 12V. el problema que tengo es que, alimentando el L298N con 12V, solo consigo 7,5V en las salidas para los motores. mi pregunta es si el voltaje de salida deberia ser (aproximadamente) el mismo que el de entrada o esa diferencia de tension se debe al consumo propio del L298N y deberia alimentarlo con 16V por ejemplo?? gracias

  42. Muy buena explicación , pero estado probando motores de paso bipolar igual que en tu explicación, mi motor a paso funciona mas o menos entre 5 y 12 v . la cosa es que siendo de un bajo amperaje el driver se calienta rapido , eh investigado y me sale que necesita un driver l297 para el control de corriente , y mi pregunta va a eso , es necesario ese driver l297 ?? pues según eh visto , suficiente con el driver l298n , y pues me olvide decir , que cuando conecte un motor de paso de 1.6 A , EL DRIVER como empezó a falla , no se quemo , empeso a fallar osea ya no dava la sincronización que necitaba para que el motor de paso gire , la cuestión es , que puedo hacer , para que el driver l298n no se caliente ni se dañe a conectarle el motor paso a paso ? creo que esto le pasa a mucho !! saludos !

  43. Se puede hacer una cnc con tres l298 y arduino quien me puede explicar como se haven las conecciones ayuden

  44. Al parecer esta un poco parado este hilo…
    Sigo con las dudas respecto a como detener un motor bipolar, después de darle una orden de movimiento…ya que de la manera que lo hago sube muchísimo el consumo y se calienta mucho el driver…es como si el driver , en vez de dejar suministrar corriente, siguiese mandando a las dos bobinas el mismo voltaje en la misma fase y este freno “electrico” elevase una barbaridad el consumo.
    ¿Alguna sugerencia?.
    Gracias

    1. Por codigo puedes dejar de enviar el dato de posiscion al motor para que quede enclavado entrando una condicion donde solo envie ceros logicos al momento de terminar la accion, otra opcion ceria con un boton externo hacer un enable que envie dichos ceros logicos, tambien puedes conectar la opcion de enable que tiene el driver a tu controlador para desactivar el driver utilizando una consicion similar a lo antes dicho.

      Recuerda que entre mas lento se mueva el motor a pasos mas consumo tendras de corriente y entre mas rapido el consumo es menor. y hay un tope de velocidad maxima que puedes conseguir del motor porque hay cierta inercia que debe romper para mover el eje y si la conmutacion de corriente que pasa por las bobinas es muy rapida generaras solo movimiento erratico.
      http://www.todorobot.com.ar/tutorial-sobre-motores-paso-a-paso-stepper-motors/

      1. Buenas tardes
        Me pasa lo mismo que a Andres, después del movimiento del motor hacia un lado o hacia el otro, el motor se queda anclado consumiendo mucho y calentándose. No me queda claro cual es el comando que debo poner para parar el motor. Si pongo:
        myStepper.step(stepsPerRevolution); para girar a un lado, cual es que para las bobinas del motor?
        Existe mas comandos para el L298N?
        Te agradeceria me lo aclararas debido a que estoy paralizando un pequeño proyecto por esto.

  45. buenas la verdad es que no se mucho sobre esto pero estoy haciendo un robot que se detiene al detectar proximidad a un objeto y mi batería no va conectada entre el L298N y el aduino sino solo en el ardunio únicamente el cual lleva un sensor de ultrasonido HC-SR04 como puedo lograr que funcione ?

  46. Buen día quería saber si puedo activar las entradas del L298 con un fpga que tiene una salida 3.3 VCA

    1. Si, el L298 acepta estados lógicos donde 3.3 lo interpreta como ‘1’ o estado alto. Estado lógico ‘0’ de 0 a 1.5V.

  47. Buenas tardes, estoy intentando controlar dos steppers nema17, la alimentación es 12V a 1A
    Aunque dejo el jumper activado alimento el arduino a través del cable usb, en mi programa, creo dos objetos stepper y les envío sus respectivos pasos, sin embargo cuando envío el código los motores realizan los movimientos bien como por 1 minuto, luego solo uno se mueve y el otro comienza a vibrar, y note que desde que envio el programa el voltaje de alimentación ya no es de 12v sino de 4.8v aproximadamente, por que pasa esto gracias

  48. Buenos dias.
    Hace unas semanas adquirí un elegoo smart car (con arduino uno) y driver l298n tiene cuatro motores, lo compré para dar unas clases de robótica educativa.
    El coche viene con un dvd con códigos para hacer un seguimiento de línea (con 3 sensores IR código: https://github.com/griffegg/ElegooSRC/blob/master/Line_tracking_car.ino) y evitar chocar obstaculos (sensor ultrasónico codigo en https://github.com/griffegg/ElegooSRC/blob/master/Obstacle_Avoidance_Car.ino). El asunto es que ninguno funciona bien, es decir hace girar mal los motores aparentemente. Tengo todo conectado al L298n como indica el manual, instalo el mismo código que trae el manual, pero no funciona, por ejemplo creo que no gira a la derecha, o cuando tiene que ir hacia adelante aveces va hacia la izquierda, etc…
    Alguien me puede ayudar?
    desde yá muchísimas gracias

  49. hola me podrias regalar el eswquema de fritzing para el puente h

  50. habla del uso de una fuente externa de 5V para alimentar el l298, ¿por qué?

    OLIVER NICOLAS HERNANDEZ REYES
  51. DIOS les bendiga lo que sucede es que necesito controlar la rotacion de un motor paso a paso derecha o izquierda pero con un interruptor no con arduino a ver si alguien tenia una idea, agradezco su colaboracion muchas gracias

  52. Tengo una duda respecto al driver, tengo un diagrama que me marca que en el driver tiene un conector llamado SENSA y SENSB que seran bajados a tierra y no se de donde tomar esó en el driver

  53. Hola buenas tardes.
    Soy nuevo en esto y estoy controlando con una placa arduino UNO y un L298N dos motores DC. Tengo los pines ENA y ENB con puente al igual que el Jumper de 5V activo. Cuanto gestiono un sólo motor me funciona perfectamente. Cuando activo los dos me va a saltos y se mueve muy despacio. Tengo conectados 6V y de la salida del L298N alimento la placa Arduino UNO.
    Creo que tengo todo conectado perfectamente, pero no se que me falla.
    Alguien me podría dar alguna pista.
    Gracias de antemano.
    Un saludo

    1. Pues te recomendaria que el arduino lo alimentes por cable a la pc, y que mires cuanta corriente llega al modulo, porque si la corriente es muy pequeña se tiene que distribuir en los dos motores y puede ir mas lento y dar saltos , en cambio si solo funciona uno toda la corriente la lleva ese, y funciona bien

  54. Buenas, primero dar la enhorabuena por el post, es realmente bueno. Me ha servido para entender realmente el funcionamiento de este dispositivo.
    Ahora, tengo una duda que me esta pasando.
    El problema es que tengo todo conectado como dice, aunque variando los pines, ya que tengo los otros ocupados. Eso sí, respeto totalmente la salida PWM de los ENA y ENB…
    Aún así, no me varía la velocidad de los motores DC, van siempre a la misma velocidad ponga el valor que ponga…
    Si pongo 0 no se paran y de ahi hasta 255 todo va a la misma velocidad…
    ¿a que puede ser?

    Gracias de antemano

  55. se dice que quien sabe reina.
    ustedes estan regalando conocimiento yo reinare.
    gracias por su desprendimiento de conocimientos

  56. necesito ayuda para conectar, programar una trageta keyestudio UNO con un modulo motor L298N y Módulo Bluetooth HC-06 para que funcione con un carrito de dos ejes, uno de tracción adelante y reversa y el otro eje, izquierda a derecha, urgente ayudeme hoy es un trabajo escolar de mi hijo 11:50 am del 25 de agosto 2017.

  57. muy buen post ,necesito si me pueden ayudar con un código estoy probando igual con el l298 n para controlar dos motor gearbox ,al cargar el código solo me funciona la vertical del joystick pero al configurar el joystick lado x no me funciona y cargo casi los mismos código que el lado y ojala me puedan orientar como puedo realizar este ejemplo o no se puede controlar enforma independiente los dos motores y que giren tanto a la derecha como izquierda ,se agradecería mucho gracias

  58. Buenas tardes,

    Lo primero enhorabuena por la claridad de tus explicaciones. Simples y eficaces, me han servido mucho.

    Estoy tratando de poner un par de finales de carrera a un motor paso a paso bipolar pero no doy con la tecla para el codigo…

    He conectado el comun a los 5v y el NC a un pin digital.

    Si pudieras echarme un cable puede que a alguien más le sea de utilidad también.

    En cualquier caso gracias por la dedicación, saludos.

  59. Muchas gracias por la aportación, ayuda, y explicaciones, enormemente eficaces.
    Tengo unas pregunta, ¿Alguna de los dos primeros ejemplos se puede usar con un motor DC de limpiaparabrisas? ¿Es posible conectar un motor de ese tipo al L298N?

    Saludos!

  60. Creo que es importante aclarar que este driver sirve solo para motores a pasos que no tengan baja impedancia, es decir que tengan voltajes de trabajo de 12Vmax o similar, ya que si se tiene un motor cuyo voltaje de trabajo nominal es 2V se tiene que usar otro tipo de Driver. La explicación es esta: si el motor te dice que trabaja a 2V y 1.5A quiere decir que con 2V estará alcanzando esa corriente máxima. Ningún driver de este tipo esta diseñado para trabajar a voltajes de ese órden o menores tal que no estés llevando al motor a su máxima corriente de trabajo, por lo tanto aplica otro tipo de drivers como los famosos a4988 o similar, que incorporan controles más complejos pero más completos para este tipo de motores que permiten manejarlos a voltajes mucho mayores limitando la corriente que fluye por el motor. Saludos

  61. Hola,
    Quisiera saber si se puede con un motor de agua?
    La idea es que cuando se mande una señal desde el arruinó, el motor de Active una cierta cantidad de tiempo y vuelva y se apague.

    Gracias

    Leidy Hernández Franco
  62. Hola!

    Gracias por toda la información.
    Quería saber de dónde sacáis la alimentación de 5V-12V, tenéis fuente de alimentación?

  63. Muy buen Tutorial!!!!

  64. hola como esta mire me gusto mucho su tutorial y no se si fuera mucha molestia
    verdad que si pudiera hacer un scketch donde pudiera hacer giros de 90 grados en un solo sentido
    y con un click de un boton, Cuento un motor nema 23 de 1.8 2.0A y tengo un proyecto pero yo no se programar
    el arduino le agradeceria si ud pudiera hacerme el sketch para ardino uno mi correo es
    [email protected] y si no puede tal vez quiera vendermelo, espero su respuesta Grcias.

  65. Que tal?
    Estoy iniciando con este tema de Arduino.
    Mi pregunta es, cómo hago para controlar el avance o el retroceso con un potenciómetro?
    Y si puedo hacer que avance 1 motor y retroceda otro motor.

  66. Como le haría para controlar un puentes h y no solo 1 ósea quiero controlar 4 motores no nomas 2

  67. HOLA BUEN DIA, QUISIERA SABER SI ME PODRIAN AYUDAR, VOY EMPESANDO CON ARDUINO Y SE ME HACE MUY INTERESANTE
    MI PREGUNTA ES COMO PUEDO CONTROLAR 6 MOTORES DE DC DE 12 V CON 3 L298N PERO CON DIFERENTES CICLOS DE TIEMPO
    LA MISMA VELOSIDAD PERO CICLOS DIFERENTES DE APAGADO Y ENCENDIDO
    ME PODRIAN AYUDARNO PUEDO CONTROLAR EL TIEMPO DEL APAGADO DEL MOTOR 6 ME VARIA MUCHO
    LO ESTOY HACIENDO CON UN ARDUINO MEGA

  68. Buenas tengo un problema tengo un proyecto de un seguidor de sol, este proyecto estaba pensado ser usado mediante el driver l298n y un motor nema 17, el problema es que el motor no tiene suficiente fuerza, por lo que se opto pasar a un motor nema 23 que tiene mas torque, pero el problema radica en que no puedo usar ya este driver, debido a que no da la suficiente corriente para hacerlo funcionar, he comprado un driver a4988 de pololu, el problema es que ahora no se cuales son los pines de control en el nuevo driver, me podrian ayudar para detectar esos pines

  69. Hola, quisiera conectar el L298N a mi bomba 24Vdc/1.54A. Al mismo lo alimentare a 24V. Para el sistema logico del L298N y Arduino Uno podria usar la misma fuente de 5V. Habria algun problema?. No quisiera arruinar mi primer intento.
    Luego quisiera agregar unas valvulas solenoide de 500 mA 12Vdc.

    Gracias.

  70. hola como hago que gire los 360 grados o aumentar el numero de pasos

  71. Buenas noches. Una pregunta, tengo un módulo L298 pero la versión que tiene los pines de control de motores y GND , 5V y VMS en una sola fila. Necesito controlar la velocidad del motor, pero no encuentro el jumper que debo quitar para este fin. Qué debo hacer?. Mil gracias.

    john jairo zabala gomez
  72. Hola. Estoy montando un programador para jardín con Arduino y unos reles. El problema es que los solenoides son por impulsos y necesito enviar un impulso positivo de 2 segundos para abrirlos y luego otro impulso negativo para cerrarlo. Entiendo que el H Bridge es lo que me hace falta por lo que tendría que comprar 4 para sustituir el rele de 4 salidas que tengo. Así controlo cada uno de los 4 solenoides con cada uno de los. 4 H bridge. Verdad?

  73. Saludos a todos, espero me puedan ayudar,

    Tengo un motor de 3v., he realizado la conexion como en el ejemplo 1 (usando el mismo codigo), la alimentacion la estoy haciendo desde una bateria de celular que me da 4.5v. pero al conectar al arduino no me funciona.

    cuando conecto solo usando el puente H si funciona, pero al incluir el arduino el motor no se mueve.

    Es porque debo usar 6v o mas ? aunque el motor sea pequeño como indico?

  74. Me ayudo mucho a armar un proyecto me sirvio un montonazo!!Muchas gracias por leerme good bayy

  75. ¡Excelente! A pesar de contener muchas palabras lo he analizado de un tirón y he bajado a la
    zona de comentarios directamente para agradecerte esta entrada, excelente !
    Felicidades

Trackbacks and Pingbacks

  1. […] 28. CONTROL DE MOTOR DC Y PASO A PASO CON DRIVER L298N  […]

  2. […] directamente y aún menos de realizar un control. Es por ello, que se ha introducido un driver L298N para derivar la potencia de unas pilas a los […]

  3. […] Aprendimos a utilizar el módulo controlador de motores L298N utilizando un tutorial y con ello conseguimos que el motor se detuviera, siguiera su ritmo o cambiara de dirección al medir unas determinadas distancias. Secuencia de operaciones: Realizamos la construcción del circuito gracias al esquema que nos proporciona esta blog. […]

  4. […] Si quieres consultar las diferentes formas de alimentar el driver y algunos programas ejemplos puedes consultar el siguiente enlace. […]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *