El L298N es un módulo que sirve para controlar motores de corriente directa (DC) usando Arduino u otro microcontrolador.
⚙️ ¿Para qué sirve?
Permite:
- Encender y apagar motores
- Cambiar el sentido de giro (adelante o atrás)
- Controlar la velocidad (usando PWM)
🔁 ¿Qué es un puente H?
Se llama así porque internamente tiene un circuito en forma de “H” que permite:
- Invertir la polaridad del motor
- Así el motor puede girar en ambos sentidos

🔌 Partes principales (explicado fácil)
- OUT1 y OUT2 → Motor A
- OUT3 y OUT4 → Motor B
- IN1, IN2, IN3, IN4 → Controlan dirección
- ENA y ENB → Controlan velocidad (PWM)
- 12V → Alimentación de motores
- GND → Tierra
- 5V → Alimentación lógica
🔄 ¿Cómo controla el motor?
Ejemplo para un motor:
- IN1 = HIGH y IN2 = LOW → gira en un sentido
- IN1 = LOW y IN2 = HIGH → gira al contrario
- Ambos LOW o HIGH → el motor se detiene
🎯 En pocas palabras:
El L298N es un intermediario entre Arduino y los motores, porque Arduino no puede mover motores directamente (no tiene suficiente potencia).
Codigo para ensayar con el L298N
🚗 Ejemplo de código L298N (Movimiento en cuadrado)
🔌 Suposiciones de conexión
- IN1 → Pin 8
- IN2 → Pin 9
- IN3 → Pin 10
- IN4 → Pin 11
void setup() {
// Configurar pines como salida
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}

void loop() {
alto(); // Detenido
delay(2000);
adelante(); // Avanza
delay(2000);
derecha(); // Gira derecha
delay(800);
adelante();
delay(2000);
derecha();
delay(800);
adelante();
delay(2000);
derecha();
delay(800);
adelante();
delay(2000);
alto(); // Termina
delay(5000);
}

void adelante() {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void derecha() {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void alto() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}

🧠 Explicación sencilla de como funciona este ejemplo con puente H en arduino
🔹 1. ¿Qué hace este programa?
El carro:
➡️ Se detiene
➡️ Avanza
➡️ Gira a la derecha
➡️ Repite esto 4 veces
👉 Resultado: forma un cuadrado
🔹 2. ¿Cómo controla los motores?
Cada motor usa 2 pines:
- Motor A → IN1 e IN2
- Motor B → IN3 e IN4
Movimiento:
- Adelante: ambos motores giran hacia adelante
- Derecha: un motor avanza y el otro retrocede
- Alto: todos apagados
🔹 3. ¿Por qué usamos funciones?
adelante();
derecha();
alto();
👉 Para que el código sea más ordenado y fácil de entender
👉 Es como dar órdenes claras al robot
🔹 4. ¿Por qué usa delay? ⏱️
delay(2000)→ avanza 2 segundosdelay(800)→ gira el tiempo necesario para formar la esquina
👉 ajustando el tiempo cambia la forma del cuadrado
🎯 TIP (muy importante)
👉 “Si el carro no hace un cuadrado perfecto, no está mal el código… hay que ajustar los tiempos.”
Con esto aplicamos:
- Prueba y error 🔁
- Calibración ⚙️
- Pensamiento ingenieril 🧠