Caso práctico: Inversión de giro de motor DC

Prototipo de Inversión de giro de motor DC (Maker Style)

Nivel: Básico – Entender cómo usar dos relés SPDT para cambiar la polaridad y dirección de un motor de CC.

Objetivo y caso de uso

En este caso, construirá un circuito de puente en H basado en relés para controlar un motor de CC. Usando dos relés de un polo y doble tiro (SPDT), podrá accionar el motor en sentido horario, antihorario o frenarlo utilizando pulsadores simples.

  • Escenarios del mundo real:
  • Elevalunas automotrices: Invertir el motor para subir o bajar el vidrio.
  • Robótica: Controlar la dirección de las ruedas para el movimiento hacia adelante y hacia atrás.
  • Cintas transportadoras industriales: Cambiar la dirección de una banda para enrutar productos.
  • Cortinas motorizadas: Mecanismos de apertura y cierre.

  • Resultado esperado:

  • Estado de reposo: Cuando no se presionan botones, los terminales del motor están conectados a tierra (diferencia de 0 V), resultando en un freno dinámico (el motor se detiene).
  • Estado de avance: Presionar el Botón A aplica +5 V al motor; gira en sentido horario (CW).
  • Estado de retroceso: Presionar el Botón B aplica -5 V (cambio de polaridad) al motor; gira en sentido antihorario (CCW).
  • Frenado/Seguridad: Si ambos botones se presionan simultáneamente, ambos terminales del motor se conectan a VCC, resultando en una diferencia de 0 V y el motor permanece detenido.

Público objetivo: Aficionados y estudiantes que se inician en el control electromecánico.

Materiales

  • V1: Fuente de alimentación de 5 V CC, función: Fuente de energía principal.
  • M1: Motor de 5 V CC, función: El actuador a controlar.
  • K1: Relé SPDT de 5 V, función: Controla el lado «Positivo» del motor.
  • K2: Relé SPDT de 5 V, función: Controla el lado «Negativo» del motor.
  • S1: Pulsador momentáneo (NO), función: Activa el Relé K1 (Avance).
  • S2: Pulsador momentáneo (NO), función: Activa el Relé K2 (Retroceso).
  • D1: Diodo 1N4007, función: Protección flyback para la bobina de K1.
  • D2: Diodo 1N4007, función: Protección flyback para la bobina de K2.

Guía de conexionado

Esta guía utiliza nombres de nodos para describir las conexiones.
Nodos: VCC (Alimentación 5 V), 0 (Tierra), COIL_A, COIL_B, MOT_A, MOT_B.

  • Fuente de alimentación:
  • V1 (+): Conecta al nodo VCC.
  • V1 (-): Conecta al nodo 0.

  • Circuito de control (Bobinas):

  • S1: Conecta entre VCC y COIL_A.
  • K1 (Bobina): Conecta entre COIL_A y 0.
  • D1: Cátodo a COIL_A, Ánodo a 0 (Protege contra picos inductivos).
  • S2: Conecta entre VCC y COIL_B.
  • K2 (Bobina): Conecta entre COIL_B y 0.
  • D2: Cátodo a COIL_B, Ánodo a 0.

  • Circuito de potencia (Accionamiento del motor):

  • K1 (Normalmente Abierto – NO): Conecta a VCC.
  • K1 (Normalmente Cerrado – NC): Conecta a 0.
  • K1 (Común – COM): Conecta al nodo MOT_A.
  • K2 (Normalmente Abierto – NO): Conecta a VCC.
  • K2 (Normalmente Cerrado – NC): Conecta a 0.
  • K2 (Común – COM): Conecta al nodo MOT_B.
  • M1: Conecta entre MOT_A y MOT_B.

Diagrama de bloques conceptual

Conceptual block diagram — Relay H-Bridge Motor Control
Lectura rápida: entradas → bloque principal → salida (actuador o medida). Resume el esquemático ASCII de la siguiente sección.

Esquemático

+-------------------------------------------------------------------------+
|                DC MOTOR REVERSING CIRCUIT (H-BRIDGE)                    |
+-------------------------------------------------------------------------+

[ CONTROL SUBSYSTEM ]                                [ POWER SUBSYSTEM ]

      (Forward Input)                                   (Left Side Drive)
VCC --> [ S1 Button ]                                  VCC (NO)
            |                                             |
            v                                             v
    [ Node: COIL_A ]                               [ K1 Switch (COM) ] --(MOT_A)--+
            |                                      [  (Relay 1)      ]            |
            +--> [ K1 Coil || D1 ] --> GND                ^                       |
            |    (D1 is Reverse Biased)                   |                       |
            |                                             |                       |
            +----------(Magnetic Link)--------------------+                       |
                                                          |                       |
                                                  GND (NC) +                      |
                                                                                  v
                                                                           [ DC MOTOR ]
                                                                           [    M1    ]
                                                                                  ^
                                                  GND (NC) +                      |
                                                          |                       |
            +----------(Magnetic Link)--------------------+                       |
            |                                             |                       |
            |    (D2 is Reverse Biased)                   |                       |
            +--> [ K2 Coil || D2 ] --> GND         [ K2 Switch (COM) ] --(MOT_B)--+
            |                                      [  (Relay 2)      ]
    [ Node: COIL_B ]                                      ^
            ^                                             |
            |                                             |
VCC --> [ S2 Button ]                                  VCC (NO)
      (Reverse Input)                                   (Right Side Drive)

+-------------------------------------------------------------------------+
| LOGIC KEY:                                                              |
| 1. Idle: Both Switches connect COM to NC (GND). Motor is braked (0 V).   |
| 2. Press S1: K1 switches to NO (VCC). Current: VCC->MOT_A->MOT_B->GND.  |
| 3. Press S2: K2 switches to NO (VCC). Current: VCC->MOT_B->MOT_A->GND.  |
+-------------------------------------------------------------------------+
Esquema Eléctrico

Mediciones y pruebas

Para validar el circuito, realice los siguientes pasos usando un multímetro e inspección visual:

  1. Verificación en reposo: Asegúrese de que ni S1 ni S2 estén presionados. Mida el voltaje entre MOT_A y MOT_B.
    • Resultado: Debe ser 0 V. Ambos terminales están conectados a GND a través de los contactos NC. El motor está bloqueado (difícil de girar a mano debido al cortocircuito de la fuerza contraelectromotriz).
  2. Accionamiento de avance: Mantenga presionado S1.
    • Resultado: K1 hace clic. Mida el voltaje desde MOT_A (Sonda roja) a MOT_B (Sonda negra). El voltaje debe ser aproximadamente +5 V. El motor gira en sentido horario.
  3. Accionamiento de retroceso: Suelte S1, luego mantenga presionado S2.
    • Resultado: K2 hace clic. Mida el voltaje desde MOT_A a MOT_B. El voltaje debe ser aproximadamente -5 V. El motor gira en sentido antihorario.
  4. Doble pulsación (Prueba de seguridad): Presione S1 y S2 simultáneamente.
    • Resultado: Ambos relés hacen clic. El voltaje entre MOT_A y MOT_B es 0 V (Ambos a potencial de 5 V). El motor no se mueve.

Netlist SPICE y simulación

Netlist SPICE de referencia (ngspice) — extractoNetlist SPICE completo (ngspice)

* Practical case: DC Motor Reversing
.width out=256
* Ngspice Netlist
*
* Description: H-Bridge configuration using two SPDT relays to control a DC motor.
* Logic:
* - S1 Pressed -> K1 Active -> MOT_A = 5V, MOT_B = 0V (Forward)
* - S2 Pressed -> K2 Active -> MOT_A = 0V, MOT_B = 5V (Reverse)
* - None Pressed -> MOT_A = 0V, MOT_B = 0V (Stop/Brake)
*
* Simulation Time: 10ms (Captures S1 pulse at 1ms and S2 pulse at 5ms)
.tran 10u 10m

* -----------------------------------------------------------------------------
* Power Supply
* -----------------------------------------------------------------------------
* V1: 5V DC Power Supply, function: Main energy source.
* Connected between VCC (+) and 0 (-).
V1 VCC 0 DC 5

* ... (truncated in public view) ...

Copia este contenido en un archivo .cir y ejecútalo con ngspice.

🔒 Parte del contenido de esta sección es premium. Con el pase de 7 días o la suscripción mensual tendrás acceso al contenido completo (materiales, conexionado, compilación detallada, validación paso a paso, troubleshooting, mejoras/variantes y checklist) y podrás descargar el pack PDF listo para imprimir.

* Practical case: DC Motor Reversing
.width out=256
* Ngspice Netlist
*
* Description: H-Bridge configuration using two SPDT relays to control a DC motor.
* Logic:
* - S1 Pressed -> K1 Active -> MOT_A = 5V, MOT_B = 0V (Forward)
* - S2 Pressed -> K2 Active -> MOT_A = 0V, MOT_B = 5V (Reverse)
* - None Pressed -> MOT_A = 0V, MOT_B = 0V (Stop/Brake)
*
* Simulation Time: 10ms (Captures S1 pulse at 1ms and S2 pulse at 5ms)
.tran 10u 10m

* -----------------------------------------------------------------------------
* Power Supply
* -----------------------------------------------------------------------------
* V1: 5V DC Power Supply, function: Main energy source.
* Connected between VCC (+) and 0 (-).
V1 VCC 0 DC 5

* -----------------------------------------------------------------------------
* User Inputs (Pushbuttons)
* -----------------------------------------------------------------------------
* Modeled as Voltage Controlled Switches (S1, S2) driven by Pulse Sources.
* This strictly simulates the user pressing the button at specific times.

* Stimulus for S1 (Forward Request)
* Pulse: 0V to 5V, starts at 1ms, duration 2ms.
V_USER_S1 CTRL_S1 0 PULSE(0 5 1m 1u 1u 2m 10m)

* Stimulus for S2 (Reverse Request)
* Pulse: 0V to 5V, starts at 5ms, duration 2ms.
V_USER_S2 CTRL_S2 0 PULSE(0 5 5m 1u 1u 2m 10m)

* S1: Momentary Pushbutton (NO)
* Connects VCC to COIL_A when activated by V_USER_S1.
S1 VCC COIL_A CTRL_S1 0 SW_PUSH

* S2: Momentary Pushbutton (NO)
* Connects VCC to COIL_B when activated by V_USER_S2.
S2 VCC COIL_B CTRL_S2 0 SW_PUSH

* -----------------------------------------------------------------------------
* Control Circuit (Relay Coils)
* -----------------------------------------------------------------------------
* Relay K1 Coil Circuit
* K1 Coil: Connects between COIL_A and 0. Modeled as L+R.
L_K1 COIL_A K1_INT 10m
R_K1 K1_INT 0 100
* D1: 1N4007 Diode, function: Flyback protection.
* Cathode to COIL_A, Anode to 0.
D1 0 COIL_A D_1N4007

* Relay K2 Coil Circuit
* K2 Coil: Connects between COIL_B and 0. Modeled as L+R.
L_K2 COIL_B K2_INT 10m
R_K2 K2_INT 0 100
* D2: 1N4007 Diode, function: Flyback protection.
* Cathode to COIL_B, Anode to 0.
D2 0 COIL_B D_1N4007

* -----------------------------------------------------------------------------
* Power Circuit (Motor Drive via Relay Contacts)
* -----------------------------------------------------------------------------
* Relay K1 Contacts (SPDT)
* COM: MOT_A
* NO: VCC (Connected when Coil is Energized/High)
* NC: 0   (Connected when Coil is De-energized/Low)
S_K1_NO VCC MOT_A COIL_A 0 SW_NO_RELAY
S_K1_NC MOT_A 0   COIL_A 0 SW_NC_RELAY

* Relay K2 Contacts (SPDT)
* COM: MOT_B
* NO: VCC (Connected when Coil is Energized/High)
* NC: 0   (Connected when Coil is De-energized/Low)
S_K2_NO VCC MOT_B COIL_B 0 SW_NO_RELAY
S_K2_NC MOT_B 0   COIL_B 0 SW_NC_RELAY

* M1: 5 V DC Motor
* Modeled as a resistive load (50 Ohms) to visualize voltage polarity.
* Connects between MOT_A and MOT_B.
R_M1 MOT_A MOT_B 50

* -----------------------------------------------------------------------------
* Component Models
* -----------------------------------------------------------------------------
* Standard Diode Model
.model D_1N4007 D(IS=1N N=1 RS=0.1 BV=1000 IBV=10u)

* Pushbutton Switch Model (Normally Open)
* Closes (Low R) when Control Voltage > 2.5V
.model SW_PUSH SW(Vt=2.5 Vh=0.1 Ron=0.01 Roff=10Meg)

* Relay Contact Models
* NO (Normally Open): Conducts when Coil > 2.5V
.model SW_NO_RELAY SW(Vt=2.5 Vh=0.1 Ron=0.01 Roff=10Meg)

* NC (Normally Closed): Conducts when Coil < 2.5V
* SPICE SW Logic: If V < Vt, R = Roff. If V > Vt, R = Ron.
* For NC: We want Low R when V < Vt. So Roff=0.01, Ron=10Meg.
.model SW_NC_RELAY SW(Vt=2.5 Vh=0.1 Ron=10Meg Roff=0.01)

* -----------------------------------------------------------------------------
* Output Directives
* -----------------------------------------------------------------------------
* Outputs: Motor Terminals (MOT_A, MOT_B)
* Inputs: Coil Control Voltages (COIL_A, COIL_B)
.print tran V(MOT_A) V(MOT_B) V(COIL_A) V(COIL_B) I(L_K1)

.op
.end

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)

Análisis: At 1ms, S1 activates, energizing Coil A (approx 5V). Consequently, MOT_A goes to 5V while MOT_B stays near 0V (Forward). At 3ms, S1 releases and the motor stops. At 5ms, S2 activates, energizing Coil B. MOT_B goes to 5V while MOT_A stays near 0V (Reverse). Inductive kickback is visible on coil nodes when switches open.
Show raw data table (1104 rows)
Index   time            v(mot_a)        v(mot_b)        v(coil_a)       v(coil_b)       l_k1#branch
0	0.000000e+00	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
1	1.000000e-07	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
2	2.000000e-07	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
3	4.000000e-07	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
4	8.000000e-07	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
5	1.600000e-06	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
6	3.200000e-06	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
7	6.400000e-06	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
8	1.280000e-05	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
9	2.280000e-05	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
10	3.280000e-05	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
11	4.280000e-05	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
12	5.280000e-05	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
13	6.280000e-05	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
14	7.280000e-05	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
15	8.280000e-05	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
16	9.280000e-05	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
17	1.028000e-04	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
18	1.128000e-04	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
19	1.228000e-04	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
20	1.328000e-04	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
21	1.428000e-04	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
22	1.528000e-04	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
23	1.628000e-04	5.000000e-09	5.000000e-09	4.999931e-05	4.999931e-05	4.999931e-07
... (1080 more rows) ...

Errores comunes y cómo evitarlos

  1. Cablear el motor a NO/NC en lugar de COM:
    • Error: Conectar el motor a los pines Normalmente Abierto o Cerrado, y la alimentación al pin Común.
    • Solución: Conecte siempre la Carga (Motor) al pin Común (COM) del relé SPDT para configuraciones de puente en H. La alimentación y la Tierra van a NO y NC.
  2. Omitir diodos flyback:
    • Error: Olvidar D1 y D2 en paralelo con las bobinas de los relés.
    • Solución: Instale siempre diodos en polarización inversa a través de las bobinas para evitar que picos de alto voltaje dañen los interruptores o fuentes de alimentación cuando el relé se apaga.
  3. Usar relés SPST:
    • Error: Intentar esta topología con relés de 4 pines que carecen de un contacto Normalmente Cerrado.
    • Solución: Asegúrese de usar relés SPDT de 5 pines para que el motor pueda conectarse a tierra cuando el relé está apagado.

Solución de problemas

  • El motor vibra pero no gira:
    • Causa: La corriente de la fuente de alimentación es insuficiente.
    • Solución: Verifique la clasificación de corriente de su fuente de alimentación; los motores consumen alta corriente al arrancar.
  • El relé hace clic pero el motor no se mueve:
    • Causa: Contactos internos quemados o cableado suelto en los terminales COM/NO/NC.
    • Solución: Verifique la continuidad entre COM y NO cuando el relé esté activo usando un multímetro.
  • Chispas visibles dentro del relé:
    • Causa: Retroceso de carga inductiva del motor.
    • Solución: Aunque no siempre es fatal, agregar un pequeño condensador (por ejemplo, 100 nF) a través de los terminales del motor puede reducir el arco y el ruido.

Posibles mejoras y extensiones

  1. Interruptores de límite (finales de carrera): Agregue interruptores de límite Normalmente Cerrados en serie con las bobinas de los relés (COIL_A y COIL_B) para detener automáticamente el motor cuando un mecanismo alcanza su final de recorrido.
  2. Control de velocidad: Inserte un reóstato de alto vataje o un controlador de transistor PWM en serie con el suministro principal VCC a los contactos del relé (no a las bobinas) para variar la velocidad del motor.

Más Casos Prácticos en Prometeo.blog

Encuentra este producto y/o libros sobre este tema en Amazon

Ir a Amazon

Como afiliado de Amazon, gano con las compras que cumplan los requisitos. Si compras a través de este enlace, ayudas a mantener este proyecto.

Quiz rápido

Pregunta 1: ¿Cuál es el objetivo principal del circuito descrito en el artículo?




Pregunta 2: ¿Qué tipo de relés se utilizan específicamente en este proyecto?




Pregunta 3: ¿Qué sucede con el motor en el estado de reposo (cuando no se presionan botones)?




Pregunta 4: ¿Qué acción provoca que el motor gire en sentido horario (CW)?




Pregunta 5: ¿Cuál es el voltaje aplicado al motor en el estado de retroceso según el texto?




Pregunta 6: ¿Qué ocurre si se presionan el Botón A y el Botón B simultáneamente en este tipo de configuración de puente H?




Pregunta 7: ¿Cuál de los siguientes NO se menciona como un escenario del mundo real para este circuito?




Pregunta 8: ¿Qué nivel de dificultad se asigna a este proyecto según el contexto?




Pregunta 9: ¿Qué efecto físico se logra al conectar ambos terminales del motor a tierra en reposo?




Pregunta 10: ¿Cuántos relés SPDT son necesarios para construir este circuito de puente en H?




Carlos Núñez Zorrilla
Carlos Núñez Zorrilla
Electronics & Computer Engineer

Ingeniero Superior en Electrónica de Telecomunicaciones e Ingeniero en Informática (titulaciones oficiales en España).

Sígueme:
Scroll to Top