← Índice del curso

Robótica y Automatización · Tema 12

Puente H y drivers de motor

Para invertir un motor hace falta cambiar su polaridad sin crear un cortocircuito. Vamos a estudiar el puente H, sus estados de marcha y parada, y las condiciones eléctricas que debe soportar un driver real.

01 · Punto de partida

Del interruptor al control bidireccional

En el tema anterior conectamos un motor mediante un transistor de lado bajo. Esa etapa permite habilitar una polaridad fija. Para que el robot avance y retroceda necesitamos aplicar tensión al motor en ambos sentidos.

Un puente H es una estructura de conmutación que conecta cada terminal del motor al positivo o al retorno de la fuente. Un driver agrega los circuitos que gobiernan los transistores y, según el dispositivo, regulación de corriente, diagnóstico y protecciones.

Primero analizaremos interruptores ideales. Después usaremos un módulo DRV8833 concreto como ejemplo de interfaz. No vamos a construir un puente discreto con cuatro GPIO controlando directamente transistores.

02 · Topología

Cuatro interruptores y dos ramas

La rama izquierda tiene Q1 arriba y Q2 abajo; su punto medio es A. La derecha tiene Q3 arriba y Q4 abajo; su punto medio es B. El motor queda entre A y B, formando la barra central de la H.

Puente H ideal con cuatro interruptores Q1 conecta A al positivo y Q2 conecta A a masa. Q3 conecta B al positivo y Q4 conecta B a masa. El motor está entre A y B. Q1 y Q4 aplican polaridad positiva; Q3 y Q2 aplican la opuesta. +VMQ1Q3Q2Q4MotorABGND · retorno de potencia

Si cerramos Q1 y Q4, A queda al positivo y B al retorno: VAB = VA − VB ≈ +VM. Cerrando Q2 y Q3, la polaridad se invierte. Qué sentido físico corresponde a cada polaridad depende de los cables y la mecánica.

Los interruptores reales tienen resistencia, retardos y caminos de corriente adicionales. El dibujo explica conexiones; no muestra el accionamiento de gate, los diodos ni la dinámica inductiva.

03 · Combinaciones

Estados permitidos y cortocircuitos

Combinaciones ideales; 1 significa interruptor cerrado.
Q1Q2Q3Q4Resultado
1001Polaridad A→B
0110Polaridad B→A
0000Salidas sin conexión activa a los rieles
0101Ambos terminales al retorno: frenado dinámico
1010Ambos terminales al positivo: otro estado de frenado
11——Corto directo en la rama izquierda
——11Corto directo en la rama derecha

Activar simultáneamente el interruptor alto y bajo de una misma rama conecta la alimentación directamente al retorno. Se llama shoot-through. Su corriente no queda limitada por el bobinado del motor.

Los cambios de estado requieren evitar solapamiento real de conducción. El tiempo muerto deja un intervalo entre apagar un transistor y habilitar su complementario. En un integrado se siguen sus reglas y tiempos internos; no se reemplazan suponiendo que dos escrituras de GPIO ocurren a la vez.

04 · Corriente y energía

Rueda libre y frenado

En rueda libre o coast, las salidas dejan de aplicar activamente una polaridad. El motor puede seguir girando por inercia. La corriente que ya existía necesita recircular por los caminos del driver antes de extinguirse: alta impedancia no significa corriente cero instantánea.

En frenado dinámico, el puente conecta ambos terminales del motor al mismo riel mediante transistores. El eje que sigue girando genera tensión interna y puede producir corriente que se opone al movimiento. La energía mecánica termina principalmente como calor en ese circuito.

Conectar A y B al mismo potencial produce tensión externa diferencial cercana a cero, pero el motor genera fuerza contraelectromotriz. Por eso cero voltios aplicados no implica cero corriente ni cero torque.

Según el modo y el instante, también puede devolverse energía a la alimentación. La fuente debe tolerar esa condición y los transitorios. Una fuente de banco que entrega corriente no necesariamente puede absorberla; la capacitancia y protección deben elegirse según el circuito.

El frenado dinámico disminuye cuando baja la velocidad y no garantiza sostener una carga inmóvil. Para una carga vertical, retención y parada deben diseñarse como vimos en los temas 4 y 10.

05 · Cambio de sentido

Invertir un eje que todavía gira

Si el eje gira hacia adelante, genera una tensión interna E con esa orientación. Aplicar de golpe −VM obliga a un esfuerzo eléctrico distinto del arranque desde reposo.

En marcha positiva: I ≈ (VM − E) / Rtotal
En frenado con terminales unidos: I ≈ −E / Rtotal
Con polaridad inversa y giro aún positivo: I ≈ (−VM − E) / Rtotal

Son estimaciones de corriente para una velocidad momentáneamente fija y después de la evolución eléctrica; la corriente no cambia instantáneamente, porque existe inductancia. La velocidad también cambiará y la regulación del driver puede impedir alcanzar esos valores.

Con VM = 6 V, E = 4 V y Rtotal = 3,5 Ω, las estimaciones son +0,57 A, −1,14 A y −2,86 A. Desde reposo, el caso aplicado a plena tensión sería 6/3,5 ≈ 1,71 A. La inversión puede exigir más magnitud que ese arranque.

Una estrategia habitual reduce la orden, frena o deja desacelerar, comprueba condiciones y luego aplica el nuevo sentido. La decisión depende de inercia, corriente, tiempo y sensores disponibles. Una espera fija sin observar el eje no demuestra que ya esté quieto.

06 · Interfaz concreta

Del esquema ideal al driver integrado

Un integrado puede incluir transistores, accionamiento del lado alto y control de conmutación. El programa ordena estados mediante una interfaz lógica, en lugar de controlar los cuatro gates por separado.

Como ejemplo, para un canal del DRV8833 de Texas Instruments, despierto y sin una protección que inhiba salidas:

Tabla de control del DRV8833; no es universal para todos los drivers.
IN1IN2OUT1OUT2Función
00ZZRueda libre
10AltoBajoUna polaridad
01BajoAltoPolaridad opuesta
11BajoBajoFrenado dinámico

Z significa alta impedancia de la etapa activa. IN1 = IN2 = 1 no ordena shoot-through: el integrado lo interpreta como un estado permitido. No confundas dos entradas lógicas con dos transistores de la misma rama.

Otros dispositivos agregan ENABLE, PWM, STBY o selección de interfaz. La misma combinación de entradas puede tener otro significado. Antes de programar, escribí la tabla de tu driver y revisá estado de arranque, sleep y recuperación.

07 · Límites del conjunto

Corriente máxima y pérdidas

La corriente continua depende del encapsulado, placa, cobre, temperatura y refrigeración. La corriente pico depende también de duración y repetición. Una cifra de «2 A» sin esas condiciones no alcanza para seleccionar el módulo.

La placa DRV8833 de Pololu anuncia aproximadamente 1,2 A continuos por canal y 2 A de pico bajo sus condiciones. También documenta entradas compatibles con lógica de 3 y 5 V, alimentación de motor de 2,7 a 10,8 V y detalles de sus conexiones. Estas características corresponden a esa placa.

En una diagonal conducen dos transistores. Si su resistencia total de camino es Rpuente:

ΔVpuente ≈ I · Rpuente
Pconducción ≈ I² · Rpuente

Con 1 A y 0,5 Ω totales, caen aproximadamente 0,5 V y se disipan 0,5 W. Con 2 A, la pérdida sube a 2 W. Faltan pérdidas de conmutación y otras partes; con PWM importa la corriente RMS, no solo un promedio simple.

En un driver doble, ambos canales comparten recursos térmicos y fuente. No supongas que dos canales al máximo individual siempre pueden operar simultáneamente. Verificá también corriente de arranque y escenarios de inversión.

08 · Detectar y responder

Protecciones y recuperación

Funciones que deben comprobarse en el integrado y en la placa concreta.
FunciónQué aportaQué no garantiza
Regulación de corrienteModula salidas para controlar corriente según su configuraciónQue venga habilitada en cualquier módulo
Protección de sobrecorrienteResponde a una condición excesiva según umbral y tiemposUna corriente de trabajo ajustada para proteger el motor
Apagado térmicoReduce riesgo de daño del driver por temperaturaProteger también bobinado, cableado y mecánica
Bloqueo por baja tensiónInhibe funcionamiento fuera de ciertas condicionesUna parada mecánica controlada antes de perder energía
Salida de falloPermite registrar una condición detectadaDiagnóstico completo ni detección de todas las averías

Leé cómo se recupera cada protección. Algunos fallos se reintentan automáticamente o desaparecen al enfriarse. Si el programa mantiene una orden de marcha, el motor podría volver a recibir energía sin una nueva acción del usuario.

En la placa Pololu del ejemplo, la regulación opcional requiere modificar la conexión de sensado según su documentación; no debe asumirse activa de fábrica. Su salida FLT es de drenador abierto y necesita pull-up. Esa placa incorpora protección de polaridad de batería; no todas las placas con el mismo integrado la incorporan.

09 · Código para la placa

Prueba con DRV8833 y Arduino

Usaremos UNO R3 y la placa Pololu DRV8833 citada: AIN1 a D9, AIN2 a D10, SLP a D8 y FLT a D2. Motor entre AOUT1 y AOUT2; alimentación de motor compatible a VIN y GND; masa común con Arduino. Dejá BIN1 y BIN2 en LOW si usás solo un motor, según el esquema del módulo. No alimentes el motor desde un GPIO.

Verificá cableado sin energía y comenzá con el movimiento contenido. El programa permite pulsos de 250 ms, impone una pausa mínima de 500 ms desde la última desactivación y solicita un rearme antes de cada nueva maniobra. Esa pausa no confirma que el eje se haya detenido.

const byte IN1 = 9, IN2 = 10, SLEEP = 8, FALLO = 2;
bool activo = false;
bool inhibido = true;
unsigned long inicio = 0;
unsigned long ultimoApagado = 0;

void ruedaLibre() {
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
  activo = false;
  inhibido = true;
  ultimoApagado = millis();
}

void setup() {
  digitalWrite(IN1, LOW); digitalWrite(IN2, LOW);
  pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT);
  digitalWrite(SLEEP, LOW); pinMode(SLEEP, OUTPUT);
  pinMode(FALLO, INPUT_PULLUP);
  Serial.begin(115200);
  digitalWrite(SLEEP, HIGH);
  delay(2);  // Espera de despertar, solo en setup y con IN1=IN2=0.
  ultimoApagado = millis();
  Serial.println("C: rearmar; A/V: pulso de marcha; S: rueda libre");
}

void loop() {
  const unsigned long ahora = millis();
  if (digitalRead(FALLO) == LOW) {
    ruedaLibre();
    return;
  }
  if (activo && ahora - inicio >= 250) ruedaLibre();

  if (Serial.available() == 0) return;
  const char comando = Serial.read();
  if (comando == 'S') ruedaLibre();
  else if (comando == 'C' && !activo) inhibido = false;
  else if ((comando == 'A' || comando == 'V')
           && !activo && !inhibido
           && ahora - ultimoApagado >= 500) {
    // Siempre se parte de rueda libre; no se invierte en marcha.
    digitalWrite(IN1, comando == 'A' ? HIGH : LOW);
    digitalWrite(IN2, comando == 'V' ? HIGH : LOW);
    inicio = ahora;
    activo = true;
  }
}

Tras energizar, esperá al menos medio segundo y enviá C y luego A o V desde el monitor serie. Al terminar el pulso vuelve a rueda libre y queda inhibido. Para repetir, verificá la condición mecánica, rearmá y enviá otra orden después de la pausa.

SLP y FLT tienen conexiones y estados propios del módulo elegido. El tiempo de despertar debe respetar su ficha; en este ejemplo se reserva 2 ms. No copies el cableado en otro driver con pines de nombre parecido sin revisar su función.

El fallo se consulta por sondeo y las órdenes serie pueden quedar en un buffer. Esta prueba manual no es un protocolo de mando robusto ni una protección autónoma de inversión; para una máquina real se necesitan órdenes con validez, supervisión y criterios de parada apropiados.

10 · Exploración interactiva

Laboratorios: conexiones y esfuerzo eléctrico

1. Cuatro interruptores ideales

Estos controles son transistores virtuales, no entradas IN1/IN2 de un integrado. Permiten mostrar combinaciones que un driver puede impedir internamente. No se conectan a hardware.

Terminal AZ
Terminal BZ
Tensión aplicada VABindefinida
Estadorueda libre

Seleccioná una combinación.

Probá las dos diagonales, los dos inferiores y los dos superiores. Después activá Q1 y Q2 juntos: el laboratorio informa cortocircuito de rama y deja de asignar una tensión ideal. Con una salida flotante, la tensión depende de corriente, diodos y motor, elementos omitidos aquí.

2. Un eje que sigue girando al invertir

Fuente de 6 V y resistencia de motor de 3 Ω. E representa el giro positivo actual. Se calcula el objetivo eléctrico con E fija, sin inductancia, cambios de velocidad ni actuación de limitadores; no es un salto instantáneo de corriente.

Corriente con polaridad positiva—
Corriente con frenado dinámico—
Corriente al aplicar polaridad opuesta—
Pérdida del puente en ese caso inverso—

Compará los tres modos.

Comparaciones del modelo.
MagnitudResultado
Corriente de arranque con E = 0—
Referencia hipotética de corriente: 2 A—

Con E = 4 V y Rpuente = 0,5 Ω, la inversión pide unos −2,86 A frente a 1,71 A de arranque. La pérdida resistiva del puente correspondiente sería unos 4,08 W si esa corriente se estableciera. El modelo solo compara con 2 A: no recorta la corriente ni calcula temperatura.

Bajá E a cero: desaparece la diferencia entre magnitud de arranque e inversión. Subí Rpuente: baja la corriente, pero eso no convierte la resistencia del driver en un método eficiente de control. Su disipación debe calcularse en cada punto.

11 · Código ejecutable

La inversión en Python

Calculemos las mismas tres condiciones para varios valores de tensión interna. El signo positivo corresponde a corriente A→B; con giro positivo, una corriente negativa puede producir torque de frenado antes de que se invierta el movimiento.

Probalo en el navegador. El código es editable. Python se descarga con Pyodide la primera vez y requiere conexión. No controla un motor.

vm = 6.0
r_motor = 3.0
r_puente = 0.5
r_total = r_motor + r_puente
referencia_a = 2.0

for emf in (0.0, 2.0, 4.0, 5.0):
    directa = (vm - emf) / r_total
    freno = -emf / r_total
    inversa = (-vm - emf) / r_total
    perdida_puente = inversa ** 2 * r_puente
    supera = abs(inversa) > referencia_a
    print(f"E={emf:.1f} V; directa={directa:.2f} A; "
          f"freno={freno:.2f} A; inversa={inversa:.2f} A; "
          f"puente={perdida_puente:.2f} W; supera 2 A={supera}")

A E = 4 V se obtienen +0,57 A, −1,14 A y −2,86 A. A E = 0, las magnitudes de directa e inversa coinciden: 1,71 A. Un circuito con limitación activa no seguirá sin cambios estas estimaciones.

Un transitorio real requiere modelar al menos inductancia y dinámica mecánica. Estas cuentas sirven para identificar un escenario exigente, no para predecir una forma de onda completa ni dimensionar un pico solo por su valor final.

12 · Método y diagnóstico

Pruebas y diagnóstico

  1. Reuní ficha del motor, integrado y placa: tensión máxima cargada, corrientes, tabla lógica y montaje térmico.
  2. Verificá alimentación, masa, desacoplos, entradas de arranque y pines de sleep/fallo.
  3. Probá primero las órdenes sin movimiento, respetando cómo se deben medir las salidas.
  4. Con movimiento contenido, aplicá pulsos breves y verificá el sentido con baja carga.
  5. Compará rueda libre y frenado en condiciones controladas, midiendo corriente y movimiento residual.
  6. Verificá cómo se inhiben y rearman las órdenes ante fallos observados, sin provocar cortocircuitos físicos ni calentamiento deliberado.

El motor está entre dos salidas activas: no conectes la pinza de masa de un osciloscopio de banco a una salida como si fuera GND. Su referencia puede estar unida a tierra y crear un cortocircuito. Usá una técnica diferencial apropiada y conocé el instrumento antes de medir.

«IN1 e IN2 altos queman siempre el puente»

En el DRV8833 representan frenado permitido. El corto peligroso corresponde a los transistores alto y bajo de una misma rama, no a cualquier par de entradas lógicas.

«OFF significa lo mismo en cualquier driver»

Puede significar rueda libre, frenado, sleep u otro estado según la interfaz. Documentá la tabla y la función concreta.

«La protección de sobrecorriente ya regula el motor»

Protección y regulación tienen objetivos, umbrales y tiempos distintos. Comprobá si la limitación de trabajo existe y está configurada en el módulo.

«Si se recuperó el fallo, conviene retomar la orden anterior»

La causa puede persistir o haber cambiado el entorno. Un reinicio automático puede ser peligroso; definí inhibición y rearme deliberado.

«Puedo conservar el diodo del circuito de un sentido sobre el motor»

Un diodo fijo en paralelo al motor conduciría al aplicar una de las polaridades. El puente reversible usa caminos de recirculación apropiados, integrados o externos según su diseño.

13 · Práctica guiada

Predecí antes de comprobar

1. Diagonal de marcha

Con la numeración del dibujo, ¿qué interruptores aplican A al positivo y B al retorno? ¿Qué ocurre si también cerrás Q2?

Ver solución

Q1 y Q4. Agregar Q2 cierra los dos de la rama izquierda y crea un corto directo de alimentación a retorno.

2. Frenado con tensión diferencial cero

Q2 y Q4 están cerrados y el eje todavía gira. ¿VAB ≈ 0 demuestra que la corriente es cero?

Ver solución

No. La tensión interna del motor puede impulsar corriente por el circuito de frenado. La inductancia y el movimiento determinan su evolución.

3. Pérdidas de conducción

El camino activo tiene 0,4 Ω y conduce 1,5 A. ¿Qué caída y pérdida resistiva estimás?

Ver solución

ΔV = 1,5 × 0,4 = 0,6 V y P = 1,5² × 0,4 = 0,9 W. Faltan otros costes y la verificación térmica.

4. Inversión

VM = 8 V, E = 3 V y Rtotal = 4 Ω. Compará la magnitud estimada de arranque con la de polaridad opuesta mientras sigue girando positivo.

Ver solución

Arranque: 8/4 = 2 A. Inversa: (−8 − 3)/4 = −2,75 A. La magnitud es mayor, sin afirmar un salto instantáneo ni que se alcance si hay limitación.

5. Tabla del integrado

En el DRV8833 despierto y sin inhibición, ¿qué diferencia hay entre IN1/IN2 = 00 y 11?

Ver solución

00 deja las salidas en alta impedancia para rueda libre. 11 pone ambas salidas bajas para frenado dinámico. No son la misma maniobra aunque ninguna aplique una diagonal de marcha.

6. Recuperación térmica

Un driver se apaga por temperatura y luego se recupera solo. El programa conserva marcha. ¿Qué riesgo hay y qué respuesta conviene definir?

Ver solución

El motor puede reenergizarse sin una nueva orden. Hay que inhibir la marcha ante el fallo observado y exigir recuperación y rearme adecuados a la máquina. También debe investigarse la causa térmica; el software no elimina todos los fallos posibles.

14 · Síntesis

Ideas para recordar

  • El puente H aplica ambas polaridades conectando el motor mediante diagonales.
  • Activar alto y bajo de una misma rama crea shoot-through; las entradas de un integrado no son gates individuales.
  • Rueda libre, frenado dinámico y sleep son estados distintos.
  • La corriente inductiva y la inercia no desaparecen al cambiar la orden.
  • Invertir mientras el eje gira puede exigir más corriente que arrancar desde reposo.
  • Corriente continua y pico dependen del integrado, placa, temperatura y duración.
  • Regulación de corriente y protección de sobrecorriente no son equivalentes.
  • El tratamiento de fallos debe considerar recuperación automática, inhibición y rearme.

¿Listo para el tema 13?

Antes de avanzar, dibujá las diagonales de marcha y el estado de frenado. Después explicá qué tabla lógica usa tu driver, qué corriente puede soportar y cómo impedirías retomar una orden tras un fallo.

En el próximo tema estudiamos control de velocidad con PWM: ciclo de trabajo, frecuencia y zona muerta del motor.