Esta tienda usa medición anónima para entender cómo se navega su catálogo. GA4 y Clarity requieren tu permiso; Meta y TikTok solo se activan si aceptas publicidad.
Cargando contenido editorial
actuadores
Control de motor DC con L298N y Arduino paso a paso
Cómo hacer que un motor DC gire, cambie de sentido y regule su velocidad con el módulo L298N, sin quemar el driver ni reiniciar el Arduino en cada arranque.
10 min de lectura
El motor zumbó medio segundo, el Arduino se reinició y el olor a caliente salió del puente H. El L298N es el módulo de control de motor DC más copiado en tutoriales… y el que más castiga si alimentas la lógica mal, olvidas el GND común o pides 2 A por un camino que disipa como estufa. No es el puente más eficiente del mundo; es el más documentado. Usarlo bien sigue siendo una habilidad útil en robots de línea, carritos y demos de PWM.
Puente H L298N: señales IN1 e IN2 hacen girar el motor
Esta guía cubre qué es el L298N, pines, alimentación dual, sentido de giro, PWM de velocidad, disipación, errores comunes y alternativas más eficientes. Para la lista de materiales de un robot de línea mira robot seguidor de línea. Para bajar 12 V a 5 V de lógica, LM2596. Para servos de posición (otro animal), MG996R.
Compartir este artículo
Escrito por
Tecnoelite Colombia
Componentes electrónicos y semiconductores en Colombia
Componentes electrónicos, semiconductores, Arduino, medición, audio, herramientas y repuestos con envíos a todo Colombia.
El L298N es un doble puente H de potencia (IC clásico ST) montado en módulos de hobby con:
Disipador metálico.
Bornes para motor A y motor B.
Entradas lógicas IN1–IN4 y enables ENA / ENB.
Jumpers de enable (a veces puestos de fábrica = motor siempre “habilitado” al 100 %).
Regulador 5 V a bordo en muchos módulos (con límites serios de corriente y caída de voltaje).
Cada puente H permite girar un motor DC en ambos sentidos y, con PWM en el enable, regular velocidad. Internamente hay caídas de voltaje notables: el motor no ve los mismos 12 V limpios que mides en el borne de batería.
Idea clave: el L298N enseña dirección + PWM. Si necesitas eficiencia y menos calor, más adelante mirarás controladores como el TB6612, DRV8833 o MOSFETs dedicados.
2. Pines del módulo (mapa típico)
Cuidados L298N: separar alimentación motores y lógica, calor y caída de voltaje
Señal
Función
IN1, IN2
Dirección / freno motor A
IN3, IN4
Dirección / freno motor B
ENA
Enable + PWM motor A
ENB
Enable + PWM motor B
OUT1–OUT2
Motor A
OUT3–OUT4
Motor B
+12V / VMS / Vmot
Alimentación de motores (rango según módulo; a menudo ~5–35 V con matices)
GND
Masa común con el Arduino
+5V
Salida del regulador o entrada de lógica (según jumper y uso)
Confirma serigrafía de tu placa: hay clones con etiquetas flojas. El pin “+5V” del módulo no es un cargador mágico de 2 A para el Arduino y todos los sensores.
3. Alimentación: la parte que quema proyectos
Dos rieles mentales
Potencia de motores: batería 7,4 V, 11,1 V o fuente de banco según motores. Va al borne de motor del L298N.
Lógica del Arduino: 5 V limpios (USB o regulador propio). Comparte GND con el L298N siempre.
El jumper del regulador 5 V
Muchos módulos traen un jumper que habilita un regulador lineal desde la tensión de motor hacia el pin +5V:
Situación
Qué hacer
Vmot alta (p. ej. 12 V) y quieres 5 V para lógica del puente
Jumper puesto solo si conoces el límite de corriente y el calor
Vmot baja (~6–7 V)
El regulador puede no entregar 5 V útiles
Quieres 5 V “para todo el robot” desde el L298N
Mala idea si hay servos, ESP y sensores: usa LM2596 aparte
Lógica alimentada desde Arduino 5 V
A veces quitas jumper y alimentas +5V del módulo desde el 5 V del micro (lee el diseño de tu módulo)
Nunca asumas que el USB del portátil alimenta dos motores de engranaje a pico de corriente. La caída de tensión que reinicia el Arduino es el síntoma número uno.
4. Tabla de dirección (motor A de ejemplo)
ENA
IN1
IN2
Resultado típico
PWM / HIGH
HIGH
LOW
Gira sentido 1
PWM / HIGH
LOW
HIGH
Gira sentido 2
HIGH
HIGH
HIGH
Freno: se detiene en seco (no abuses de esto)
HIGH
LOW
LOW
Libre: el motor gira por inercia hasta parar
LOW
x
x
Motor deshabilitado
Para el motor B se repite la misma lógica con ENB, IN3 e IN4. En código son tres pasos:
pinMode de INs y ENs como salida.
digitalWrite de dirección.
analogWrite(ENA, valor) con un valor de 0 a 255 para la velocidad. En el Uno los pines con PWM son el 3, 5, 6, 9, 10 y 11.
El programa completo está en la sección 10.
En ESP32 usa la API de PWM de tu core; no copies analogWrite de un tutorial de 2012 sin verificar.
5. Cableado paso a paso (carrito de dos motores)
Batería o fuente de motores → Vmot y GND del L298N. Polaridad correcta.
GND del L298N → GND del Arduino (imprescindible).
IN1–IN4 → pines digitales del Arduino.
ENA, ENB → pines PWM (o deja jumpers de enable puestos solo para prueba a full, luego pásalos a PWM).
Motores en OUT1–2 y OUT3–4.
Arduino por USB o fuente 5 V propia; sensores en el riel de lógica, no en el de motor sucio.
Primera prueba: un motor, velocidad media, sin carga mecánica al máximo.
Condensadores de desacople en la batería y cables cortos de potencia ayudan. Los jumpers finos de protoboard no son un bus de 2 A.
6. PWM, ruido y lógica de 3,3 V
Frecuencia PWM por defecto del Uno suele bastar para motores hobby; frecuencias muy bajas se oyen; muy altas calientan más según el driver.
Motores con escobillas meten ruido: separa cables de señal, retuerce pares de motor, y no esperes lecturas de ADC perfectas al lado del L298.
Con ESP32 a 3,3 V, verifica si los umbrales HIGH del L298 se alcanzan bien. A veces necesitas buffers o un módulo pensado para 3,3 V. No es “imposible”: es un paso que el tutorial de Uno omite.
7. Disipación y corrientes reales
El L298 tiene caídas internas: parte de la energía se va en calor del IC y del disipador. Por eso:
Los “2 A por canal” son la cifra de la hoja de datos con disipador y aire moviéndose. Sin disipador, diseña con la mitad y vigila la temperatura.
Mide la corriente con el motor bloqueado, frenándolo con la mano: ese pico diseña fusible y batería.
Si el disipador quema el dedo en un minuto a media carga, reduce el ciclo de trabajo, mejora la ventilación o cambia de driver.
Para robots ligeros suele alcanzar; para eficiencia y batería, hay mejores puentes.
No tires el L298N si ya lo tienes: úsalo para aprender. En compra nueva para un producto serio, evalúa eficiencia.
10. Mini proyecto: un motor con rampa
Un motor, el L298N y el Arduino. El programa sube la velocidad de a poco, la mantiene, la baja igual de suave y para. Con eso ves en una hora el ruido, el calor y las caídas de alimentación, antes de montar el chasis completo.
cpp
const int IN1 = 7; // direcciónconst int IN2 = 8; // direcciónconst int ENA = 9; // velocidad: tiene que ser un pin PWMvoid adelante() { digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);}void parar() { analogWrite(ENA, 0); digitalWrite(IN1, LOW); digitalWrite(IN2, LOW);}void setup() { pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(ENA, OUTPUT); parar(); // estado seguro antes de nada Serial.begin(9600);}void loop() { adelante(); // Sube despacio. Arrancar de golpe es lo que reinicia el Arduino. for (int velocidad = 60; velocidad <= 200; velocidad += 5) { analogWrite(ENA, velocidad); Serial.println(velocidad); delay(50); } delay(1000); // Y baja igual de suave. for (int velocidad = 200; velocidad >= 60; velocidad -= 5) { analogWrite(ENA, velocidad); delay(50); } parar(); delay(2000);}
⚡ Por qué la rampa arranca en 60 y no en 0. Un motor de corriente continua no empieza a girar hasta cierto valor: por debajo solo zumba y se calienta. Sube desde 0 una vez con el monitor serie abierto, anota en qué número arranca tu motor, y usa ese valor como piso.
🔌 Y si vas a mover dos motores, cada uno tiene su par de pines de dirección y su pin de velocidad: IN1/IN2 con ENA para uno, IN3/IN4 con ENB para el otro.
11. Del banco al chasis (sin rehacer el cableado tres veces)
Cuando el motor ya gira en la mesa:
Fija el L298N al chasis con el disipador ventilado (no envuelto en foam).
Usa bornes o conectores que aguanten vibración; el protoboard en un robot vivo es préstamo, no destino.
Separa el mazo de potencia del mazo de sensores (ultrasonido, IR de línea).
Si sumas un ESP32 para telemetría, mantén la lógica de motor en 5 V/3,3 V bien resuelta antes de montar WiFi.
Documenta qué pin es ENA e IN1: en tres semanas el serigrafía del clone no te va a salvar.
Para un seguidor de línea completo, el lista de materiales y la mecánica importan tanto como el puente: robot seguidor de línea.
12. Checklist de montaje
Vmot y lógica separados en la cabeza (aunque compartan batería con buenos reguladores).
GND común Arduino–L298N.
Jumpers de enable entendidos (fijos vs PWM).
Pines PWM correctos en el código.
Primera prueba a un motor y media velocidad.
Cables de potencia con sección decente.
Disipador no apoyado en plástico que se derrite.
Multímetro: midiendo Vmot en carga y corriente aproximada.
Preguntas frecuentes
¿Puedo alimentar el Arduino desde el +5V del módulo L298N?
A veces en demos mínimas (solo el micro y poco más). En un robot con sensores, Bluetooth y servos, no cuentes con ese regulador lineal. Usa un step-down dedicado y mide.
¿Qué voltaje de batería pongo?
El que acepten tus motores y el módulo (con margen). 2S LiPo (~7,4 V) es común en carritos escolares; 12 V en motores de taladro de juguete. Lee la placa del motor y no superes el Vmot del módulo.
¿L298N sirve para motor paso a paso?
Se ha usado para bipolares en modo simple, pero no es el driver moderno de steppers (A4988, DRV8825, etc.). Para DC de rueda es su territorio natural.
¿Por qué el motor “tiene menos fuerza” que con la batería directa?
Por las caídas del L298 y el PWM. Es normal. Si necesitas casi todo el voltaje de batería en el motor, cambia de topología de driver.
¿ENA debe ir a PWM siempre?
Para velocidad variable, sí. Para “on/off a full”, puedes dejar enable en HIGH (jumper) y solo conmutar dirección — menos flexible y más brusco al arrancar.
¿Sirve con Raspberry Pi Pico o solo con Arduino?
La lógica es la misma: GPIO de dirección + PWM de enable + GND común + potencia aparte. Adapta la API de PWM de la plataforma. Ver también ESP32 vs Arduino.
El L298N bien alimentado y con GND común deja de ser “el módulo que reinicia el Arduino” y se convierte en lo que siempre fue: un puente H didáctico para aprender sentido, freno y velocidad. Domina eso en la mesa y recién después pides más eficiencia al silicio.