INICIO /  APRENDE /  BLOG /  GUÍA
Guía6 min·

Puente H: qué es, cómo funciona y cómo usar el L298N con Arduino

Un puente H es un circuito de cuatro interruptores que invierte el sentido de la corriente a través de un motor de corriente continua (DC). Al cerrar un par diagonal, el motor gira en un sentido; al cerrar el otro, gira en el contrario. El L298N contiene dos puentes H, por lo que puedes controlar dos motores DC o las dos bobinas de un motor paso a paso bipolar. Arduino entrega las señales de control y una fuente aparte alimenta los motores.

Cómo funciona un puente H: giro, velocidad y frenado

Con el puente A habilitado, IN1 en alto e IN2 en bajo producen un sentido de giro; al invertir ambas señales, inviertes el giro. El sentido físico depende de cómo conectes los cables del motor. Con IN1 e IN2 iguales, el L298 aplica frenado rápido. Si bajas ENA, desconecta el puente y el motor gira libre mientras se detiene. Para variar la velocidad, aplica una señal PWM al pin ENA: el tiempo que permanece habilitado el puente determina la potencia media que recibe el motor. ST advierte que durante el frenado la corriente debe mantenerse dentro del límite del chip. Nunca cierres los dos interruptores de una misma rama en un puente H construido con componentes discretos; causarías un cortocircuito.

L298N: alimentación, corriente y calor

La hoja de datos de ST indica una tensión de operación de hasta 46 V para la etapa de potencia del chip y de 4,5 a 7 V para su lógica, con 5 V como valor típico. También fija 2 A por canal para operación DC como límite absoluto; dimensiona el motor, la fuente y la refrigeración con margen, incluida la corriente de arranque o bloqueo. Esos límites corresponden al integrado; comprueba también los componentes del módulo armado. El L298N usa transistores bipolares: ST especifica una caída total mínima de 1,8 V a 1 A y un máximo de 3,2 V en esa condición. Por eso el motor recibe menos tensión que la fuente y el chip disipa la diferencia como calor. Revisa el disipador y detén la prueba si el módulo se calienta demasiado.

Pines y jumper de 5 V del módulo

En el módulo, conecta la fuente del motor a la entrada de potencia y GND, y el motor A a OUT1 y OUT2. ENA habilita ese canal; IN1 e IN2 fijan su sentido. El segundo canal usa ENB, IN3 e IN4, con salidas OUT3 y OUT4. Retira el jumper ENA si vas a controlar velocidad con PWM desde Arduino. En placas que incluyen un regulador y un jumper marcado 5V-EN, el jumper habilita la alimentación de la lógica desde la entrada del motor; sin él, la lógica requiere una fuente de 5 V en el terminal correspondiente. En el módulo que documenta SunFounder, retira el jumper si la fuente del motor supera 12 V y alimenta la lógica con 5 V por separado. Los 46 V del chip no aplican al regulador del módulo. SunFounder documenta ese circuito, pero los módulos pueden variar: comprueba la serigrafía y la ficha de tu placa antes de usar el terminal de 5 V como entrada o salida. Evita conectar dos fuentes de 5 V entre sí.

Conexión del L298N con Arduino Uno

Para un motor DC, conecta ENA a D9 (PWM), IN1 a D8 e IN2 a D7 de Arduino Uno. Lleva los cables del motor a OUT1 y OUT2. Alimenta la entrada de potencia del módulo con una fuente adecuada para el motor y une el GND de esa fuente, el GND del L298N y el GND de Arduino. Alimenta Arduino por USB durante esta prueba. Confirma que la lógica del módulo reciba 5 V según la posición de su jumper y la documentación de esa placa. Deja el jumper ENA retirado para que D9 controle el canal. Nunca alimentes el motor desde el pin de 5 V de Arduino.

Código Arduino para invertir el giro

Este ejemplo hace girar un motor conectado al canal A, lo deja girar libre antes de invertir el sentido y repite el ciclo. Los 500 ms en marcha libre no garantizan que el motor se detenga: con más inercia o carga, alarga esa pausa. analogWrite en D9 aplica PWM al pin ENA; cambia 180 dentro del rango de 0 a 255 para probar otra velocidad. Prueba primero sin carga mecánica y verifica la corriente del motor.

const int ENA = 9;
const int IN1 = 8;
const int IN2 = 7;

void setup() {
  pinMode(ENA, OUTPUT);
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  analogWrite(ENA, 0);
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
}

void loop() {
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  analogWrite(ENA, 180);
  delay(2000);

  analogWrite(ENA, 0);
  delay(500);

  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);
  analogWrite(ENA, 180);
  delay(2000);

  analogWrite(ENA, 0);
  delay(500);
}

Motores paso a paso con L298N

ST muestra en su hoja de datos un motor paso a paso bipolar de dos fases conectado a ambos puentes del L298. Cada puente alimenta una bobina y el controlador cambia la polaridad de ambas en secuencia para avanzar. Identifica los pares de cables de las bobinas antes de conectarlos a OUT1/OUT2 y OUT3/OUT4. El circuito de ST añade control de corriente con componentes externos; el módulo L298N común no garantiza esa función por sí solo. Si tu motor exige limitar la corriente por bobina, elige un controlador de paso a paso que lo haga y ajusta ese límite según la ficha del motor.

Errores comunes y cuándo elegir otro driver

Si el motor no gira, revisa primero la fuente del motor, la tierra común y el estado de ENA. Si gira débil, mide la tensión en sus bornes mientras funciona: la caída del L298N puede explicar parte de la diferencia. Si el módulo se calienta, comprueba la corriente en marcha y al arrancar, y considera otro controlador adecuado para la carga. Para comparar motores, placas Arduino y fuentes compatibles con tu montaje, revisa los enlaces de Zamper al final; confirma la tensión y la corriente de cada equipo antes de conectarlo.

Fuentes técnicas

PRODUCTOS RELACIONADOS
Módulo puente H L298NArduino Uno MakerMotoresFuentes de poder
¿NECESITAS AYUDA?

Habla con un especialista IoT.

Contactar