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.
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.
1. Qué es el L298N
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)
| 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 |
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 |
Para el motor B se repite la misma lógica con ENB, IN3 e IN4. En código son tres pasos:
pinModede INs y ENs como salida.digitalWritede 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.
8. Errores comunes (tabla de síntomas)
| Síntoma | Causa probable | Qué hacer |
|---|---|---|
| Arduino se resetea al arrancar motor | Todo por USB / GND flojo | Fuente de motor aparte; GND común |
| Motor no gira | Enable en LOW / jumper / IN mal | ENA HIGH o PWM; revisa IN |
| Solo un sentido | Un IN flojo o cable | Prueba tabla de dirección |
| Muy despacio aunque PWM 255 | Caída L298 + batería baja | Mide V en bornes del motor |
| Se calienta en vacío | Corto, motor mal, enable mal | Desconecta motor; mide |
| Funciona en Uno, no en ESP32 |
9. Alternativas cuando el L298N se queda corto
| Driver | Ventaja | Cuándo mirarlo |
|---|---|---|
| L9110 / módulos chicos | Barato, simple | Motores pequeños |
| TB6612 | Más eficiente que L298 | Robots a batería |
| DRV8833 | Bueno en 3,3 V / bajas tensiones | ESP32 + motores chicos |
| MOSFET bridge propio | Eficiencia y aprendizaje | Cuando ya lees MOSFET |
| Servo hobby | Posición, no rueda libre DC | Articulaciones |
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.
⚡ 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 Pico vs ESP32.
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.












