Caso práctico: Controlador automático de bomba de depósito

Prototipo de Controlador automático de bomba de depósito (Maker Style)

Nivel: Medio | Construye un circuito de relé accionado por transistor para controlar automáticamente una bomba de agua usando un interruptor de flotador.

Objetivo y caso de uso

En este caso práctico, construirás un controlador automático de bomba de depósito. El circuito utiliza un interruptor de flotador mecánico para activar un transistor NPN, el cual energiza un relé electromecánico para accionar una bomba de CC de alta corriente (simulada aquí como una carga resistiva) y un LED de estado.

Por qué es útil:
* Automatiza la gestión del nivel de agua en tanques, depósitos y sumideros.
* Aísla de forma segura los circuitos de control de bajo voltaje de las cargas de alta potencia.
* Demuestra la interconexión práctica de sensores mecánicos simples con electrónica de potencia.
* Previene condiciones de desbordamiento o funcionamiento en seco en entornos industriales y agrícolas.

Resultado esperado:
* Al cerrar el interruptor de flotador se aplica un voltaje a la base del transistor, encendiéndolo (saturación).
* El transistor absorbe corriente para la bobina del relé, energizándola y cerrando su contacto normalmente abierto (NO).
* La bomba de CC simulada (resistencia de carga) recibe todo el voltaje de alimentación.
* El LED indicador de estado se ilumina cuando la bomba está activa.
* Al soltar el interruptor se desenergiza el relé, y el diodo flyback disipa de forma segura el pico de voltaje inductivo de la bobina.

Público objetivo: Estudiantes de electrónica de nivel intermedio que aprenden sobre conmutación de transistores, relés electromecánicos y protección de cargas inductivas.

Materiales

  • V1: fuente de alimentación de 12 V CC, función: alimentación principal para la bobina del relé y la bomba
  • V2: fuente de alimentación de 5 V CC, función: alimentación lógica de control para el interruptor de flotador
  • SW1: interruptor SPST, función: interruptor de flotador simulado o sensor de nivel alto
  • R1: resistencia de 1 kΩ, función: limitación de corriente de base del transistor
  • R2: resistencia de 10 kΩ, función: pull-down para la base del transistor para asegurar el apagado
  • R3: resistencia de 1 kΩ, función: limitación de corriente del LED
  • RLOAD: resistencia de alta potencia de 50 Ω, función: carga de bomba de CC simulada
  • Q1: transistor NPN 2N2222, función: controlador de la bobina del relé
  • D1: diodo 1N4007, función: protección flyback para la bobina del relé
  • D2: LED verde, función: indicador de estado de la bomba
  • K1: relé SPDT de 12 V, función: interruptor electromecánico para la bomba

Guía de conexionado

  • V1 se conecta entre el nodo VCC12 y el nodo 0.
  • V2 se conecta entre el nodo VCC5 y el nodo 0.
  • SW1 se conecta entre el nodo VCC5 y el nodo SENSE.
  • R1 se conecta entre el nodo SENSE y el nodo VB.
  • R2 se conecta entre el nodo VB y el nodo 0.
  • La base de Q1 se conecta al nodo VB, el emisor se conecta al nodo 0, y el colector se conecta al nodo COIL_NEG.
  • La bobina de K1 se conecta entre el nodo VCC12 y el nodo COIL_NEG.
  • El contacto COM (Común) de K1 se conecta al nodo VCC12.
  • El contacto NO (Normalmente Abierto) de K1 se conecta al nodo LOAD_SW.
  • El cátodo de D1 se conecta al nodo VCC12 y el ánodo se conecta al nodo COIL_NEG (colocado en antiparalelo a la bobina del relé).
  • RLOAD se conecta entre el nodo LOAD_SW y el nodo 0.
  • R3 se conecta entre el nodo LOAD_SW y el ánodo de D2.
  • El cátodo de D2 se conecta al nodo 0.

Diagrama de bloques conceptual

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

Esquemático

VCC5 --> [ SW1 ] --(SENSE)--> [ R1 ] --(VB)--> [ Q1:B ]
                                              |          |
                                            [ R2 ]       |
                                              |          |
                                             GND         |
                                                         |
      VCC12 --> [ K1 Coil || D1(Rev) ] --(COIL_NEG)--> [ Q1:C ] --( )-- [ Q1:E ] --> GND
                       |
                (Magnetic Link)
                       v
      VCC12 --> [ K1 Switch (COM->NO) ] --(LOAD_SW)--> [ RLOAD (Pump) ] --> GND
                                              |
                                              +------> [ R3 ] --> [ D2 (LED) ] --> GND
Esquema Eléctrico

Diagrama eléctrico

Diagrama eléctrico del caso: Controlador automático de bomba de depósito
Generado desde la netlist SPICE validada del caso.

🔒 Este diagrama eléctrico es premium. Con el pase de 7 días o la suscripción mensual podrás desbloquear el material didáctico completo y el pack PDF listo para imprimir.🔓 Ver planes de acceso premium

Mediciones y pruebas

  1. Prueba de lógica de control: Con SW1 abierto, mide el voltaje en el nodo SENSE. Debería ser 0 V. Cierra SW1 y verifica que el voltaje suba a 5 V.
  2. Verificación del control de base: Mide el voltaje en el nodo VB con SW1 cerrado. Debería marcar aproximadamente 0.7 V, confirmando que la unión base-emisor de Q1 está polarizada en directa.
  3. Verificación de conmutación de la bobina: Mide el nodo COIL_NEG. Cuando SW1 esté abierto, debería medir 12 V. Cuando SW1 esté cerrado, debería caer a casi 0 V (Vce_sat del transistor), confirmando que la bobina está energizada.
  4. Prueba de entrega a la carga: Mide el voltaje en el nodo LOAD_SW. Verifica que marque 0 V cuando el relé esté apagado, y que salte a 12 V cuando el relé se active (haga clic). Comprueba que RLOAD consume corriente y D2 se ilumina.

Netlist SPICE y simulación

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

* Automatic Reservoir Pump Controller
.width out=256

* Power Supplies
V1 VCC12 0 DC 12
V2 VCC5 0 DC 5

* Simulated Float Switch (SW1)
* Using a voltage-controlled switch and a pulse source to simulate a user/sensor triggering the switch
V_SW_CTRL SW_CTRL 0 PULSE(0 5 50u 1u 1u 200u 500u)
S1 VCC5 SENSE SW_CTRL 0 myswitch

* Base driving circuit
R1 SENSE VB 1k
R2 VB 0 10k

* Relay Driver Transistor
Q1 COIL_NEG VB 0 2N2222MOD

* Relay Coil (K1)
* ... (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.

* Automatic Reservoir Pump Controller
.width out=256

* Power Supplies
V1 VCC12 0 DC 12
V2 VCC5 0 DC 5

* Simulated Float Switch (SW1)
* Using a voltage-controlled switch and a pulse source to simulate a user/sensor triggering the switch
V_SW_CTRL SW_CTRL 0 PULSE(0 5 50u 1u 1u 200u 500u)
S1 VCC5 SENSE SW_CTRL 0 myswitch

* Base driving circuit
R1 SENSE VB 1k
R2 VB 0 10k

* Relay Driver Transistor
Q1 COIL_NEG VB 0 2N2222MOD

* Relay Coil (K1)
* Modeled as a series resistor and inductor
R_K1 VCC12 K1_COIL_INT 400
L_K1 K1_COIL_INT COIL_NEG 10mH

* Flyback Diode
D1 COIL_NEG VCC12 1N4007MOD

* Relay Contacts (K1 NO)
* The switch closes when the voltage across the coil (VCC12 - COIL_NEG) exceeds 8V
S_RELAY VCC12 LOAD_SW VCC12 COIL_NEG relay_sw

* Simulated Pump Load
RLOAD LOAD_SW 0 50

* Status LED
R3 LOAD_SW D2_A 1k
D2 D2_A 0 DLED

* Models
.model myswitch SW(vt=2.5 vh=0.5 ron=0.1 roff=10MEG)
.model relay_sw SW(vt=8 vh=1 ron=0.05 roff=100MEG)
.model 2N2222MOD NPN(IS=1E-14 VAF=100 BF=200 IKF=0.3 XTB=1.5 BR=3 CJC=8E-12 CJE=25E-12 TR=100E-9 TF=400E-12 ITF=1 VTF=2 XTF=3 RB=10)
.model 1N4007MOD D(IS=7.02767n RS=0.0341512 N=1.80803 EG=1.11 XTI=3.0 BV=1000 IBV=5e-08 CJO=1e-11 VJ=0.7 M=0.5 FC=0.5 TT=1e-07)
.model DLED D(IS=1e-20 N=2.2 RS=2.5 BV=5 IBV=10u CJO=50p)

* Analysis Commands
.op
.tran 1u 500u
.print tran V(SENSE) V(LOAD_SW) V(COIL_NEG) V(VB) I(L_K1)

.end

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)
Análisis: The transient analysis spans 0 s to 500 us and captures the switching interval. The switching node and inductor current remain bounded, consistent with the flyback path protecting the switch. Main ranges: l_k1#branch -7.86 uA -> 29.9 mA; v(coil_neg) 9.89 mV -> 12.7 V; v(load_sw) 6 uV -> 12 V.
Show raw data table (961 rows)
Index   time            v(sense)        v(load_sw)      v(coil_neg)     v(vb)           l_k1#branch
0	0.000000e+00	5.494076e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.403801e-11
1	1.000000e-08	5.494076e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.403803e-11
2	2.000000e-08	5.494076e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.403801e-11
3	4.000000e-08	5.494076e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.403795e-11
4	8.000000e-08	5.494076e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.403772e-11
5	1.600000e-07	5.494076e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.403654e-11
6	3.200000e-07	5.494076e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.403033e-11
7	6.400000e-07	5.494076e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.400598e-11
8	1.280000e-06	5.494076e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.398528e-11
9	2.280000e-06	5.494076e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.403534e-11
10	3.280000e-06	5.494077e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.401174e-11
11	4.280000e-06	5.494076e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.394780e-11
12	5.280000e-06	5.494076e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.402136e-11
13	6.280000e-06	5.494077e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.408634e-11
14	7.280000e-06	5.494076e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.401469e-11
15	8.280000e-06	5.494076e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.399217e-11
16	9.280000e-06	5.494077e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.399919e-11
17	1.028000e-05	5.494076e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.393646e-11
18	1.128000e-05	5.494076e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.397704e-11
19	1.228000e-05	5.494077e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.408121e-11
20	1.328000e-05	5.494077e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.402567e-11
21	1.428000e-05	5.494076e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.395460e-11
22	1.528000e-05	5.494076e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.400449e-11
23	1.628000e-05	5.494077e-03	5.999997e-06	1.200000e+01	4.994626e-03	2.399821e-11
... (937 more rows) ...

Errores comunes y cómo evitarlos

  • Falta del diodo flyback (D1): Cuando el relé se apaga, el colapso del campo magnético en la bobina genera un pico de voltaje masivo. Sin D1 para proporcionar un camino de descarga seguro, este pico destruirá instantáneamente Q1. Coloca siempre D1 polarizado en inversa a través de la bobina.
  • Corriente de base insuficiente: Si R1 es demasiado grande, Q1 operará en su región lineal en lugar de saturarse completamente. Esto hará que el transistor se sobrecaliente y es posible que el relé no se accione de manera confiable. Asegúrate siempre de que R1 proporcione suficiente corriente de base (Ib) para la corriente de colector (Ic) requerida.
  • Contactos del relé subdimensionados: Los motores y bombas consumen una enorme corriente de «irrupción» (inrush) al arrancar. Usar un relé clasificado exactamente para la corriente de funcionamiento hará que los contactos se suelden o se quemen. Selecciona siempre un relé clasificado para al menos 2-3 veces la corriente continua de la carga.

Solución de problemas

  • Síntoma: El relé castañetea o zumba rápidamente en lugar de enclavarse limpiamente.
  • Causa: La fuente de alimentación de 12 V es demasiado débil y el voltaje cae bajo la gran carga de la bomba, haciendo que la bobina del relé pierda fuerza de retención, desconecte la carga, se recupere y repita el ciclo.
  • Solución: Usa una fuente de alimentación de banco con mayor capacidad de corriente o prueba con una batería.
  • Síntoma: El transistor Q1 se calienta extremadamente y falla.
  • Causa: Falta el diodo flyback, o la demanda de corriente de la bobina del relé excede la corriente máxima de colector del 2N2222.
  • Solución: Verifica que D1 esté instalado correctamente. Comprueba la resistencia de la bobina del relé; asegúrate de que consuma menos de 600 mA.
  • Síntoma: El circuito se enciende aleatoriamente sin la acción del interruptor de flotador.
  • Causa: La base de Q1 está flotando, captando interferencias electromagnéticas ambientales.
  • Solución: Asegúrate de que la resistencia pull-down R2 esté conectada de forma segura entre el nodo VB y tierra.
  • Síntoma: El LED se enciende, pero la bomba simulada (RLOAD) no funciona.
  • Causa: Conexión rota en el contacto NO del relé o una resistencia de carga quemada.
  • Solución: Comprueba el cableado entre el pin NO del relé y LOAD_SW. Verifica la resistencia de RLOAD con un multímetro.

Posibles mejoras y extensiones

  • Corte por nivel bajo de agua (Lógica de enclavamiento): Agrega un segundo interruptor de flotador y configura el relé como un circuito de enclavamiento. Esto asegura que la bomba funcione continuamente hasta que el tanque esté completamente lleno, en lugar de hacer ciclos cortos.
  • Red de retardo antirrebote: Las ondas de agua en un tanque pueden hacer que el interruptor de flotador rebote rápidamente encendiéndose y apagándose. Agrega una red de retardo RC (un condensador y una resistencia) en la base del transistor, o usa un temporizador 555, para introducir un retardo de encendido/apagado y proteger la bomba.

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é componente se utiliza para detectar el nivel de agua en este circuito?




Pregunta 3: ¿Cuál es la función del transistor NPN en el circuito?




Pregunta 4: ¿Por qué es útil el uso de un relé en este diseño?




Pregunta 5: ¿Qué sucede cuando se cierra el interruptor de flotador?




Pregunta 6: ¿En qué estado de operación entra el transistor cuando se activa para encender el relé?




Pregunta 7: ¿Qué contacto del relé se cierra cuando la bobina se energiza para accionar la bomba?




Pregunta 8: ¿Qué problema previene este circuito en entornos industriales y agrícolas?




Pregunta 9: En este caso práctico, ¿cómo se simula la bomba de CC de alta corriente?




Pregunta 10: Además de accionar la bomba, ¿qué otro elemento se activa para indicar el estado del sistema?




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:


Caso práctico: Protección contra sobretensión

Esquemático — Caso práctico: Protección contra sobretensión

Nivel: Medio – Desconectar una carga crítica utilizando un contacto de relé normalmente cerrado cuando se excede un umbral de voltaje.

Objetivo y caso de uso

En este caso práctico, construirás un circuito de protección contra sobretensión basado en hardware. Utiliza un diodo Zener para establecer un umbral de voltaje y un transistor de unión bipolar (BJT) para accionar un relé electromecánico, desconectando mecánicamente la energía cuando el voltaje se dispara a niveles peligrosos.

Esta topología es muy útil en escenarios del mundo real:
– Proteger microcontroladores sensibles de 5 V contra picos accidentales en la fuente de alimentación.
– Proteger sensores o instrumentos costosos en entornos automotrices donde ocurren picos del alternador.
– Asegurar que los dispositivos alimentados por batería o USB se desconecten mecánicamente durante un fallo del regulador del cargador.

Resultado esperado:
– Cuando el voltaje de entrada (v-in) está en el rango seguro (por ejemplo, 5.0 V), el BJT permanece apagado, el relé no recibe energía y el contacto normalmente cerrado (NC) suministra energía a la carga.
– Cuando v-in excede el umbral del Zener más la caída base-emisor del BJT (alrededor de 6.3 V), el Zener conduce.
– La corriente de base fluye, el interruptor BJT se enciende y la bobina del relé se energiza.
– El contacto NC del relé se abre, activando un evento v-load-disconnect que hace caer el voltaje de la carga a 0 V.
– Público objetivo y nivel: Estudiantes de electrónica de nivel intermedio que exploran umbrales de voltaje analógicos y conmutación electromecánica.

Materiales

  • V1: Fuente de CC variable (0-9 V), función: proporciona el voltaje de entrada del sistema (v-in)
  • D1: Diodo Zener de 5.6 V (ej. 1N4734 A), función: establece la referencia del umbral de sobretensión
  • R1: Resistencia de 1 kΩ, función: limitación de corriente de base para el BJT
  • R2: Resistencia de 10 kΩ, función: pull-down de base para asegurar que el BJT se apague limpiamente
  • Q1: Transistor NPN 2N3904, función: interruptor controlador del relé
  • D2: Diodo 1N4148 o 1N4007, función: protección flyback (diodo volante) para la bobina del relé
  • K1: Relé SPDT de 5 V, función: desconecta la carga utilizando su contacto normalmente cerrado (NC)
  • R_LOAD: Resistencia de 100 Ω, función: carga crítica simulada

Guía de conexionado

  • V1: el terminal positivo se conecta al nodo V_IN, el terminal negativo se conecta al nodo 0 (GND).
  • D1: el cátodo se conecta al nodo V_IN, el ánodo se conecta al nodo V_ZENER.
  • R1: se conecta entre el nodo V_ZENER y el nodo BASE.
  • R2: se conecta entre el nodo BASE y el nodo 0.
  • Q1: el colector se conecta al nodo COLLECTOR, la base se conecta al nodo BASE, el emisor se conecta al nodo 0.
  • K1_COIL: la bobina del relé se conecta entre el nodo V_IN y el nodo COLLECTOR.
  • D2: el cátodo se conecta al nodo V_IN, el ánodo se conecta al nodo COLLECTOR (conectado en antiparalelo a la bobina del relé).
  • K1_COM: el contacto común del relé se conecta al nodo V_IN.
  • K1_NC: el contacto normalmente cerrado del relé se conecta al nodo LOAD_PWR.
  • R_LOAD: se conecta entre el nodo LOAD_PWR y el nodo 0.

Diagrama de bloques conceptual

Conceptual block diagram — Overvoltage Protection
Lectura rápida: entradas → bloque principal → salida (actuador o medida). Resume el esquemático ASCII de la siguiente sección.

Esquemático

POWER SOURCE:
[ V1: 0-9 V DC ] --(V_IN)--> System Power
[ V1: Negative ] ---------> GND

1. OVERVOLTAGE SENSING & CONTROL PATH:
V_IN --> [ D1: 5.6 V Zener ] --(V_ZENER)--> [ R1: 1 kΩ ] --(BASE)--> [ Q1:Base ]
                                                             |
                                                        [ R2: 10 kΩ ]
                                                             |
                                                            GND

2. RELAY COIL & DRIVER PATH:
V_IN --> [ K1_COIL || D2: Flyback(Rev) ] --(COLLECTOR)--> [ Q1:Collector ]
                       |                                        |
                (Magnetic Link)                            [ Q1:Emitter ]
                       |                                        |
                       v                                       GND

3. PROTECTED LOAD PATH:
V_IN --> [ K1_COM ] --(Normally Closed)--> [ K1_NC ] --(LOAD_PWR)--> [ R_LOAD: 100 Ω ] --> GND
Esquema Eléctrico

Diagrama eléctrico

Diagrama eléctrico del caso: Protección contra sobretensión
Generado desde la netlist SPICE validada del caso.

🔒 Este diagrama eléctrico es premium. Con el pase de 7 días o la suscripción mensual podrás desbloquear el material didáctico completo y el pack PDF listo para imprimir.🔓 Ver planes de acceso premium

Mediciones y pruebas

  1. Ajusta la fuente de alimentación variable V1 a exactamente 5.0 V.
  2. Mide v-in con respecto a tierra. Verifica que sea 5.0 V.
  3. Mide el voltaje a través de la carga (de LOAD_PWR a 0). Debería indicar 5.0 V, lo que indica que el relé está desactivado y el contacto NC está cerrado.
  4. Aumenta lentamente el voltaje de V1. Monitorea v-zener (el voltaje en el ánodo de D1). Permanecerá cerca de 0 V hasta que v-in cruce el umbral de ruptura de ~5.6 V del diodo Zener.
  5. Sube V1 hasta 6.5 V. Observa que v-zener aumenta, impulsando corriente hacia la base de Q1.
  6. Verifica el evento v-load-disconnect: escucha el clic del relé. Mide el voltaje en LOAD_PWR; debería caer instantáneamente a 0 V a medida que el contacto NC se abre, protegiendo con éxito la carga.

Netlist SPICE y simulación

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

* Practical case: Overvoltage protection
.width out=256

* Input Voltage Source (Sweeps from 0V to normal 5V, then overvoltage 9V, then back)
V1 V_IN 0 PWL(0 0 1m 5 4m 5 5m 9 6m 9 7m 5 9m 5 10m 0)

* Zener Diode for threshold detection
D1 V_IN V_ZENER DZENER

* Base resistors for Q1
R1 V_ZENER BASE 1k
R2 BASE 0 10k

* Relay Driver Transistor
Q1 COLLECTOR BASE 0 2N3904

* Relay Coil (Modeled as series inductor and resistor)
L_K1_COIL V_IN K1_COIL_INT 10m
R_K1_COIL K1_COIL_INT COLLECTOR 100

* ... (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: Overvoltage protection
.width out=256

* Input Voltage Source (Sweeps from 0V to normal 5V, then overvoltage 9V, then back)
V1 V_IN 0 PWL(0 0 1m 5 4m 5 5m 9 6m 9 7m 5 9m 5 10m 0)

* Zener Diode for threshold detection
D1 V_IN V_ZENER DZENER

* Base resistors for Q1
R1 V_ZENER BASE 1k
R2 BASE 0 10k

* Relay Driver Transistor
Q1 COLLECTOR BASE 0 2N3904

* Relay Coil (Modeled as series inductor and resistor)
L_K1_COIL V_IN K1_COIL_INT 10m
R_K1_COIL K1_COIL_INT COLLECTOR 100

* Flyback Diode
D2 V_IN COLLECTOR D4148

* Relay Normally Closed (NC) Contact
* Modeled as a voltage-controlled switch controlled by the coil voltage (V_IN - COLLECTOR)
* When Q1 is OFF, coil voltage is 0V -> Switch is CLOSED (roff = 0.1)
* When Q1 is ON, coil voltage is > 6V -> Switch is OPEN (ron = 100meg)
S1 V_IN LOAD_PWR V_IN COLLECTOR RelayNC

* Critical Load
R_LOAD LOAD_PWR 0 100

* Models
.model DZENER D(IS=1e-15 RS=10 N=1 BV=5.6 IBV=5m)
.model D4148 D(IS=1e-14 RS=0.1 N=1)
.model 2N3904 NPN(IS=1E-14 VAF=100 BF=300 IKF=0.4 XTB=1.5 BR=4 CJC=4E-12 CJE=8E-12 RB=20 RC=0.1 RE=0.1 TR=250E-9 TF=350E-12 ITF=1 VTF=2 XTF=3)
.model RelayNC SW(vt=3 vh=0.5 ron=100meg roff=0.1)

* Simulation Directives
.print tran V(V_IN) V(LOAD_PWR) V(BASE) V(COLLECTOR) V(V_ZENER) I(L_K1_COIL)
.tran 10u 10m
.op
.end

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)
Análisis: The simulation sweeps the input voltage from 0V to 5V, then up to 9V (overvoltage), and back down. The ngspice results show that when V_IN reaches 9V, the Zener diode conducts, raising V(BASE) to ~1.07V, which turns on Q1. This energizes the relay coil (current reaches ~9mA), opening the NC contact and disconnecting the load (V(LOAD_PWR) drops or follows the switch logic).
Show raw data table (1788 rows)
Index   time            v(v_in)         v(load_pwr)     v(base)         v(collector)    v(v_zener)      l_k1_coil#branc
0	0.000000e+00	0.000000e+00	0.000000e+00	4.369907e-29	1.104363e-28	4.276684e-29	-1.10436e-30
1	1.000000e-07	5.000000e-04	4.995005e-04	2.124049e-05	1.169502e-04	2.124049e-05	3.826672e-09
2	1.128896e-07	5.644481e-04	5.638843e-04	2.436647e-05	1.341994e-04	2.436647e-05	4.380682e-09
3	1.386689e-07	6.933444e-04	6.926518e-04	3.144704e-05	1.734710e-04	3.144704e-05	5.604067e-09
4	1.902274e-07	9.511370e-04	9.501868e-04	5.084817e-05	2.848367e-04	5.084817e-05	8.658258e-09
5	2.933444e-07	1.466722e-03	1.465257e-03	1.084331e-04	6.633002e-04	1.084332e-04	1.622310e-08
6	4.910392e-07	2.455196e-03	2.452743e-03	2.404937e-04	1.923047e-03	2.404937e-04	2.937980e-08
7	6.875077e-07	3.437539e-03	3.434104e-03	3.216141e-04	3.548938e-03	3.216141e-04	3.345128e-08
8	9.631281e-07	4.815640e-03	4.810829e-03	2.723800e-04	5.450903e-03	2.723800e-04	2.308361e-08
9	1.154824e-06	5.774121e-03	5.768352e-03	1.710095e-04	6.210657e-03	1.710095e-04	1.277625e-08
10	1.305686e-06	6.528429e-03	6.521907e-03	1.116498e-04	6.566319e-03	1.116498e-04	9.181046e-09
11	1.495573e-06	7.477865e-03	7.470395e-03	1.085076e-04	7.080935e-03	1.085076e-04	1.256925e-08
12	1.736950e-06	8.684750e-03	8.676074e-03	1.904626e-04	8.232826e-03	1.904626e-04	2.277129e-08
13	2.001986e-06	1.000993e-02	9.999931e-03	2.728041e-04	1.002166e-02	2.728041e-04	2.853663e-08
14	2.256607e-06	1.128304e-02	1.127176e-02	2.568832e-04	1.166727e-02	2.568832e-04	2.342944e-08
15	2.500031e-06	1.250016e-02	1.248767e-02	1.808629e-04	1.277687e-02	1.808630e-04	1.533781e-08
16	2.702903e-06	1.351451e-02	1.350101e-02	1.375223e-04	1.345800e-02	1.375223e-04	1.307538e-08
17	2.944974e-06	1.472487e-02	1.471016e-02	1.562745e-04	1.440894e-02	1.562745e-04	1.754621e-08
18	3.189115e-06	1.594558e-02	1.592965e-02	2.174467e-04	1.574153e-02	2.174467e-04	2.384313e-08
19	3.483820e-06	1.741910e-02	1.740170e-02	2.492948e-04	1.756940e-02	2.492949e-04	2.456373e-08
20	3.789826e-06	1.894913e-02	1.893020e-02	2.050542e-04	1.918736e-02	2.050543e-04	1.855307e-08
21	4.028198e-06	2.014099e-02	2.012087e-02	1.627875e-04	2.016491e-02	1.627876e-04	1.538812e-08
22	4.364653e-06	2.182326e-02	2.180146e-02	1.717346e-04	2.161154e-02	1.717346e-04	1.849039e-08
23	4.749559e-06	2.374779e-02	2.372407e-02	2.249970e-04	2.370014e-02	2.249971e-04	2.340138e-08
... (1764 more rows) ...

Errores comunes y cómo evitarlos

  • Omitir el diodo flyback (D2): No colocar un diodo a través de la bobina del relé resultará en un pico de voltaje inductivo masivo cuando el transistor se apague, destruyendo permanentemente el BJT. Incluye siempre el diodo en antiparalelo.
  • Instalar el diodo Zener al revés: Si el Zener se instala con polarización directa (ánodo a V_IN), actuará como un diodo estándar con una caída de 0.7 V. El relé se activará casi de inmediato. Asegúrate de que el cátodo apunte hacia la entrada positiva.
  • Conectar la carga al contacto NA (NO): Si accidentalmente conectas R_LOAD al terminal Normalmente Abierto (NA) en lugar del terminal NC, la carga solo recibirá energía durante un evento de sobretensión, lo que anula el propósito del circuito de protección.

Solución de problemas

  • Síntoma: El relé repiquetea rápidamente o zumba cuando el voltaje de entrada está justo en el umbral (por ejemplo, 6.2 V).
  • Causa: El circuito carece de histéresis. Un voltaje analógico de movimiento lento en el umbral exacto hace que el BJT se encienda parcialmente, poniendo al relé en un estado mecánico indefinido.
  • Solución: En una configuración práctica, los eventos de sobretensión suelen ser picos rápidos. Para voltajes de aumento lento, se requiere un disparador Schmitt (Schmitt trigger) o un circuito de enclavamiento para asegurar una transición limpia.
  • Síntoma: La carga nunca se enciende, ni siquiera a 5.0 V.
  • Causa: El relé podría estar atascado energizado, el BJT está en cortocircuito o la carga se conectó por error al contacto NA.
  • Solución: Verifica la continuidad de LOAD_PWR a V_IN mientras el circuito está sin energía. Reemplaza Q1 si marca un cortocircuito directo de colector a emisor.
  • Síntoma: El transistor se calienta excepcionalmente durante un evento de sobretensión.
  • Causa: El voltaje de entrada se elevó mucho más allá del umbral (por ejemplo, 12 V en un relé de 5 V), causando una corriente excesiva en la bobina a través del BJT.
  • Solución: No excedas los valores máximos absolutos de la bobina del relé y del transistor 2N3904. Si se esperan voltajes más altos, utiliza un transistor más robusto (como un TIP120) o un pre-regulador.

Posibles mejoras y extensiones

  • Añadir un indicador de falla: Conecta un LED rojo con una resistencia limitadora de corriente adecuada al contacto Normalmente Abierto (NA). Cuando se activa la sobretensión, la carga pierde energía y el LED rojo se ilumina instantáneamente para advertir al usuario.
  • Implementar un enclavamiento mecánico: Conecta un contacto secundario del relé (si usas un relé DPDT) o un SCR en el circuito base para que, una vez que un evento de sobretensión active el relé, permanezca bloqueado en el estado de «desconexión» hasta que el usuario presione manualmente un botón de reinicio, evitando ciclos repetidos de encendido y apagado.

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é componente se utiliza para establecer el umbral de voltaje en el circuito?




Pregunta 3: ¿Qué función cumple el transistor de unión bipolar (BJT) en este diseño?




Pregunta 4: ¿Qué sucede cuando el voltaje de entrada está en un rango seguro (por ejemplo, 5.0 V)?




Pregunta 5: ¿A través de qué contacto del relé se suministra energía a la carga en condiciones normales?




Pregunta 6: ¿Qué condición debe cumplirse para que el BJT se encienda y active el relé?




Pregunta 7: ¿Cuál de los siguientes es un caso de uso real mencionado para este circuito?




Pregunta 8: ¿Qué ocurre mecánicamente con la carga cuando el voltaje se dispara a niveles peligrosos?




Pregunta 9: ¿Por qué es útil este circuito en entornos automotrices?




Pregunta 10: ¿Qué estado tiene el relé cuando el circuito detecta una sobretensión?




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:


Caso práctico: Lógica AND y OR usando relés

Prototipo de Lógica AND y OR usando relés (Maker Style)

Nivel: Medio – Construye puertas lógicas básicas conectando los contactos de múltiples relés en serie y paralelo.

Objetivo y caso de uso

  • Qué construirás: Un circuito que utiliza dos relés electromecánicos DPDT (dos polos, dos tiros) para demostrar simultáneamente operaciones lógicas booleanas básicas (puertas AND y OR).
  • Por qué es útil:
    • Forma la base histórica de la automatización industrial y la programación de lógica de escalera (ladder).
    • Demuestra cómo manejar la lógica en sistemas de alto voltaje o alta corriente donde los CI de silicio estándar no son adecuados.
    • Proporciona aislamiento eléctrico completo entre las entradas de control (bobinas) y las salidas lógicas (contactos).
    • Ilustra los principios fundamentales de los enclavamientos a prueba de fallos utilizados en maquinaria pesada y circuitos de seguridad.
  • Resultado esperado:
    • La salida AND (LED verde) solo se iluminará cuando ambas bobinas de los relés estén energizadas (contactos en serie).
    • La salida OR (LED rojo) se iluminará cuando cualquiera de las bobinas de los relés esté energizada (contactos en paralelo).
    • Medición exitosa de los voltajes de control confirmando la activación de rutas lógicas específicas.
  • Público objetivo y nivel: Estudiantes de electrónica de nivel intermedio que exploran sistemas de control automatizado y conmutación electromecánica.

Materiales

  • V1: Fuente de 5 V CC, función: alimentación para bobinas y lógica
  • SW1: Interruptor SPST, función: control de la Entrada A
  • SW2: Interruptor SPST, función: control de la Entrada B
  • K1: Relé DPDT de 5 V, función: elemento de puerta lógica A
  • K2: Relé DPDT de 5 V, función: elemento de puerta lógica B
  • D1: LED verde, función: indicador de salida lógica AND
  • D2: LED rojo, función: indicador de salida lógica OR
  • D3: Diodo 1N4148, función: protección flyback para K1
  • D4: Diodo 1N4148, función: protección flyback para K2
  • R1: Resistencia de 330 Ω, función: limitación de corriente para D1
  • R2: Resistencia de 330 Ω, función: limitación de corriente para D2

Guía de conexionado

  • V1 se conecta entre VCC y 0.
  • SW1 se conecta entre VCC y el nodo VA.
  • SW2 se conecta entre VCC y el nodo VB.
  • La bobina de K1 se conecta entre el nodo VA y 0.
  • La bobina de K2 se conecta entre el nodo VB y 0.
  • El cátodo de D3 se conecta al nodo VA, el ánodo se conecta a 0 (en antiparalelo a la bobina de K1).
  • El cátodo de D4 se conecta al nodo VB, el ánodo se conecta a 0 (en antiparalelo a la bobina de K2).
  • Lógica AND (Conexionado en serie – Polo 1):
    • El contacto común del Polo 1 de K1 se conecta a VCC.
    • El contacto normalmente abierto (NO) del Polo 1 de K1 se conecta al nodo AND_MID.
    • El contacto común del Polo 1 de K2 se conecta al nodo AND_MID.
    • El contacto normalmente abierto (NO) del Polo 1 de K2 se conecta al nodo OUT_AND.
  • Lógica OR (Conexionado en paralelo – Polo 2):
    • El contacto común del Polo 2 de K1 se conecta a VCC.
    • El contacto normalmente abierto (NO) del Polo 2 de K1 se conecta al nodo OUT_OR.
    • El contacto común del Polo 2 de K2 se conecta a VCC.
    • El contacto normalmente abierto (NO) del Polo 2 de K2 se conecta al nodo OUT_OR.
  • Salidas:
    • R1 se conecta entre OUT_AND y el nodo D1_ANODE.
    • D1 se conecta entre D1_ANODE y 0 (cátodo a tierra).
    • R2 se conecta entre OUT_OR y el nodo D2_ANODE.
    • D2 se conecta entre D2_ANODE y 0 (cátodo a tierra).

Diagrama de bloques conceptual

Conceptual block diagram — Relay AND/OR Logic
Lectura rápida: entradas → bloque principal → salida (actuador o medida). Resume el esquemático ASCII de la siguiente sección.

Esquemático

[ CONTROL SECTION: RELAY COILS ]

VCC --> [ SW1 (Input A) ] --(VA)--> [ K1 Coil || D3(Rev) ] --> GND
                                          |
                                   (Magnetic Link)
                                          v
                                    (To K1 Poles)

VCC --> [ SW2 (Input B) ] --(VB)--> [ K2 Coil || D4(Rev) ] --> GND
                                          |
                                   (Magnetic Link)
                                          v
                                    (To K2 Poles)


[ AND LOGIC SECTION: SERIES WIRING (POLE 1) ]

VCC --> [ K1 Pole 1 (NO) ] --(AND_MID)--> [ K2 Pole 1 (NO) ] --(OUT_AND)--> [ R1 ] --(D1_ANODE)--> [ D1 (Green LED) ] --> GND


[ OR LOGIC SECTION: PARALLEL WIRING (POLE 2) ]

VCC --> [ K1 Pole 2 (NO) ] --(OUT_OR)--+
                                       |--> [ R2 ] --(D2_ANODE)--> [ D2 (Red LED) ] --> GND
VCC --> [ K2 Pole 2 (NO) ] --(OUT_OR)--+
Esquema Eléctrico

Diagrama eléctrico

Diagrama eléctrico del caso: Lógica AND y OR usando relés
Generado desde la netlist SPICE validada del caso.

🔒 Este diagrama eléctrico es premium. Con el pase de 7 días o la suscripción mensual podrás desbloquear el material didáctico completo y el pack PDF listo para imprimir.🔓 Ver planes de acceso premium

Tabla de verdad

Interruptor A (VA) Interruptor B (VB) Estado de K1 Estado de K2 Salida AND (LED verde) Salida OR (LED rojo)
OFF (0 V) OFF (0 V) Reposo Reposo OFF (0 V) OFF (0 V)
OFF (0 V) ON (5 V) Reposo Energizado OFF (0 V) ON (~5 V)
ON (5 V) OFF (0 V) Energizado Reposo OFF (0 V) ON (~5 V)
ON (5 V) ON (5 V) Energizado

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: ¿Qué tipo de relés se utilizan en este circuito para demostrar las operaciones lógicas?




Pregunta 2: ¿Qué operaciones lógicas booleanas básicas demuestra este circuito simultáneamente?




Pregunta 3: ¿Cómo se deben conectar los contactos de los relés para formar una puerta lógica AND?




Pregunta 4: ¿Cómo se deben conectar los contactos de los relés para formar una puerta lógica OR?




Pregunta 5: ¿Qué color de LED se utiliza para indicar la salida de la puerta AND según el resultado esperado?




Pregunta 6: ¿En qué situación se iluminará el LED rojo (salida OR)?




Pregunta 7: ¿Por qué es útil este tipo de lógica con relés frente a los circuitos integrados (CI) de silicio estándar?




Pregunta 8: ¿Qué tipo de aislamiento proporciona el uso de relés entre las entradas de control (bobinas) y las salidas lógicas (contactos)?




Pregunta 9: ¿De qué tipo de programación industrial forma la base histórica este circuito?




Pregunta 10: ¿Qué principio fundamental de seguridad en maquinaria pesada ilustra este circuito?




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:

Netlist SPICE y simulación

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

* Practical case: AND and OR logic using relays
.width out=256

* Power Supply
V1 VCC 0 DC 5

* Input A Control (SW1)
* Modeled as a voltage-controlled switch toggled by a fast pulse source to simulate user input
S_SW1 VCC VA ctrl_A 0 switch_mod
V_ctrl_A ctrl_A 0 PULSE(0 5 0 1u 1u 100u 200u)

* Input B Control (SW2)
* Modeled as a voltage-controlled switch toggled by a fast pulse source
S_SW2 VCC VB ctrl_B 0 switch_mod
V_ctrl_B ctrl_B 0 PULSE(0 5 0 1u 1u 200u 400u)

* Relay K1 Coil and Flyback Diode
* Coil modeled as an RL series circuit
L_K1 VA K1_mid 1m
R_K1 K1_mid 0 100
* ... (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: AND and OR logic using relays
.width out=256

* Power Supply
V1 VCC 0 DC 5

* Input A Control (SW1)
* Modeled as a voltage-controlled switch toggled by a fast pulse source to simulate user input
S_SW1 VCC VA ctrl_A 0 switch_mod
V_ctrl_A ctrl_A 0 PULSE(0 5 0 1u 1u 100u 200u)

* Input B Control (SW2)
* Modeled as a voltage-controlled switch toggled by a fast pulse source
S_SW2 VCC VB ctrl_B 0 switch_mod
V_ctrl_B ctrl_B 0 PULSE(0 5 0 1u 1u 200u 400u)

* Relay K1 Coil and Flyback Diode
* Coil modeled as an RL series circuit
L_K1 VA K1_mid 1m
R_K1 K1_mid 0 100
D3 0 VA 1N4148

* Relay K2 Coil and Flyback Diode
L_K2 VB K2_mid 1m
R_K2 K2_mid 0 100
D4 0 VB 1N4148

* AND Logic (Series Wiring - Pole 1)
S_K1_P1 VCC AND_MID VA 0 relay_switch
S_K2_P1 AND_MID OUT_AND VB 0 relay_switch
* Anti-floating leak resistor for the midpoint of the series connection
R_leak AND_MID 0 1G 

* OR Logic (Parallel Wiring - Pole 2)
S_K1_P2 VCC OUT_OR VA 0 relay_switch
S_K2_P2 VCC OUT_OR VB 0 relay_switch

* Outputs
R1 OUT_AND D1_ANODE 330
D1 D1_ANODE 0 DLED_Green

R2 OUT_OR D2_ANODE 330
D2 D2_ANODE 0 DLED_Red

* Models
.model switch_mod SW(vt=2.5 vh=0.5 ron=0.1 roff=100MEG)
.model relay_switch SW(vt=2.5 vh=0.5 ron=0.1 roff=100MEG)
.model 1N4148 D(IS=2.682n N=1.836 RS=0.5623 BV=100 IBV=100p CJO=4p M=0.333 VJ=0.5 TT=11.54n)
.model DLED_Green D(IS=1e-20 N=2.2 RS=5)
.model DLED_Red D(IS=1e-15 N=2.0 RS=5)

* Analysis
.tran 1u 500u
.print tran V(VA) V(VB) V(OUT_AND) V(OUT_OR) V(AND_MID) I(L_K1)
.op
.end

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)
Análisis: The simulation results match the expected truth table for AND and OR logic. When both inputs are 5V, both outputs are near 5V. When only one input is 5V, only the OR output goes to 5V. The OFF state voltages are non-zero (around 1.6V and 0.9V) due to the finite off-resistance of the switch models, but these are below the LED forward voltages.
Show raw data table (5166 rows)
Index   time            v(va)           v(vb)           v(out_and)      v(out_or)       v(and_mid)      l_k1#branch
0	0.000000e+00	4.999967e-06	4.999967e-06	1.597015e+00	9.421253e-01	3.141436e+00	4.999967e-08
1	1.000000e-08	4.999967e-06	4.999967e-06	1.597015e+00	9.421253e-01	3.141436e+00	4.999967e-08
2	2.000000e-08	4.999967e-06	4.999967e-06	1.597015e+00	9.421253e-01	3.141436e+00	4.999967e-08
3	4.000000e-08	4.999967e-06	4.999967e-06	1.597015e+00	9.421253e-01	3.141436e+00	4.999967e-08
4	8.000000e-08	4.999967e-06	4.999967e-06	1.597015e+00	9.421253e-01	3.141436e+00	4.999967e-08
5	1.600000e-07	4.999967e-06	4.999967e-06	1.597015e+00	9.421253e-01	3.141436e+00	4.999967e-08
6	3.200000e-07	4.999967e-06	4.999967e-06	1.597015e+00	9.421253e-01	3.141436e+00	4.999967e-08
7	3.750000e-07	4.999967e-06	4.999967e-06	1.597015e+00	9.421253e-01	3.141436e+00	4.999967e-08
8	4.712500e-07	4.999967e-06	4.999967e-06	1.597015e+00	9.421253e-01	3.141436e+00	4.999967e-08
9	4.978906e-07	4.999967e-06	4.999967e-06	1.597015e+00	9.421253e-01	3.141436e+00	4.999967e-08
10	5.445117e-07	4.999967e-06	4.999967e-06	1.597015e+00	9.421253e-01	3.141436e+00	4.999967e-08
11	5.574158e-07	4.999967e-06	4.999967e-06	1.597015e+00	9.421253e-01	3.141436e+00	4.999967e-08
12	5.799979e-07	4.999967e-06	4.999967e-06	1.597015e+00	9.421253e-01	3.141436e+00	4.999967e-08
13	6.019875e-07	4.999887e+00	4.999887e+00	4.998416e+00	4.999485e+00	4.999208e+00	5.496234e-05
14	6.174611e-07	5.000094e+00	5.000094e+00	4.998416e+00	4.999485e+00	4.999208e+00	1.321856e-04
15	6.317917e-07	4.999872e+00	4.999872e+00	4.998416e+00	4.999485e+00	4.999208e+00	2.035976e-04
16	6.498539e-07	5.000078e+00	5.000078e+00	4.998416e+00	4.999485e+00	4.999208e+00	2.934595e-04
17	6.859784e-07	4.999845e+00	4.999845e+00	4.998416e+00	4.999485e+00	4.999208e+00	4.726966e-04
18	7.582273e-07	5.000025e+00	5.000025e+00	4.998416e+00	4.999485e+00	4.999208e+00	8.292335e-04
19	9.027252e-07	4.999739e+00	4.999739e+00	4.998416e+00	4.999485e+00	4.999208e+00	1.534627e-03
20	1.000000e-06	4.999907e+00	4.999907e+00	4.998416e+00	4.999485e+00	4.999208e+00	2.003774e-03
21	1.028900e-06	4.999786e+00	4.999786e+00	4.998416e+00	4.999485e+00	4.999208e+00	2.142075e-03
22	1.086699e-06	4.999758e+00	4.999758e+00	4.998416e+00	4.999485e+00	4.999208e+00	2.417880e-03
23	1.202297e-06	4.999704e+00	4.999704e+00	4.998416e+00	4.999485e+00	4.999208e+00	2.964729e-03
... (5142 more rows) ...


Caso práctico: Conmutación automática de energía

Prototipo de Conmutación automática de energía (Maker Style)

Nivel: Medio – Implementar un relé SPDT para alternar automáticamente entre una fuente de alimentación principal y una batería de respaldo.

Objetivo y caso de uso

En este caso práctico, construirás un circuito de gestión de energía utilizando un relé de un polo y dos tiros (SPDT, por sus siglas en inglés). El circuito conmutará automáticamente una carga conectada a una batería de respaldo siempre que falle la fuente de alimentación principal.

Esta topología de conmutación automatizada es muy útil en varias aplicaciones del mundo real:
* Sistemas de alimentación ininterrumpida (SAI/UPS) para enrutadores y equipos de red críticos.
* Sistemas de alarma y seguridad que requieren funcionamiento continuo durante cortes de energía de la red.
* Dispositivos de monitorización médica que deben permanecer funcionales durante el transporte de pacientes.
* Sistemas de energía solar que cambian automáticamente a la energía de la batería después del atardecer.

Resultado esperado:
* Cuando la fuente principal (V_MAIN) está activa, la bobina del relé se energiza y la carga se conecta al contacto Normalmente Abierto (NO) alimentado por la fuente principal.
* Cuando la fuente principal falla (cae a 0 V), el relé se desenergiza, transfiriendo sin problemas la carga al contacto Normalmente Cerrado (NC) alimentado por la batería de respaldo.
* El voltaje de la carga (V_LOAD_OUT) permanece continuo, salvo por un pequeño retraso de conmutación mecánica.
* Un indicador LED visual informa con éxito la presencia de la fuente de alimentación principal.

Público objetivo: Aficionados y estudiantes de electrónica de nivel intermedio que aprenden sobre relés electromecánicos y redundancia de energía.

Materiales

  • V1: Fuente de CC de 12 V, función: fuente de alimentación principal
  • V2: Fuente de CC de 9 V, función: fuente de batería de respaldo
  • K1: Relé SPDT de 12 V, función: interruptor automático de energía
  • D1: Diodo 1N4007, función: diodo flyback para proteger contra picos de voltaje de la bobina del relé
  • D2: LED rojo, función: indicador de alimentación principal
  • R1: Resistencia de 1 kΩ, función: limitación de corriente del LED
  • R2: Resistencia de 100 Ω, función: carga simulada del sistema

Guía de conexionado

  • V1: Conecta el terminal positivo a V_MAIN y el terminal negativo a 0 (GND).
  • V2: Conecta el terminal positivo a V_BACKUP y el terminal negativo a 0 (GND).
  • K1 (Bobina): Conecta un lado a V_MAIN y el otro lado a 0 (GND).
  • D1: Conecta en paralelo a la bobina K1. Conecta el cátodo a V_MAIN y el ánodo a 0 (GND).
  • K1 (Contacto NO): Conecta el terminal Normalmente Abierto a V_MAIN.
  • K1 (Contacto NC): Conecta el terminal Normalmente Cerrado a V_BACKUP.
  • K1 (Contacto COM): Conecta el terminal Común a V_LOAD_OUT.
  • R2: Conecta entre V_LOAD_OUT y 0 (GND).
  • R1: Conecta entre V_MAIN y NODE_LED.
  • D2: Conecta el ánodo a NODE_LED y el cátodo a 0 (GND).

Diagrama de bloques conceptual

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

Esquemático

[ V1: 12 V Main ] --(V_MAIN)--> [ K1 Coil || D1 (Rev) ] --> GND
                                       |
                                 (Magnetic Link)
                                       v
[ V1: 12 V Main ] --(V_MAIN)--> [ K1: NO Contact ] --+
                                                    |
                                                  (COM)--> [ V_LOAD_OUT ] --> [ R2: 100 Ω Load ] --> GND
                                                    |
[ V2: 9 V Backup ] -(V_BACKUP)-> [ K1: NC Contact ] -+

[ V1: 12 V Main ] --(V_MAIN)--> [ R1: 1 kΩ ] --(NODE_LED)--> [ D2: Red LED ] --> GND
Esquema Eléctrico

Diagrama eléctrico

Diagrama eléctrico del caso: Conmutación automática de energía
Generado desde la netlist SPICE validada del caso.

🔒 Este diagrama eléctrico es premium. Con el pase de 7 días o la suscripción mensual podrás desbloquear el material didáctico completo y el pack PDF listo para imprimir.🔓 Ver planes de acceso premium

Mediciones y pruebas

  1. Conecta y activa tanto V1 (12 V) como V2 (9 V).
  2. Mide el voltaje en V_MAIN y V_BACKUP con un multímetro para verificar que ambas fuentes sean estables.
  3. Mide el voltaje en V_LOAD_OUT. Debería indicar aproximadamente 12 V. El relé debería emitir un «clic» audible al encenderse, y el LED indicador (D2) debería estar brillantemente iluminado.
  4. Desconecta V1 para simular un corte de energía (V_MAIN cae a 0 V).
  5. Mide el voltaje en V_LOAD_OUT nuevamente. Ahora debería indicar aproximadamente 9 V, confirmando que la carga se ha transferido exitosamente a la batería de respaldo. El LED debería apagarse.
  6. Vuelve a conectar V1. Observa el relé haciendo clic nuevamente a medida que V_LOAD_OUT vuelve a 12 V.

Netlist SPICE y simulación

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

* Automatic power switching
.width out=256

* Power Sources
V1 V_MAIN 0 PULSE(12 0 200u 1u 1u 200u 500u)
V2 V_BACKUP 0 DC 9

* K1 Relay Coil (modeled as series inductor and resistor)
L_K1 V_MAIN K1_COIL_INT 1m
R_K1 K1_COIL_INT 0 400

* K1 Relay Contacts (modeled as voltage-controlled switches)
* Normally Open (NO) contact between V_MAIN and V_LOAD_OUT, controlled by V_MAIN
S_K1_NO V_MAIN V_LOAD_OUT V_MAIN 0 Relay_NO
* Normally Closed (NC) contact between V_BACKUP and V_LOAD_OUT, controlled by inverted V_MAIN
S_K1_NC V_BACKUP V_LOAD_OUT 0 V_MAIN Relay_NC

* D1 Flyback Diode (Anode to 0, Cathode to V_MAIN)
D1 0 V_MAIN 1N4007

* ... (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.

* Automatic power switching
.width out=256

* Power Sources
V1 V_MAIN 0 PULSE(12 0 200u 1u 1u 200u 500u)
V2 V_BACKUP 0 DC 9

* K1 Relay Coil (modeled as series inductor and resistor)
L_K1 V_MAIN K1_COIL_INT 1m
R_K1 K1_COIL_INT 0 400

* K1 Relay Contacts (modeled as voltage-controlled switches)
* Normally Open (NO) contact between V_MAIN and V_LOAD_OUT, controlled by V_MAIN
S_K1_NO V_MAIN V_LOAD_OUT V_MAIN 0 Relay_NO
* Normally Closed (NC) contact between V_BACKUP and V_LOAD_OUT, controlled by inverted V_MAIN
S_K1_NC V_BACKUP V_LOAD_OUT 0 V_MAIN Relay_NC

* D1 Flyback Diode (Anode to 0, Cathode to V_MAIN)
D1 0 V_MAIN 1N4007

* Main Power Indicator
R1 V_MAIN NODE_LED 1k
D2 NODE_LED 0 DLED

* Simulated System Load
R2 V_LOAD_OUT 0 100

* Component Models
.model 1N4007 D(IS=7.02767n RS=0.0341512 N=1.80803 EG=1.05743 XTI=5 BV=1000 IBV=5e-08 CJO=1e-11 VJ=0.7 M=0.5 FC=0.5 TT=1e-07)
.model DLED D(IS=1e-15 RS=10 N=2.0)
.model Relay_NO SW(vt=6 vh=0.5 ron=0.05 roff=10Meg)
.model Relay_NC SW(vt=-6 vh=0.5 ron=0.05 roff=10Meg)

* Analysis Directives
.op
.tran 1u 500u
.print tran V(V_MAIN) V(V_LOAD_OUT) V(V_BACKUP) V(NODE_LED) I(L_K1)

.end

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)
Análisis: The simulation shows V_MAIN starting at 12V, during which V_LOAD_OUT is approximately 12V. At t=200us, V_MAIN drops to 0V, and V_LOAD_OUT seamlessly switches to the 9V backup supply. When V_MAIN recovers at t=400us, V_LOAD_OUT returns to 12V.
Show raw data table (557 rows)
Index   time            v(v_main)       v(v_load_out)   v(v_backup)     v(node_led)     l_k1#branch
0	0.000000e+00	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
1	1.000000e-08	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
2	2.000000e-08	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
3	4.000000e-08	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
4	8.000000e-08	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
5	1.600000e-07	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
6	3.200000e-07	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
7	6.400000e-07	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
8	1.280000e-06	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
9	2.280000e-06	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
10	3.280000e-06	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
11	4.280000e-06	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
12	5.280000e-06	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
13	6.280000e-06	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
14	7.280000e-06	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
15	8.280000e-06	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
16	9.280000e-06	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
17	1.028000e-05	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
18	1.128000e-05	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
19	1.228000e-05	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
20	1.328000e-05	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
21	1.428000e-05	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
22	1.528000e-05	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
23	1.628000e-05	1.200000e+01	1.199400e+01	9.000000e+00	1.653685e+00	3.000000e-02
... (533 more rows) ...

Errores comunes y cómo evitarlos

  • Desajuste del voltaje de la bobina del relé: Usar un relé de 5 V en una línea de 12 V hará que la bobina se sobrecaliente y falle rápidamente. Asegúrate siempre de que el voltaje nominal de la bobina del relé coincida exactamente con el voltaje de la fuente principal.
  • Omitir el diodo flyback: No instalar el diodo polarizado en inversa a través de la bobina del relé puede resultar en picos de alto voltaje cuando la alimentación principal se desconecta abruptamente, lo que podría dañar los componentes en paralelo en el bus de alimentación principal.
  • Invertir los contactos NO y NC: Conectar la batería de respaldo al contacto NO y la fuente principal al contacto NC resultará en un sistema inoperativo cuando falle la alimentación principal. Verifica el pin-out del relé antes de soldar o alimentar el circuito.

Solución de problemas

  • Síntoma: La carga pierde energía por completo cuando cae la fuente principal.
    • Causa: La batería de respaldo está agotada o conectada al terminal Normalmente Abierto (NO) en lugar del terminal Normalmente Cerrado (NC).
    • Solución: Mide el voltaje de la batería de forma independiente y luego verifica su conexión al terminal NC del relé.
  • Síntoma: El relé traquetea o zumba continuamente en lugar de conmutar limpiamente.
    • Causa: La fuente de alimentación principal no puede proporcionar suficiente corriente tanto para la bobina del relé como para la carga, lo que hace que el voltaje caiga repetidamente por debajo del umbral de retención del relé.
    • Solución: Actualiza la fuente de alimentación principal a una de mayor capacidad de corriente, o añade un condensador de suavizado grande en la línea V_MAIN.
  • Síntoma: El indicador LED no se enciende, pero la conmutación funciona.
    • Causa: El LED está insertado con polaridad inversa, o la resistencia limitadora de corriente está desconectada.
    • Solución: Verifica que el lado plano (cátodo) del LED esté conectado a tierra (GND).

Posibles mejoras y extensiones

  • Añade un condensador electrolítico grande (por ejemplo, 1000 µF) en paralelo con la carga (R2) para suavizar la breve interrupción de energía (caída de tensión o microcorte) causada por el tiempo de conmutación mecánica de los contactos del relé.
  • Reemplaza el relé mecánico por un circuito de compuerta OR de diodos de estado sólido (usando diodos Schottky) para una conmutación completamente continua y sin retrasos, sin partes móviles.

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 texto?




Pregunta 2: ¿Qué significan las siglas SPDT en el contexto del relé mencionado?




Pregunta 3: Según el texto, ¿cuál de las siguientes es una aplicación real para este circuito?




Pregunta 4: ¿Qué sucede con la bobina del relé cuando la fuente principal (V_MAIN) está activa?




Pregunta 5: ¿A qué contacto del relé está conectada la batería de respaldo para alimentar la carga cuando falla la fuente principal?




Pregunta 6: ¿A qué contacto del relé está conectada la batería de respaldo para alimentar la carga cuando falla la fuente principal?




Pregunta 7: ¿A qué contacto del relé está conectada la batería de respaldo para alimentar la carga cuando falla la fuente principal?




Pregunta 8: ¿A qué contacto del relé está conectada la batería de respaldo para alimentar la carga cuando falla la fuente principal?




Pregunta 9: ¿A qué contacto del relé está conectada la batería de respaldo para alimentar la carga cuando falla la fuente principal?




Pregunta 10: ¿A qué contacto del relé está conectada la batería de respaldo para alimentar la carga cuando falla la fuente principal?




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:


Caso práctico: Control de un motor CC con un transistor

Prototipo de Control de un motor CC con un transistor (Maker Style)

Nivel: Básico – Aprende a usar un transistor NPN como interruptor para controlar un motor CC, incluyendo el uso de un diodo flyback.

Objetivo y caso de uso

En este caso práctico, construirás un circuito de conmutación de lado bajo (low-side switch) utilizando un transistor NPN para controlar de forma segura un motor CC de alta corriente a partir de una señal de control de baja potencia.

Esta topología es muy útil en el mundo real por varias razones:
* Conectar microcontroladores de bajo voltaje (como un Arduino o Raspberry Pi) con cargas de mayor potencia que requieren fuentes de alimentación externas.
* Automatizar pequeños ventiladores de refrigeración en sistemas de control de temperatura.
* Construir sistemas de tracción básicos para robótica de aficionados.
* Proteger la delicada lógica de control de los dañinos picos de voltaje generados por cargas inductivas.

Resultado esperado:
* Aplicar una señal de control de 5 V al circuito de base saturará el transistor.
* El motor CC girará mientras el transistor puentea su conexión a tierra.
* El diodo flyback disipará de forma segura el retroceso inductivo del motor cuando se apague la señal de control.
* Voltaje de base medible (VBE) de alrededor de 0.7 V, voltaje colector-emisor (VCE) cercano a cero indicando saturación, y corriente de base (IB) y corriente de colector (IC) claramente observables.

Público objetivo y nivel: Principiantes en electrónica y aficionados que buscan controlar cargas mecánicas de forma segura.

Materiales

  • V1: Fuente de alimentación CC de 9 V, función: fuente de alimentación principal para el motor CC
  • V2: Fuente de alimentación CC de 5 V, función: fuente de señal de control simulada
  • SW1: Interruptor SPST, función: control manual de la señal de base
  • Q1: Transistor NPN 2N2222, función: interruptor de lado bajo para controlar el motor
  • M1: Motor CC de 9 V, función: carga mecánica inductiva
  • D1: Diodo 1N4007, función: diodo flyback para suprimir los picos inductivos
  • R1: Resistencia de 1 kΩ, función: resistencia limitadora de corriente de base
  • R2: Resistencia de 10 kΩ, función: resistencia pull-down para la señal de control

Guía de conexionado

  • V1: se conecta entre los nodos 9 V_PWR y 0
  • V2: se conecta entre los nodos 5 V_CTRL y 0
  • SW1: se conecta entre los nodos 5 V_CTRL y CTRL_IN
  • R2: se conecta entre los nodos CTRL_IN y 0
  • R1: se conecta entre los nodos CTRL_IN y BASE
  • Q1: El colector se conecta al nodo COLLECTOR, la base se conecta al nodo BASE, el emisor se conecta al nodo 0
  • M1: se conecta entre los nodos 9 V_PWR y COLLECTOR
  • D1: El ánodo se conecta al nodo COLLECTOR, el cátodo se conecta al nodo 9 V_PWR

Diagrama de bloques conceptual

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

Esquemático

[ 5 V_CTRL ] --> [ SW1 ] --(CTRL_IN)--+--> [ R1: 1 kΩ ] --(BASE)--> [ Q1:Base ]
                                           |                                |
                                       [ R2: 10 kΩ ]                         |
                                           |                                |
                                          GND                               |
                                                                            |
      [ 9 V_PWR ] --+--> [ M1: 9 V Motor ] -----------------+--(COLLECTOR)--> [ Q1:Collector ] --( )-- [ Q1:Emitter ] --> GND
                   |                                      |
                   +--> [ D1: 1N4007 (Cath->Anode) ] -----+
Esquema Eléctrico

Diagrama eléctrico

Diagrama eléctrico del caso: Control de un motor CC con un transistor
Generado desde la netlist SPICE validada del caso.

🔒 Este diagrama eléctrico es premium. Con el pase de 7 días o la suscripción mensual podrás desbloquear el material didáctico completo y el pack PDF listo para imprimir.🔓 Ver planes de acceso premium

Mediciones y pruebas

  1. Verificar la señal de control: Cierra SW1. Mide el voltaje en el nodo CTRL_IN con respecto al nodo 0. Debería marcar 5 V. Cuando está abierto, debería marcar 0 V debido a la resistencia pull-down R2.
  2. Medir el voltaje base-emisor (VBE): Con SW1 cerrado, coloca las puntas de prueba de tu multímetro entre el nodo BASE y el nodo 0. Deberías medir aproximadamente 0.7 V, confirmando que la unión base-emisor del transistor está polarizada en directa.
  3. Medir el voltaje colector-emisor (VCE): Con el motor en marcha (SW1 cerrado), mide el voltaje entre el nodo COLLECTOR y el nodo 0. Una lectura de alrededor de 0.2 V indica que el transistor está operando correctamente en la región de saturación. Cuando SW1 está abierto, este voltaje debería subir a 9 V.
  4. Medir la corriente de base (IB): Configura tu multímetro para medir corriente (rango de mA) y colócalo en serie entre R1 y el nodo BASE. Deberías medir una pequeña corriente (alrededor de 4.3 mA).
  5. Medir la corriente de colector (IC): Coloca tu amperímetro en serie entre M1 y el nodo COLLECTOR. Medirás la corriente real consumida por el motor (que podría variar desde decenas hasta cientos de mA dependiendo del motor específico).

Netlist SPICE y simulación

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

* DC Motor Control with a Transistor
.width out=256

* Power Supplies
V1 9V_PWR 0 DC 9
V2 5V_CTRL 0 DC 5

* Switch SW1 modeled as a voltage-controlled switch to simulate user interaction
S1 5V_CTRL CTRL_IN SW_CTRL 0 mySW
.model mySW SW(Vt=2.5 Vh=0.5 Ron=0.1 Roff=100MEG)

* Control signal to simulate the user pressing the switch
V_SW_CTRL SW_CTRL 0 PULSE(0 5 10m 1u 1u 245m 1s)

* Resistors
R2 CTRL_IN 0 10k
R1 CTRL_IN BASE 1k

* Transistor Q1 (Low-side switch)
Q1 COLLECTOR BASE 0 2N2222MOD
* ... (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.

* DC Motor Control with a Transistor
.width out=256

* Power Supplies
V1 9V_PWR 0 DC 9
V2 5V_CTRL 0 DC 5

* Switch SW1 modeled as a voltage-controlled switch to simulate user interaction
S1 5V_CTRL CTRL_IN SW_CTRL 0 mySW
.model mySW SW(Vt=2.5 Vh=0.5 Ron=0.1 Roff=100MEG)

* Control signal to simulate the user pressing the switch
V_SW_CTRL SW_CTRL 0 PULSE(0 5 10m 1u 1u 245m 1s)

* Resistors
R2 CTRL_IN 0 10k
R1 CTRL_IN BASE 1k

* Transistor Q1 (Low-side switch)
Q1 COLLECTOR BASE 0 2N2222MOD

* Motor M1 modeled as a series inductor and resistor representing the inductive mechanical load
LM1 9V_PWR M1_INT 1mH
RM1 M1_INT COLLECTOR 20

* Flyback diode D1
D1 COLLECTOR 9V_PWR 1N4007MOD

* Component Models
.model 2N2222MOD NPN(IS=1E-14 VAF=100 BF=200 IKF=0.3 XTB=1.5 BR=3 CJC=8E-12 CJE=25E-12 TR=100E-9 TF=400E-12 ITF=1 VTF=2 XTF=3 RB=10 RC=0.3 RE=0.2)
.model 1N4007MOD D(IS=7.02767n RS=0.0341512 N=1.80803 EG=1.11 XTI=3.0 BV=1000 IBV=5e-08 CJO=1e-11 VJ=0.7 M=0.5 FC=0.5 TT=1e-07)

* Simulation Commands
.op
.tran 0.1m 250m
.print tran V(CTRL_IN) V(COLLECTOR) V(BASE) I(LM1)
.end

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)
Análisis: The simulation shows that when the control signal (v(ctrl_in)) goes high to ~5V at t=10ms, the transistor turns on, pulling the collector voltage down from 9V to ~1.64V. The base voltage rises to ~0.94V, and the motor current (lm1#branch) ramps up to ~368mA, indicating successful motor activation.
Show raw data table (2541 rows)
Index   time            v(ctrl_in)      v(collector)    v(base)         lm1#branch
0	0.000000e+00	5.000400e-04	9.000000e+00	5.000490e-04	1.799750e-11
1	1.000000e-06	5.000400e-04	9.000000e+00	5.000490e-04	1.800624e-11
2	2.000000e-06	5.000400e-04	9.000000e+00	5.000490e-04	1.800815e-11
3	4.000000e-06	5.000400e-04	9.000000e+00	5.000490e-04	1.800528e-11
4	8.000000e-06	5.000400e-04	9.000000e+00	5.000490e-04	1.799050e-11
5	1.600000e-05	5.000400e-04	9.000000e+00	5.000490e-04	1.798412e-11
6	3.200000e-05	5.000400e-04	9.000000e+00	5.000490e-04	1.797999e-11
7	6.400000e-05	5.000400e-04	9.000000e+00	5.000490e-04	1.798801e-11
8	1.280000e-04	5.000400e-04	9.000000e+00	5.000490e-04	1.797977e-11
9	2.280000e-04	5.000400e-04	9.000000e+00	5.000490e-04	1.799637e-11
10	3.280000e-04	5.000400e-04	9.000000e+00	5.000490e-04	1.799685e-11
11	4.280000e-04	5.000400e-04	9.000000e+00	5.000490e-04	1.799640e-11
12	5.280000e-04	5.000400e-04	9.000000e+00	5.000490e-04	1.799689e-11
13	6.280000e-04	5.000400e-04	9.000000e+00	5.000490e-04	1.799636e-11
14	7.280000e-04	5.000400e-04	9.000000e+00	5.000490e-04	1.799685e-11
15	8.280000e-04	5.000400e-04	9.000000e+00	5.000490e-04	1.799639e-11
16	9.280000e-04	5.000400e-04	9.000000e+00	5.000490e-04	1.799690e-11
17	1.028000e-03	5.000400e-04	9.000000e+00	5.000490e-04	1.799645e-11
18	1.128000e-03	5.000400e-04	9.000000e+00	5.000490e-04	1.799690e-11
19	1.228000e-03	5.000400e-04	9.000000e+00	5.000490e-04	1.799640e-11
20	1.328000e-03	5.000400e-04	9.000000e+00	5.000490e-04	1.799689e-11
21	1.428000e-03	5.000400e-04	9.000000e+00	5.000490e-04	1.799641e-11
22	1.528000e-03	5.000400e-04	9.000000e+00	5.000490e-04	1.799690e-11
23	1.628000e-03	5.000400e-04	9.000000e+00	5.000490e-04	1.799640e-11
... (2517 more rows) ...

Errores comunes y cómo evitarlos

  • Omitir el diodo flyback (D1): Un motor CC es una carga inductiva. Cuando el transistor se apaga, el colapso del campo magnético crea un pico de voltaje masivo. Sin el diodo, este pico destruirá instantáneamente el transistor. Coloca siempre un diodo en paralelo con el motor, polarizado en inversa en relación con el flujo normal de corriente.
  • Olvidar la resistencia de base (R1): Conectar una señal de control de 5 V directamente a la base del transistor consumirá una corriente excesiva, destruyendo inmediatamente la fuente de control (ej., tu microcontrolador) o el transistor. Usa siempre una resistencia limitadora de corriente.
  • Intercambiar los pines de colector y emisor: Insertar el transistor NPN al revés resultará en una ganancia de corriente (hFE) muy pobre. El motor apenas girará y el transistor se calentará significativamente porque no puede saturarse por completo. Revisa siempre la hoja de datos (datasheet) para comprobar el pin-out de tu transistor específico.

Solución de problemas

  • Síntoma: El motor no gira cuando el interruptor está cerrado.
    • Causa: El transistor no se enciende o al motor le falta alimentación.
    • Solución: Mide el voltaje en el nodo BASE. Si es 0 V, revisa tu interruptor SW1 y la resistencia R1. Mide el nodo 9 V_PWR para asegurarte de que la fuente de alimentación principal está activa.
  • Síntoma: El transistor se calienta muchísimo muy rápido.
    • Causa: El transistor está operando en la región activa/lineal en lugar de saturarse por completo, generalmente porque la corriente de base (IB) es demasiado baja para la corriente de colector (IC) requerida.
    • Solución: Calcula la corriente de base requerida (IC / hFE). Si la corriente es demasiado baja, reduce el valor de R1 (ej., a 470 Ω o 330 Ω) para permitir más corriente de base, asegurando la saturación.
  • Síntoma: El microcontrolador se reinicia o se comporta de forma errática cuando el motor se enciende/apaga.
    • Causa: Ruido eléctrico de las escobillas del motor o caídas de voltaje en la línea de alimentación.
    • Solución: Asegúrate de que la fuente de alimentación del motor (V1) esté completamente separada de la fuente de la lógica de control (V2), compartiendo solo la conexión de tierra (0). Añade un condensador cerámico de 100 nF entre los terminales del motor para suprimir el ruido de las escobillas.

Posibles mejoras y extensiones

  • Control de velocidad por PWM: Reemplaza el interruptor manual (SW1) por una señal de modulación por ancho de pulsos (PWM) de un microcontrolador. Al encender y apagar rápidamente el transistor, puedes controlar suavemente la velocidad de rotación del motor en lugar de simplemente tenerlo encendido o apagado.
  • Optoaislamiento para una mayor seguridad: Introduce un optoacoplador entre la señal de control y la base del transistor. Esto separa físicamente el circuito de control de bajo voltaje del circuito del motor de mayor voltaje mediante luz, proporcionando un aislamiento eléctrico total y evitando que las fallas catastróficas lleguen a tu placa lógica.

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 conmutación se construye en este caso práctico?




Pregunta 3: ¿Para qué sirve el diodo flyback en este circuito?




Pregunta 4: ¿Qué sucede cuando se aplica una señal de control de 5V al circuito de base?




Pregunta 5: ¿Qué tipo de carga representa el motor CC en este contexto?




Pregunta 6: ¿Por qué es útil esta topología al usar microcontroladores como Arduino o Raspberry Pi?




Pregunta 7: ¿Qué componente puentea la conexión del motor a tierra para que funcione?




Pregunta 8: ¿De qué protege el diodo flyback a la delicada lógica de control?




Pregunta 9: ¿En qué estado se encuentra el transistor NPN cuando el motor está girando?




Pregunta 10: ¿Cuál es una aplicación práctica mencionada para este circuito?




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:


Caso práctico: Supresión de ruido con choque de RF

Esquemático — Caso práctico: Supresión de ruido con choque de RF

Nivel: Medio – Demostrar la alta impedancia del inductor a altas frecuencias para bloquear el ruido en las líneas de alimentación.

Objetivo y caso de uso

Construirá un filtro paso bajo LR utilizando un choque de RF para aislar una línea de alimentación de CC del ruido de CA de alta frecuencia. Al superponer una señal de CA sobre una fuente de tensión de CC, observará cómo la reactancia del inductor, dependiente de la frecuencia, permite el paso de la CC mientras atenúa fuertemente el ruido de alta frecuencia antes de que llegue a la carga.

Este concepto de circuito es muy útil en el mundo real para:
* Evitar que el ruido de conmutación de alta frecuencia entre en circuitos de sensores analógicos sensibles.
* Filtrar la interferencia de radiofrecuencia (RFI) de líneas largas de suministro de energía.
* Aislar diferentes bloques funcionales que comparten un raíl de alimentación común en un PCB.
* Proteger la electrónica de comunicación y audio del automóvil contra el zumbido del alternador.

Resultado esperado:
* La señal de entrada mixta (V_IN_MIX) mostrará un offset de CC estable combinado con un rizado significativo de alta frecuencia.
* La tensión de salida (V_OUT_CLEAN) en la carga mostrará un nivel de CC estable con el ruido de CA enormemente reducido.
* Un análisis FFT (Transformada Rápida de Fourier) de la entrada revelará una gran componente a 0 Hz (CC) y un pico prominente de alta frecuencia.
* Un análisis FFT de la salida mostrará el pico de alta frecuencia casi completamente suprimido, confirmando la acción de bloqueo del choque.

Público objetivo: Estudiantes de electrónica de nivel intermedio que aprenden sobre componentes reactivos y superposición de CA/CC.

Materiales

  • V1: fuente de CC de 5 V, función: fuente de alimentación principal de CC
  • V2: fuente de CA de onda senoidal de 500 mV de pico a 100 kHz, función: simulador de ruido de alta frecuencia
  • L1: inductor de 1 mH, función: choque de RF para bloquear el ruido de alta frecuencia
  • R1: resistencia de 100 Ω, función: simulación de carga

Guía de conexionado

  • V1: se conecta entre V_DC y 0
  • V2: se conecta entre V_IN_MIX y V_DC
  • L1: se conecta entre V_IN_MIX y V_OUT_CLEAN
  • R1: se conecta entre V_OUT_CLEAN y 0

Diagrama de bloques conceptual

Conceptual block diagram — 1mH RF Choke
Lectura rápida: entradas → bloque principal → salida (actuador o medida). Resume el esquemático ASCII de la siguiente sección.

Esquemático

[ V1: 5 V DC Source ] --(V_DC)--> [ V2: AC Noise Simulator ] --(V_IN_MIX)--> [ L1: 1mH RF Choke ] --(V_OUT_CLEAN)--> [ R1: 100 Ω Load ] --> GND
Esquema Eléctrico

Diagrama eléctrico

Diagrama electrico del caso: Caso práctico: Supresión de ruido con choque de RF
Generado desde la netlist SPICE validada del caso.

🔒 Este diagrama eléctrico es premium. Con el pase de 7 días o la suscripción mensual podrás desbloquear el material didáctico completo y el pack PDF listo para imprimir.🔓 Ver planes de acceso premium

Mediciones y pruebas

  1. Conecte una sonda de osciloscopio a V_IN_MIX con la pinza de tierra conectada al nodo 0. Configure el acoplamiento del canal en CC. Debería observar una línea base de 5 V de CC con una onda senoidal de 100 kHz y 1 V pico a pico montada sobre ella.
  2. Conecte una segunda sonda de osciloscopio a V_OUT_CLEAN. Observe que la tensión de CC se mantiene en aproximadamente 5 V, pero el rizado de alta frecuencia de 100 kHz se atenúa drásticamente debido a la alta reactancia inductiva (XL = 2\pi fL) del choque.
  3. Active la función matemática FFT (Transformada Rápida de Fourier) en el osciloscopio para el canal V_IN_MIX. Note el pico masivo a 0 Hz (que representa la componente de CC de 5 V) y el pico de ruido distintivo a 100 kHz.
  4. Aplique la función FFT al canal V_OUT_CLEAN. Compare la magnitud del pico de 100 kHz con la medición de entrada; debería estar significativamente reducido, demostrando con éxito las capacidades de bloqueo de alta frecuencia del inductor.

Netlist SPICE y simulación

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

* Noise suppression with RF choke
.width out=256

* Main DC power supply (5V)
V1 V_DC 0 DC 5

* High-frequency noise simulator (500mV peak, 100kHz sine wave superimposed on DC)
V2 V_IN_MIX V_DC SINE(0 500m 100k)

* RF choke to block high-frequency noise (1mH)
L1 V_IN_MIX V_OUT_CLEAN 1m

* Load simulation (100 ohms)
* ... (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.

* Noise suppression with RF choke
.width out=256

* Main DC power supply (5V)
V1 V_DC 0 DC 5

* High-frequency noise simulator (500mV peak, 100kHz sine wave superimposed on DC)
V2 V_IN_MIX V_DC SINE(0 500m 100k)

* RF choke to block high-frequency noise (1mH)
L1 V_IN_MIX V_OUT_CLEAN 1m

* Load simulation (100 ohms)
R1 V_OUT_CLEAN 0 100

* Analysis directives
.op
* Simulate for 100us to capture 10 full cycles of the 100kHz noise
.tran 0.1u 100u
.print tran V(V_IN_MIX) V(V_OUT_CLEAN) V(V_DC) I(L1)

.end

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)
Análisis: The simulation shows a 5V DC signal with a superimposed 500mV peak 100kHz sine wave at the input (V_IN_MIX ranges from 4.5V to 5.5V). At the output (V_OUT_CLEAN), the voltage ranges from 4.92V to 5.12V, indicating that the 1mH RF choke significantly attenuates the high-frequency noise while passing the DC component to the 100-ohm load.
Show raw data table (1008 rows)
Index   time            v(v_in_mix)     v(v_out_clean)  v(v_dc)         l1#branch
0	0.000000e+00	5.000000e+00	5.000000e+00	5.000000e+00	5.000000e-02
1	1.000000e-09	5.000314e+00	5.000000e+00	5.000000e+00	5.000000e-02
2	2.000000e-09	5.000628e+00	5.000000e+00	5.000000e+00	5.000000e-02
3	4.000000e-09	5.001257e+00	5.000000e+00	5.000000e+00	5.000000e-02
4	8.000000e-09	5.002513e+00	5.000001e+00	5.000000e+00	5.000001e-02
5	1.600000e-08	5.005026e+00	5.000004e+00	5.000000e+00	5.000004e-02
6	3.200000e-08	5.010052e+00	5.000016e+00	5.000000e+00	5.000016e-02
7	6.400000e-08	5.020101e+00	5.000064e+00	5.000000e+00	5.000064e-02
8	1.280000e-07	5.040169e+00	5.000256e+00	5.000000e+00	5.000256e-02
9	2.280000e-07	5.071384e+00	5.000808e+00	5.000000e+00	5.000808e-02
10	3.280000e-07	5.102316e+00	5.001665e+00	5.000000e+00	5.001665e-02
11	4.280000e-07	5.132845e+00	5.002818e+00	5.000000e+00	5.002818e-02
12	5.280000e-07	5.162850e+00	5.004261e+00	5.000000e+00	5.004261e-02
13	6.280000e-07	5.192212e+00	5.005985e+00	5.000000e+00	5.005985e-02
14	7.280000e-07	5.220816e+00	5.007980e+00	5.000000e+00	5.007980e-02
15	8.280000e-07	5.248548e+00	5.010236e+00	5.000000e+00	5.010236e-02
16	9.280000e-07	5.275299e+00	5.012741e+00	5.000000e+00	5.012741e-02
17	1.028000e-06	5.300963e+00	5.015481e+00	5.000000e+00	5.015481e-02
18	1.128000e-06	5.325440e+00	5.018443e+00	5.000000e+00	5.018443e-02
19	1.228000e-06	5.348633e+00	5.021613e+00	5.000000e+00	5.021613e-02
20	1.328000e-06	5.370449e+00	5.024976e+00	5.000000e+00	5.024976e-02
21	1.428000e-06	5.390804e+00	5.028515e+00	5.000000e+00	5.028515e-02
22	1.528000e-06	5.409616e+00	5.032213e+00	5.000000e+00	5.032213e-02
23	1.628000e-06	5.426812e+00	5.036054e+00	5.000000e+00	5.036054e-02
... (984 more rows) ...

Errores comunes y cómo evitarlos

  • Usar un inductor con una baja frecuencia de autorresonancia (SRF): Todos los inductores tienen capacitancia parásita de devanado. Si la frecuencia del ruido supera la SRF del inductor, el componente se comporta como un condensador y permite que el ruido de alta frecuencia pase directamente. Verifique siempre que la SRF esté muy por encima de la frecuencia de ruido objetivo.
  • Ignorar la resistencia de CC (DCR) del inductor: Los inductores están hechos de alambre enrollado que naturalmente posee resistencia. Altas corrientes de carga pasando por un inductor con alta DCR causarán una caída de tensión de CC inaceptable. Elija un choque con una DCR adecuadamente baja para su carga.
  • Saturación del núcleo debido a alta corriente de CC: Si la carga consume más corriente continua que la especificación de saturación del inductor (Isat), el flujo magnético del núcleo se satura. Esto hace que la inductancia caiga drásticamente, destruyendo su capacidad de filtrado. Compruebe siempre la especificación de corriente de saturación.

Solución de problemas

  • Síntoma: El ruido de alta frecuencia sigue estando muy presente en V_OUT_CLEAN.
  • Causa: El valor del inductor es demasiado bajo para proporcionar una reactancia significativa a la frecuencia del ruido simulado, o se ha superado su SRF.
  • Solución: Aumente el valor de la inductancia (por ejemplo, escale de 10 µH a 1 mH) o verifique los límites de frecuencia del choque específico que se está utilizando.
  • Síntoma: Caída significativa de tensión de CC en V_OUT_CLEAN bajo carga (por ejemplo, leyendo 4 V en lugar de 5 V).
  • Causa: La resistencia interna de CC (DCR) del inductor es demasiado alta en relación con la resistencia de carga R1.
  • Solución: Reemplace el inductor por uno físicamente más grande que utilice un alambre más grueso, lo que reduce la DCR, o aumente la resistencia de carga si está consumiendo más corriente de la prevista.
  • Síntoma: El choque se calienta en exceso durante el funcionamiento.
  • Causa: La corriente de CC consumida por la carga excede la especificación de corriente térmica continua (Irms) del inductor.
  • Solución: Seleccione un inductor de potencia de mayor especificación capaz de manejar de forma segura la corriente de carga en estado estable.

Posibles mejoras y extensiones

  • Formar un filtro paso bajo LC: Añada un condensador de desacoplo (por ejemplo, 100 nF o 1 µF) en paralelo a la carga (entre V_OUT_CLEAN y 0). Esto crea un filtro de segundo orden, proporcionando una caída mucho más pronunciada y una atenuación de ruido inmensamente superior en comparación con la configuración LR simple.
  • Implementar un filtro Pi: Utilice una disposición Condensador-Inductor-Condensador (C-L-C) para proporcionar una supresión de ruido bidireccional. Esto no solo limpia la energía que entra a la carga, sino que también evita que cualquier ruido de conmutación generado por la carga contamine la línea principal de suministro de CC.

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é componente se utiliza específicamente para bloquear el ruido de alta frecuencia en este circuito?




Pregunta 3: ¿Cómo se comporta la reactancia del inductor frente a las señales de alta frecuencia?




Pregunta 4: ¿Qué tipo de señal permite pasar el inductor hacia la carga con mayor facilidad?




Pregunta 5: Según el texto, ¿cuál es una aplicación real de este concepto de circuito?




Pregunta 6: ¿Qué se espera observar en la señal de entrada mixta (V_IN_MIX)?




Pregunta 7: ¿Qué función cumple el filtro paso bajo LR en una placa de circuito impreso (PCB)?




Pregunta 8: ¿De qué depende la reactancia del inductor en este circuito?




Pregunta 9: ¿Qué problema soluciona este circuito en la electrónica de comunicación de un automóvil?




Pregunta 10: ¿Qué se espera que ocurra con la tensión de salida (V_OUT_CLEAN) en comparación con la entrada?




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:


Caso práctico: Resonancia en circuito tanque LC

Esquemático — Caso práctico: Resonancia en circuito tanque LC

Nivel: Medio | Analizar el intercambio de energía y determinar la frecuencia de resonancia de un tanque LC alimentado por CA.

Objetivo y caso de uso

En este caso práctico, construirás un circuito tanque LC en paralelo alimentado por una fuente de onda senoidal de CA a través de una resistencia en serie. Al realizar un barrido de la frecuencia de entrada, observarás el punto exacto donde las reactancias inductiva y capacitiva se anulan, maximizando la impedancia del circuito.

Comprender la resonancia LC es esencial en la electrónica moderna porque estos circuitos son los bloques de construcción fundamentales de la selección de frecuencia. Las aplicaciones en el mundo real incluyen:
* Sintonización de radiofrecuencia (RF): Seleccionar la frecuencia de una estación específica mientras se rechazan otras.
* Filtrado de audio y señales: Crear filtros pasa banda o rechaza banda (notch) para eliminar el ruido.
* Transferencia de energía inalámbrica: Maximizar la eficiencia del acoplamiento inductivo entre las bobinas transmisora y receptora.
* Circuitos osciladores: Generar señales de reloj estables para microcontroladores y transceptores.

Resultado esperado:
* Calcularás la frecuencia de resonancia teórica basándote en los valores de $L$ y $C$ elegidos.
* La corriente total extraída de la fuente (Itotal) caerá a su valor mínimo en la resonancia.
* El voltaje a través del tanque LC (VLC) alcanzará su pico en la frecuencia de resonancia.
* Observarás cómo la energía oscila continuamente de un lado a otro entre el campo eléctrico del condensador y el campo magnético del inductor.

Público objetivo: Estudiantes de electrónica de nivel intermedio que están en transición de los conceptos básicos de CC a los circuitos reactivos de CA.

Materiales

  • V1: Fuente de voltaje de CA de 5 V pico a pico, función: generador de onda senoidal para barrido de frecuencia
  • R1: Resistencia de 1 kΩ, función: impedancia de la fuente para permitir variaciones de voltaje a través del tanque
  • L1: Inductor de 10 mH, función: almacenamiento de energía magnética
  • C1: Condensador cerámico o de película de 100 nF, función: almacenamiento de energía eléctrica

Guía de conexionado

  • V1: Conecta el terminal positivo al nodo IN y el terminal negativo al nodo 0 (GND).
  • R1: Conecta un pin al nodo IN y el otro pin al nodo TANK.
  • L1: Conecta un pin al nodo TANK y el otro pin al nodo 0 (GND).
  • C1: Conecta un pin al nodo TANK y el otro pin al nodo 0 (GND).

Diagrama de bloques conceptual

Conceptual block diagram — LC Tank Circuit
Lectura rápida: entradas → bloque principal → salida (actuador o medida). Resume el esquemático ASCII de la siguiente sección.

Esquemático

[ V1: 5 V AC ] --(IN)--> [ R1: 1k ohm ] --(Node TANK)--+--> [ L1: 10mH ] --> GND
                                                      |
                                                      +--> [ C1: 100nF ] --> GND
Esquema Eléctrico

Diagrama eléctrico

Diagrama electrico del caso: Caso práctico: Resonancia en circuito tanque LC
Generado desde la netlist SPICE validada del caso.

🔒 Este diagrama eléctrico es premium. Con el pase de 7 días o la suscripción mensual podrás desbloquear el material didáctico completo y el pack PDF listo para imprimir.🔓 Ver planes de acceso premium

Mediciones y pruebas

  1. Calcular la frecuencia de resonancia teórica (fr):
    Utiliza la fórmula fr = (1 / 2\pi\sqrtLC). Con L = 10 mH y C = 100 nF, la frecuencia de resonancia esperada es aproximadamente 5032 Hz.
  2. Configurar el barrido de frecuencia:
    Configura V1 para emitir una onda senoidal de 5 V pico a pico. Comienza con una frecuencia de 1 kHz y auméntala gradualmente hasta 10 kHz.
  3. Medir VLC (Voltaje del tanque):
    Monitorea la amplitud del voltaje en el nodo TANK con respecto al nodo 0 (GND) usando un osciloscopio o un voltímetro de CA. A medida que te acercas a 5 kHz, la amplitud del voltaje aumentará de manera constante, alcanzando un máximo pronunciado exactamente en la resonancia, y luego caerá a medida que la frecuencia siga aumentando.
  4. Medir Itotal (Corriente de la fuente):
    Mide la corriente que fluye a través de R1 (esto se puede hacer observando la diferencia de voltaje entre IN y TANK y aplicando la ley de Ohm: Itotal = ((VIN – VTANK) / R1)). Ten en cuenta que en resonancia, el tanque LC en paralelo presenta la máxima impedancia, lo que significa que Itotal caerá a su mínimo.
  5. Calcular el factor Q del circuito:
    Identifica las frecuencias de -3dB (mitad de potencia) por encima y por debajo del pico de resonancia para encontrar el ancho de banda ($BW$). El factor de calidad es Q = (fr / BW).

Netlist SPICE y simulación

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

* Practical case: Resonance in LC tank circuit
.width out=256

* 5V peak-to-peak implies an amplitude of 2.5V. 
* The resonant frequency of 10mH and 100nF is approximately 5033 Hz.
* We configure V1 with both a transient sine wave at resonance and an AC magnitude for optional AC analysis.
V1 IN 0 DC 0 AC 2.5 SIN(0 2.5 5033)

* Source impedance
R1 IN TANK 1k

* LC Tank circuit components
L1 TANK 0 10mH
* ... (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: Resonance in LC tank circuit
.width out=256

* 5V peak-to-peak implies an amplitude of 2.5V. 
* The resonant frequency of 10mH and 100nF is approximately 5033 Hz.
* We configure V1 with both a transient sine wave at resonance and an AC magnitude for optional AC analysis.
V1 IN 0 DC 0 AC 2.5 SIN(0 2.5 5033)

* Source impedance
R1 IN TANK 1k

* LC Tank circuit components
L1 TANK 0 10mH
C1 TANK 0 100nF

* Operating point and Transient analysis
.op
.tran 1u 2m

* Print directives for logging the input and output (resonance) nodes
.print tran V(IN) V(TANK) I(L1)

.end

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)
Análisis: The transient simulation shows the input voltage V(IN) oscillating as a sine wave with a 2.5V amplitude (5V peak-to-peak). The voltage at the tank node V(TANK) closely follows V(IN) with nearly the same amplitude, and the inductor current oscillates, confirming the resonant behavior of the LC tank circuit at the specified frequency.
Show raw data table (2015 rows)
Index   time            v(in)           v(tank)         l1#branch
0	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
1	1.000000e-08	7.905818e-04	7.905026e-08	7.905026e-14
2	1.084006e-08	8.569951e-04	8.624878e-08	8.629565e-14
3	1.252017e-08	9.898217e-04	1.017615e-07	1.020896e-13
4	1.588039e-08	1.255475e-03	1.394809e-07	1.426210e-13
5	2.260084e-08	1.786781e-03	2.416948e-07	2.707046e-13
6	3.604174e-08	2.849394e-03	5.532131e-07	8.049184e-13
7	5.708432e-08	4.512980e-03	1.327631e-06	2.783809e-12
8	8.603868e-08	6.802053e-03	2.965106e-06	8.998482e-12
9	1.305078e-07	1.031768e-02	6.769425e-06	3.064276e-11
10	1.955195e-07	1.545732e-02	1.514065e-05	1.018634e-10
11	2.946313e-07	2.329267e-02	3.431881e-05	3.469641e-10
12	4.417944e-07	3.492633e-02	7.707420e-05	1.166612e-09
13	6.644501e-07	5.252635e-02	1.741480e-04	3.963414e-09
14	9.972436e-07	7.882720e-02	3.917455e-04	1.337970e-08
15	1.499113e-06	1.184727e-01	8.834917e-04	4.537981e-08
16	2.252017e-06	1.778899e-01	1.987598e-03	1.534626e-07
17	3.252017e-06	2.566456e-01	4.126641e-03	4.591745e-07
18	4.252017e-06	3.351447e-01	7.022468e-03	1.016630e-06
19	5.252017e-06	4.133086e-01	1.066173e-02	1.900840e-06
20	6.252017e-06	4.910592e-01	1.502968e-02	3.185410e-06
21	7.252017e-06	5.683189e-01	2.011023e-02	4.942405e-06
22	8.252017e-06	6.450102e-01	2.588597e-02	7.242215e-06
23	9.252017e-06	7.210565e-01	3.233820e-02	1.015342e-05
... (1991 more rows) ...

Errores comunes y cómo evitarlos

  • Usar un condensador polarizado en un circuito de CA: Los condensadores electrolíticos generalmente están polarizados y pueden fallar o explotar si se someten a voltajes de CA inversos. Usa siempre condensadores no polarizados (como cerámicos o de película) para un tanque LC.
  • Ignorar la resistencia equivalente en serie (ESR) del inductor: Los inductores reales consisten en largas bobinas de alambre, lo que añade resistencia parásita de CC al tanque. Si el factor Q medido es mucho menor de lo esperado (resultando en un pico más ancho y plano), la ESR del inductor suele ser la culpable.
  • Confundir la frecuencia angular (\omega) con la frecuencia estándar ($f$): Recuerda que \omega = (1 / \sqrtLC) produce resultados en radianes por segundo. Debes dividir entre 2\pi para obtener la frecuencia en Hertz.

Solución de problemas

  • Síntoma: La frecuencia de resonancia medida es significativamente mayor o menor que los 5032 Hz calculados.
    • Causa: Tolerancias de los componentes. Los condensadores cerámicos estándar pueden tener una tolerancia del ±20%, y los inductores a menudo tienen un ±10%.
    • Solución: Mide los valores exactos de L1 y C1 usando un medidor LCR y vuelve a calcular la frecuencia esperada.
  • Síntoma: VLC no muestra un pico notable durante el barrido; el voltaje se mantiene relativamente plano.
    • Causa: El rango de barrido de frecuencia elegido no cubre el punto de resonancia, o R1 es demasiado pequeña, cortocircuitando efectivamente el tanque a la fuente de voltaje rígida.
    • Solución: Revisa los cálculos matemáticos para tus valores específicos de $L$ y $C$ para asegurar que el rango de barrido abarque fr. Asegúrate de que R1 tenga el tamaño adecuado (1 kΩ es un buen punto de partida).
  • Síntoma: Se observa distorsión o recorte de la señal en el nodo TANK.
    • Causa: La fuente de CA podría estar sobreexcitando el circuito, o se está produciendo saturación del núcleo en el inductor (si se usa un núcleo de ferrita muy pequeño con corrientes altas).
    • Solución: Reduce la amplitud de V1 de 5 V a 1 V pico a pico y comprueba si la onda senoidal vuelve a ser limpia.

Posibles mejoras y extensiones

  • Variar la resistencia de amortiguamiento: Cambia R1 por diferentes valores (ej. 470 Ω, 10 kΩ) o añade una resistencia directamente en paralelo con el tanque LC. Observa y registra cómo esto afecta la agudeza del pico de resonancia (el factor Q).
  • Construir un oscilador activo: Retira la fuente de CA y conecta el tanque LC a un transistor o un amplificador operacional con retroalimentación positiva (como una configuración Colpitts o Hartley) para crear un circuito independiente que genere su propia onda senoidal continua en la frecuencia de resonancia.

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 caso práctico descrito en el texto?




Pregunta 2: ¿Qué ocurre exactamente en el punto de frecuencia de resonancia en el circuito tanque LC descrito?




Pregunta 3: ¿Cómo se alimenta el circuito tanque LC en este caso práctico?




Pregunta 4: ¿Por qué es esencial comprender la resonancia LC en la electrónica moderna?




Pregunta 5: En la sintonización de radiofrecuencia (RF), ¿para qué se utiliza un circuito LC?




Pregunta 6: ¿Qué tipo de filtros se pueden crear con circuitos LC para eliminar el ruido en señales de audio?




Pregunta 7: ¿Cuál es el papel de la resonancia LC en la transferencia de energía inalámbrica?




Pregunta 8: ¿Para qué se utilizan los circuitos LC en los circuitos osciladores?




Pregunta 9: ¿Qué método se menciona en el texto para encontrar la frecuencia de resonancia del circuito?




Pregunta 10: A nivel físico, ¿qué fenómeno principal se analiza en un tanque LC alimentado por CA?




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:


Caso práctico: Almacenamiento en convertidor Boost

Esquemático — Caso práctico: Almacenamiento en convertidor Boost

Nivel: Medio | Comprender el almacenamiento de energía magnética para elevar el voltaje.

Objetivo y caso de uso

En este caso práctico, construirás un convertidor Boost básico de lazo abierto para demostrar cómo un inductor almacena y libera energía magnética para elevar un voltaje de CC.

Por qué es útil:
* Permite que los dispositivos alimentados por batería funcionen a voltajes más altos (por ejemplo, generando 5 V a partir de una sola celda de iones de litio de 3.7 V).
* Alimenta tiras de LEDs que requieren un voltaje directo alto y constante.
* Captura y eleva el voltaje en sistemas de recolección de energía y frenado regenerativo.
* Proporciona rieles de alimentación versátiles en dispositivos electrónicos portátiles compactos sin requerir múltiples baterías.

Resultado esperado:
* Observarás que la corriente del inductor (I_inductor) aumenta cuando el interruptor está cerrado y disminuye cuando se abre.
* El voltaje de salida (V_out) será demostrablemente mayor que la fuente de voltaje de entrada.
* Registrarás la relación directa entre el ciclo de trabajo (Duty Cycle) del interruptor y la magnitud resultante de V_out.

Público objetivo y nivel:
Estudiantes de electrónica de nivel intermedio que están aprendiendo los fundamentos de las fuentes de alimentación conmutadas.

Materiales

  • V1: Fuente de CC de 5 V, función: entrada de alimentación principal
  • V2: Fuente de voltaje de pulsos (0-5 V, 100kHz, 50% de ciclo de trabajo), función: señal PWM para el interruptor
  • L1: Inductor de 100 µH, función: almacenamiento de energía magnética
  • M1: MOSFET de canal N (ej. IRLZ44N), función: elemento de conmutación principal
  • D1: Diodo Schottky (ej. 1N5819), función: evita la corriente inversa desde el capacitor
  • C1: Capacitor de 47 µF, función: suavizado del voltaje de salida
  • R1: Resistor de 100 Ω, función: carga básica para descargar el capacitor

Guía de conexionado

  • V1: se conecta entre VIN y 0 (GND).
  • V2: se conecta entre GATE_PWM y 0 (GND).
  • L1: se conecta entre VIN y SW_NODE.
  • M1: el Drenador (Drain) se conecta a SW_NODE, la Puerta (Gate) se conecta a GATE_PWM, el Surtidor (Source) se conecta a 0 (GND).
  • D1: el Ánodo se conecta a SW_NODE, el Cátodo se conecta a VOUT.
  • C1: se conecta entre VOUT y 0 (GND).
  • R1: se conecta entre VOUT y 0 (GND).

Diagrama de bloques conceptual

Conceptual block diagram — Boost Converter
Lectura rápida: entradas → bloque principal → salida (actuador o medida). Resume el esquemático ASCII de la siguiente sección.

Esquemático

Control Signal:
[ V2: PWM (0-5 V) ] --(GATE_PWM)--> [ M1:Gate ]

Power & Switching Path:
[ V1: 5 V DC ] --(VIN)--> [ L1: 100µH ] --(SW_NODE)--> [ M1:Drain ] --(Switch)--> [ M1:Source ] --> GND
                                             |
Boost Output & Load:                         |
                                            +--> [ D1: Schottky ] --(VOUT)--> [ R1: 100 Ω ] --> GND
                                                                       |
                                                                       +--> [ C1: 47µF ] --> GND
Esquema Eléctrico

Diagrama eléctrico

Diagrama electrico del caso: Caso práctico: Almacenamiento en convertidor Boost
Generado desde la netlist SPICE validada del caso.

🔒 Este diagrama eléctrico es premium. Con el pase de 7 días o la suscripción mensual podrás desbloquear el material didáctico completo y el pack PDF listo para imprimir.🔓 Ver planes de acceso premium

Mediciones y pruebas

  1. Comprobación del estado inicial: Aplica V1 (5 V) con V2 apagado (0% de ciclo de trabajo). Mide VOUT. El voltaje debería ser de aproximadamente 4.7 V (la entrada de 5 V menos la caída de voltaje directo del diodo Schottky).
  2. Activación de la conmutación: Activa V2 para suministrar una onda cuadrada de 100kHz con un ciclo de trabajo del 50%. Mide VOUT a través de R1. El voltaje debería subir a aproximadamente 9 V-10 V, demostrando la acción de elevación.
  3. Observación de la corriente del inductor: Mide la corriente que fluye a través de L1 (I_inductor). Observarás una forma de onda triangular. La pendiente ascendente ocurre mientras M1 está ENCENDIDO (almacenamiento de energía), y la pendiente descendente ocurre mientras M1 está APAGADO (liberación de energía hacia VOUT).
  4. Mapeo del ciclo de trabajo: Ajusta el ciclo de trabajo de V2 del 30% al 70% en incrementos del 10%. Registra VOUT en cada paso para verificar que un ciclo de trabajo mayor produce un voltaje de salida mayor.

Netlist SPICE y simulación

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

* Boost converter storage

* Main power input
V1 VIN 0 DC 5

* PWM signal for the switch (100kHz, 50% duty cycle)
V2 GATE_PWM 0 PULSE(0 5 0 10n 10n 5u 10u)

* Magnetic energy storage
L1 VIN SW_NODE 100u

* Main switching element (N-channel MOSFET)
* Drain: SW_NODE, Gate: GATE_PWM, Source: 0, Bulk: 0
M1 SW_NODE GATE_PWM 0 0 IRLZ44N

* Prevents reverse current from capacitor
* Anode: SW_NODE, Cathode: VOUT
D1 SW_NODE VOUT 1N5819

* Output voltage smoothing
* ... (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.

* Boost converter storage

* Main power input
V1 VIN 0 DC 5

* PWM signal for the switch (100kHz, 50% duty cycle)
V2 GATE_PWM 0 PULSE(0 5 0 10n 10n 5u 10u)

* Magnetic energy storage
L1 VIN SW_NODE 100u

* Main switching element (N-channel MOSFET)
* Drain: SW_NODE, Gate: GATE_PWM, Source: 0, Bulk: 0
M1 SW_NODE GATE_PWM 0 0 IRLZ44N

* Prevents reverse current from capacitor
* Anode: SW_NODE, Cathode: VOUT
D1 SW_NODE VOUT 1N5819

* Output voltage smoothing
C1 VOUT 0 47u

* Basic load to discharge capacitor
R1 VOUT 0 100

* Models
.model IRLZ44N NMOS(Level=1 VTO=2.0 KP=10.0 RS=0.05 RD=0.05)
.model 1N5819 D(IS=1e-6 RS=0.1 N=1.05 EG=0.69 XTI=2)

* Output Directives
* VOUT is the main output, GATE_PWM is the input stimulus
.print tran V(VOUT) V(GATE_PWM) V(SW_NODE) V(VIN) I(L1)

* Analysis
* Time constant is R*C = 4.7ms. Simulating for 10ms to observe steady-state boost voltage.
.op
.tran 0.1u 10m

.end

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)
Análisis: The simulation shows the boost converter operating correctly. The output voltage (VOUT) starts near 5V and rises to a steady-state value of approximately 9.6V, with the switch node (SW_NODE) switching between ~0V and ~10V as driven by the 100kHz PWM signal.
Show raw data table (119800 rows)
Index   time            v(vout)         v(gate_pwm)     v(sw_node)      v(vin)          l1#branch
0	0.000000e+00	4.702912e+00	0.000000e+00	5.000000e+00	5.000000e+00	4.702912e-02
1	1.000000e-10	4.702912e+00	5.000000e-02	4.999798e+00	5.000000e+00	4.702912e-02
2	2.000000e-10	4.702912e+00	1.000000e-01	4.999798e+00	5.000000e+00	4.702912e-02
3	4.000000e-10	4.702912e+00	2.000000e-01	4.999797e+00	5.000000e+00	4.702912e-02
4	8.000000e-10	4.702912e+00	4.000000e-01	4.999797e+00	5.000000e+00	4.702912e-02
5	1.600000e-09	4.702912e+00	8.000000e-01	4.999797e+00	5.000000e+00	4.702912e-02
6	3.200000e-09	4.702912e+00	1.600000e+00	4.999797e+00	5.000000e+00	4.702913e-02
7	6.400000e-09	4.702910e+00	3.200000e+00	8.651034e-03	5.000000e+00	4.710899e-02
8	1.000000e-08	4.702907e+00	5.000000e+00	6.306948e-03	5.000000e+00	4.728872e-02
9	1.064000e-08	4.702906e+00	5.000000e+00	6.311218e-03	5.000000e+00	4.732068e-02
10	1.192000e-08	4.702905e+00	5.000000e+00	6.319746e-03	5.000000e+00	4.738460e-02
11	1.448000e-08	4.702902e+00	5.000000e+00	6.336800e-03	5.000000e+00	4.751244e-02
12	1.960000e-08	4.702897e+00	5.000000e+00	6.370908e-03	5.000000e+00	4.776811e-02
13	2.984000e-08	4.702887e+00	5.000000e+00	6.439123e-03	5.000000e+00	4.827946e-02
14	5.032000e-08	4.702866e+00	5.000000e+00	6.575553e-03	5.000000e+00	4.930212e-02
15	9.128000e-08	4.702825e+00	5.000000e+00	6.848406e-03	5.000000e+00	5.134738e-02
16	1.732000e-07	4.702743e+00	5.000000e+00	7.394086e-03	5.000000e+00	5.543754e-02
17	2.732000e-07	4.702643e+00	5.000000e+00	8.060152e-03	5.000000e+00	6.042981e-02
18	3.732000e-07	4.702543e+00	5.000000e+00	8.726166e-03	5.000000e+00	6.542142e-02
19	4.732000e-07	4.702443e+00	5.000000e+00	9.392128e-03	5.000000e+00	7.041236e-02
20	5.732000e-07	4.702343e+00	5.000000e+00	1.005804e-02	5.000000e+00	7.540264e-02
21	6.732000e-07	4.702243e+00	5.000000e+00	1.072390e-02	5.000000e+00	8.039225e-02
22	7.732000e-07	4.702143e+00	5.000000e+00	1.138970e-02	5.000000e+00	8.538119e-02
23	8.732000e-07	4.702043e+00	5.000000e+00	1.205546e-02	5.000000e+00	9.036947e-02
... (119776 more rows) ...

Errores comunes y cómo evitarlos

  • Usar un diodo rectificador estándar (ej. 1N4007): Los diodos estándar son demasiado lentos para apagarse a 100kHz, lo que provoca pérdidas de conmutación masivas y una mala conversión de voltaje. Usa siempre un diodo de recuperación rápida o Schottky como el 1N5819.
  • Saturación del núcleo del inductor: Si la clasificación de corriente máxima del inductor es menor que la corriente máxima de conmutación, el núcleo magnético se saturará. El inductor actuará entonces como un cortocircuito, destruyendo potencialmente el MOSFET. Verifica siempre la clasificación de corriente de saturación del inductor.
  • Operar sin carga: Hacer funcionar un convertidor boost sin una resistencia de carga (R1) puede hacer que el voltaje de salida aumente continuamente con cada ciclo de conmutación, alcanzando teóricamente el infinito y destruyendo el capacitor de salida o el MOSFET. Incluye siempre una carga mínima.

Solución de problemas

  • Síntoma: El voltaje de salida es igual al voltaje de entrada (menos la caída del diodo).
  • Causa: El MOSFET no está conmutando. V2 podría estar desconectado o el nivel de voltaje es demasiado bajo para superar el umbral de la puerta del MOSFET.
  • Solución: Verifica la señal GATE_PWM con un osciloscopio. Usa un MOSFET de nivel lógico si tu señal PWM está limitada a 3.3 V o 5 V.
  • Síntoma: El MOSFET se calienta extremadamente rápido.
  • Causa: El inductor se está saturando, o el MOSFET tiene una alta resistencia de encendido (RDS(on)) y está experimentando altas pérdidas de conducción.
  • Solución: Cambia el inductor por uno con una mayor clasificación de corriente. Asegúrate de que el voltaje de accionamiento de la puerta sea suficiente para encender completamente el MOSFET.
  • Síntoma: Voltaje de salida inestable o con mucha ondulación (ripple).
  • Causa: El capacitor de salida C1 es demasiado pequeño para la carga o tiene una alta Resistencia Serie Equivalente (ESR).
  • Solución: Aumenta la capacitancia de C1 o coloca un capacitor cerámico en paralelo con el capacitor electrolítico para reducir la ESR general.

Posibles mejoras y extensiones

  • Control de lazo cerrado: Agrega un divisor de voltaje en la salida conectado a un amplificador de error o a la entrada analógica de un microcontrolador. Ajusta dinámicamente el ciclo de trabajo PWM para mantener un VOUT constante independientemente de los cambios en R1 (la carga).
  • Rectificación síncrona: Reemplaza el diodo Schottky D1 con un segundo MOSFET de canal P o canal N accionado. Conmutar este segundo MOSFET de forma síncrona (inversamente a M1) reduce la caída de voltaje típica de un diodo, mejorando significativamente la eficiencia general del convertidor.

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 convertidor Boost descrito en el texto?




Pregunta 2: ¿Qué sucede con la corriente del inductor cuando el interruptor se cierra?




Pregunta 3: ¿Cuál de las siguientes es una aplicación útil del convertidor Boost mencionada en el artículo?




Pregunta 4: ¿Qué sucede con la corriente del inductor cuando el interruptor se abre?




Pregunta 5: ¿Cómo es el voltaje de salida (V_out) en comparación con la fuente de voltaje de entrada en este circuito?




Pregunta 6: ¿Qué tipo de relación existe entre el ciclo de trabajo (Duty Cycle) del interruptor y la magnitud resultante de V_out?




Pregunta 7: ¿Qué tipo de lazo de control utiliza el convertidor Boost básico que se construirá en el caso práctico?




Pregunta 8: ¿Por qué es útil el convertidor Boost para alimentar tiras de LEDs?




Pregunta 9: Además de dispositivos a batería y LEDs, ¿en qué otro sistema se captura y eleva el voltaje usando esta tecnología?




Pregunta 10: ¿Qué ventaja ofrece el convertidor Boost en dispositivos electrónicos portátiles compactos?




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:


Caso práctico: Protección contra picos inductivos

Prototipo de Protección contra picos inductivos (Maker Style)

Nivel: Medio | Objetivo: Analizar la tensión transitoria generada al desconectar un inductor y mitigarla utilizando un diodo flyback.

Objetivo y caso de uso

En este caso práctico, construirás un circuito de inductor conmutado monitorizado por un osciloscopio para observar el destructivo pico de tensión (retroceso inductivo o inductive kickback) que ocurre cuando la corriente se interrumpe abruptamente. Luego, instalarás un diodo flyback en paralelo con la carga inductiva para limitar de forma segura esta tensión transitoria.

Por qué es útil:
* Previene daños catastróficos por sobretensión en componentes de conmutación sensibles como transistores, MOSFETs y pines de microcontroladores.
* Reduce significativamente la interferencia electromagnética (EMI) y la interferencia de radiofrecuencia (RFI) causadas por la formación de arcos de alta tensión a través de los contactos de interruptores mecánicos.
* Aumenta la fiabilidad, seguridad y vida útil de los sistemas de alimentación, controladores de motores y circuitos accionados por relés.

Resultado esperado:
* Sin el diodo, abrir el interruptor producirá un pico de tensión negativo masivo en el osciloscopio, que a menudo alcanza cientos de voltios.
* Con el diodo flyback instalado, el pico transitorio se limitará inmediatamente a un nivel seguro de aproximadamente -0.7 V.
* La energía magnética almacenada se disipará de forma segura como una corriente circulante que decae constantemente a través del bucle inductor-resistencia-diodo.

Público objetivo y nivel: Estudiantes de electrónica de nivel intermedio que aprenden sobre componentes reactivos, almacenamiento de energía y técnicas de protección de circuitos.

Materiales

  • V1: fuente de alimentación de 12 V CC, función: fuente de energía principal
  • SW1: interruptor de palanca o pulsador SPST, función: control de conexión del circuito
  • L1: inductor de 100 mH, función: almacenamiento de energía magnética
  • R1: resistencia de 100 Ω, función: limita la corriente en estado estacionario a 120 mA
  • D1: diodo rectificador 1N4007, función: protección flyback

Guía de conexionado

  • V1: se conecta entre el nodo VCC (positivo) y el nodo 0 (tierra).
  • SW1: se conecta entre el nodo VCC y el nodo SW_OUT.
  • L1: se conecta entre el nodo SW_OUT y el nodo L_MID.
  • R1: se conecta entre el nodo L_MID y el nodo 0.
  • D1: se conecta entre el nodo 0 (Ánodo) y el nodo SW_OUT (Cátodo) para polarización inversa durante el funcionamiento normal con el interruptor cerrado.

Diagrama de bloques conceptual

Conceptual block diagram — Flyback Protection
Lectura rápida: entradas → bloque principal → salida (actuador o medida). Resume el esquemático ASCII de la siguiente sección.

Esquemático

VCC (12 V) --> [ SW1: SPST Switch ] --(SW_OUT)--> [ L1: 100mH Inductor ] --(L_MID)--> [ R1: 100 Ω Resistor ] --> GND
                                         ^
                                         |
                              (Cathode)  |
                           [ D1: 1N4007 Flyback ]
                              (Anode)    ^
                                         |
                                        GND
Esquema Eléctrico

Diagrama eléctrico

Diagrama eléctrico del caso: Protección contra picos inductivos
Generado desde la netlist SPICE validada del caso.

🔒 Este diagrama eléctrico es premium. Con el pase de 7 días o la suscripción mensual podrás desbloquear el material didáctico completo y el pack PDF listo para imprimir.🔓 Ver planes de acceso premium

Mediciones y pruebas

  1. Conecta la sonda del osciloscopio al nodo SW_OUT y conecta la pinza de tierra al nodo 0. Configura el disparador (trigger) del osciloscopio en flanco de bajada, modo de disparo único (single-shot).
  2. Comienza con el diodo flyback (D1) completamente desconectado del circuito.
  3. Cierra el interruptor (SW1) para permitir que fluya la corriente. Espera un momento para que el campo magnético en el inductor se establezca por completo.
  4. Abre rápidamente el interruptor (SW1). Observa la captura del osciloscopio; verás un transitorio de tensión negativo masivo ya que el inductor actúa como una fuente de corriente, forzando la corriente a través de la apertura del interruptor.
  5. Conecta el diodo flyback (D1), verificando que el cátodo (extremo con la franja) se conecte al nodo SW_OUT y el ánodo se conecte al nodo 0.
  6. Repite el proceso de conmutación. La traza del osciloscopio mostrará ahora el transitorio negativo limitado de forma segura a aproximadamente -0.7 V, ya que el diodo se polariza en directa para proporcionar una ruta de descarga segura.

Netlist SPICE y simulación

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

* Inductive peak protection
.width out=256

V1 VCC 0 DC 12

* SW1 modeled as a voltage-controlled switch connecting VCC to SW_OUT
S1 VCC SW_OUT SW_CTRL 0 SW_MODEL
V_SW_CTRL SW_CTRL 0 PULSE(0 5 100u 1u 1u 500u 1000u)
.model SW_MODEL SW(VT=2.5 VH=0.1 RON=0.01 ROFF=100Meg)

L1 SW_OUT L_MID 100m
R1 L_MID 0 100

* ... (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.

* Inductive peak protection
.width out=256

V1 VCC 0 DC 12

* SW1 modeled as a voltage-controlled switch connecting VCC to SW_OUT
S1 VCC SW_OUT SW_CTRL 0 SW_MODEL
V_SW_CTRL SW_CTRL 0 PULSE(0 5 100u 1u 1u 500u 1000u)
.model SW_MODEL SW(VT=2.5 VH=0.1 RON=0.01 ROFF=100Meg)

L1 SW_OUT L_MID 100m
R1 L_MID 0 100

* Flyback protection diode
D1 0 SW_OUT 1N4007
.model 1N4007 D(IS=1e-9 N=1.9 RS=0.03 BV=1000 IBV=5e-08 CJO=10p VJ=0.7 M=0.5 TT=1e-07)

.op
.tran 1u 2000u
.print tran V(SW_CTRL) V(SW_OUT) V(L_MID) V(VCC) I(L1)

.end

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)
Análisis: El análisis transitorio cubre de 0 s a 2 ms y captura el intervalo de conmutación. El nodo de conmutación y la corriente de la bobina quedan acotados, coherente con la ruta de flyback que protege el interruptor. Rangos principales: l1#branch 120 nA -> 62.7 mA; v(sw_out) -884 mV -> 12 V; v(l_mid) 12 uV -> 6.27 V.
Show raw data table (2088 rows)
Index   time            v(sw_ctrl)      v(sw_out)       v(l_mid)        v(vcc)          l1#branch
0	0.000000e+00	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
1	1.000000e-08	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
2	2.000000e-08	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
3	4.000000e-08	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
4	8.000000e-08	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
5	1.600000e-07	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
6	3.200000e-07	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
7	6.400000e-07	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
8	1.280000e-06	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
9	2.280000e-06	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
10	3.280000e-06	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
11	4.280000e-06	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
12	5.280000e-06	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
13	6.280000e-06	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
14	7.280000e-06	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
15	8.280000e-06	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
16	9.280000e-06	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
17	1.028000e-05	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
18	1.128000e-05	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
19	1.228000e-05	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
20	1.328000e-05	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
21	1.428000e-05	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
22	1.528000e-05	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
23	1.628000e-05	0.000000e+00	1.199996e-05	1.199996e-05	1.200000e+01	1.199996e-07
... (2064 more rows) ...

Errores comunes y cómo evitarlos

  • Invertir la polaridad del diodo: Colocar el diodo con el ánodo apuntando al nodo de tensión positiva crea un cortocircuito directo a tierra cuando el interruptor está cerrado. Esto destruirá el diodo o activará la protección contra sobrecorriente de la fuente de alimentación. Asegúrate siempre de que el cátodo apunte hacia el potencial más alto.
  • Usar un diodo con una capacidad de corriente inadecuada: El diodo flyback debe manejar de forma segura una corriente directa pico igual a la corriente en estado estacionario del inductor justo antes de la conmutación. Utiliza siempre diodos rectificadores, Schottky o de recuperación rápida con la clasificación adecuada.
  • Omitir la resistencia en serie: Conectar un inductor puro directamente a una fuente de CC de alta corriente actúa casi como un cortocircuito una vez que el campo magnético está completamente establecido. Incluye siempre una resistencia en serie limitadora de corriente, o asegúrate de que el inductor (como la bobina de un relé) tenga suficiente resistencia interna de CC.

Solución de problemas

  • Síntoma: La fuente de alimentación se apaga o su LED de límite de corriente se enciende inmediatamente al cerrar el interruptor.
    • Causa: El diodo flyback está instalado al revés, creando un cortocircuito desde la fuente de alimentación a tierra.
    • Solución: Desconecta la alimentación inmediatamente y dale la vuelta al diodo para que su extremo con la franja (cátodo) apunte hacia el nodo del interruptor.
  • Síntoma: Sigue apareciendo un pico de tensión masivo en el osciloscopio incluso con el diodo supuestamente instalado.
    • Causa: El diodo puede haberse abierto debido a un evento previo de sobrecorriente, o la conexión de la protoboard está suelta.
    • Solución: Verifica la continuidad del diodo usando el modo de diodo de un multímetro, y comprueba el asentamiento físico de los pines en los nodos del interruptor y de tierra.
  • Síntoma: La traza del osciloscopio muestra oscilaciones de alta frecuencia (ringing) en lugar de una limitación limpia.
    • Causa: Capacitancia parásita en el interruptor, el cableado o las sondas del osciloscopio que interactúan con el inductor.
    • Solución: Asegúrate de que la sonda del osciloscopio esté correctamente compensada (se recomienda el modo x10 para picos de alta tensión) y mantén los cables de tierra lo más cortos físicamente posible.

Posibles mejoras y extensiones

  • Conmutación automatizada con un MOSFET: Reemplaza el interruptor mecánico con un MOSFET de canal N accionado por un generador de ondas cuadradas (configurado como un interruptor de lado bajo) para observar la limitación repetitiva en el osciloscopio en tiempo real.
  • Descarga rápida usando un diodo Zener: Añade un diodo Zener con la clasificación adecuada en serie con el diodo flyback estándar (ánodo conectado a ánodo). Esto permite que el inductor descargue su energía mucho más rápido limitando la tensión a un nivel más alto, pero estrictamente controlado.

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 caso práctico descrito en el texto?




Pregunta 2: ¿Cuál es el objetivo principal del caso práctico descrito en el texto?




Pregunta 3: ¿Cuál es el objetivo principal del caso práctico descrito en el texto?




Pregunta 4: ¿Cuál es el objetivo principal del caso práctico descrito en el texto?




Pregunta 5: ¿Cuál es el objetivo principal del caso práctico descrito en el texto?




Pregunta 6: ¿Cuál es el objetivo principal del caso práctico descrito en el texto?




Pregunta 7: ¿Cuál es el objetivo principal del caso práctico descrito en el texto?




Pregunta 8: ¿Cuál es el objetivo principal del caso práctico descrito en el texto?




Pregunta 9: ¿Cuál es el objetivo principal del caso práctico descrito en el texto?




Pregunta 10: ¿Cuál es el objetivo principal del caso práctico descrito en el texto?




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:


Caso práctico: control RUN/STOP por voz con ULX3S

Caso práctico: conmutar RUN/STOP por voz en ULX3S — hero

Objetivo y caso de uso

Qué construirás: Un detector compacto de ráfagas de actividad de voz en FPGA sobre una Radiona ULX3S (Lattice ECP5-85F) usando un micrófono MEMS I2S INMP441. Una ráfaga hablada corta y fuerte como “go” o “stop” conmuta una salida de estado de banco entre RUN y STOP con baja latencia y lógica completamente local.

Por qué importa / Casos de uso

  • Control de estado manos libres mientras sueldas, mides con puntas o sostienes piezas con ambas manos ocupadas.
  • Señalización clara en el banco: un LED para RUN, uno para STOP, más un LED de actividad que reacciona a la energía de audio detectada.
  • Indicación compartida en laboratorio sin PC, SO ni pila de red, manteniendo el tiempo de respuesta predecible y típicamente por debajo de 50–100 ms desde la ráfaga hasta el cambio de estado.
  • Entrenamiento práctico en FPGA sobre captura I2S de 24 bits, extracción de envolvente, umbralización, temporización de antirrebote/confirmación y bloqueo de eventos usando solo una pequeña fracción de los recursos del ECP5.

Resultado esperado

  • La FPGA muestrea audio I2S de 24 bits desde el INMP441, lo convierte en una envolvente de amplitud simple y marca ráfagas por encima de un umbral configurable.
  • Una ráfaga hablada corta cerca del micrófono activa una transición de estado solo después de una ventana de confirmación, reduciendo conmutaciones falsas por ruido de fondo o golpes en el banco.
  • Tres LEDs proporcionan realimentación inmediata: RUN, STOP y actividad de audio, con comportamiento de conmutación estable y un intervalo de bloqueo configurable entre eventos.
  • La simulación demuestra rechazo al silencio, detección de ráfagas, temporización de bloqueo y conmutación correcta RUN/STOP, con objetivos prácticos de ajuste como latencia de detección por debajo de 100 ms y baja carga de FPGA.

Audiencia: Estudiantes intermedios de FPGA con experiencia básica en diseño digital y herramientas de línea de comandos; Nivel: Intermedio

Arquitectura/flujo: Micrófono I2S INMP441 → receptor de reloj de bits/selección de palabra → captura de muestras de 24 bits → medición de valor absoluto/envolvente → umbral + contador de confirmación → máquina de estados de bloqueo/conmutación → LEDs RUN/STOP/audio.

Diagrama de bloques conceptual

Vista de alto nivel: qué entra, qué procesa cada bloque y qué sale del sistema.

Arquitectura funcional

Micrófono I2S INMP441

receptor de reloj de bits/selección de pa…

captura de muestras de 24 bits

medición de valor absoluto/envolvente

umbral + contador de confirmación

máquina de estados de bloqueo/conmutación

LEDs RUN/STOP/audio

Flujo conceptual de señales y responsabilidades entre bloques del dispositivo.

Ruta de validación

Código fuente

Verilator

Yosys

Implementación hardware

Resumen conceptual de las herramientas usadas para comprobar el material publicado.

Requisitos previos

Deberías sentirte cómodo con:

  • Conceptos básicos de FPGA:
  • relojes
  • lógica síncrona
  • contadores
  • máquinas de estados
  • Verilog básico:
  • módulos
  • registros y wires
  • bloques always
  • parámetros
  • Herramientas de compilación por línea de comandos en Linux
  • Programación por USB de la placa ULX3S

Software recomendado:

  • yosys
  • nextpnr-ecp5
  • ecppack
  • openFPGALoader
  • verilator

Limitación importante:

  • Este proyecto no es reconocimiento de voz.
  • Es un detector simple de eventos de voz fuerte ajustado para aproximar ráfagas tipo comando mediante reglas de umbral, duración y enfriamiento.
  • No identifica palabras habladas de forma fiable en entornos ruidosos.

Materiales

Hardware exacto

Usa exactamente:

  • Radiona ULX3S (Lattice ECP5-85F)
  • Micrófono MEMS I2S INMP441
  • LEDs de estado (integrados en la placa o externos)

Elementos adicionales

  • Cable USB para programación y alimentación de la ULX3S
  • Cables jumper para protoboard
  • Multímetro u osciloscopio opcional para comprobar señales
  • Un área razonablemente silenciosa para el ajuste inicial

Por qué este hardware encaja

  • La ULX3S ECP5-85F tiene suficiente lógica para una pequeña etapa frontal de audio sin IP del fabricante.
  • El INMP441 expone una interfaz digital estándar I2S.
  • Los LEDs proporcionan realimentación inmediata de hardware sin software adicional.

Configuración y conexión

Señales del INMP441

Pines típicos del INMP441:

  • VDD
  • GND
  • SCK o BCLK
  • WS o LRCLK
  • SD
  • L/R

El micrófono normalmente es un esclavo I2S, por lo que la FPGA debe generar:

  • reloj de bits
  • selección de palabra

Y la FPGA debe muestrear:

  • datos serie

Alimentación y niveles lógicos

El INMP441 usa lógica y alimentación de 3.3 V. Usa solo 3.3 V con el micrófono.

Resumen de conexiones

Función Pin INMP441 Nombre de señal FPGA ULX3S Dirección Notas
Alimentación VDD 3V3 Placa -> micrófono Usar solo 3.3 V
Tierra GND GND Común Se requiere tierra compartida
Reloj de bits SCK/BCLK mic_bclk FPGA -> micrófono Generado por la FPGA
Selección de palabra WS/LRCLK mic_ws FPGA -> micrófono Generada por la FPGA
Datos serie SD mic_sd Micrófono -> FPGA Muestreado por la FPGA
Selección de canal L/R GND o 3V3 Estático Selecciona un canal
LED RUN LED led_run FPGA -> LED ON cuando está en ejecución
LED STOP LED led_stop FPGA -> LED ON cuando está detenido
LED de actividad LED led_activity FPGA -> LED ON durante actividad de audio

Notas de cableado

  1. Conecta VDD a 3.3 V, no a 5 V.
  2. Conecta la tierra entre la placa y el micrófono.
  3. Fija L/R a un nivel lógico definido. En este tutorial, usa GND para seleccionar el canal izquierdo.
  4. Mantén los cables cortos.
  5. Si el cableado de tus LED es activo en bajo, inviértelo en el HDL o en las restricciones para que coincida con tu hardware.

Formato I2S elegido

Para este tutorial:

  • Reloj de entrada de FPGA: 25 MHz
  • Reloj de bits I2S: 1.5625 MHz por división entera
  • Tamaño de palabra: 32 bits por canal
  • Frecuencia de muestreo: aproximadamente 24.414 kHz porque 1.5625 MHz / 64 = 24.414 kHz

Esa frecuencia de muestreo es adecuada para un detector simple de estilo actividad de voz.


Archivos del proyecto

fpga-voice-led/
├── voice_led_top.v
├── tb_voice_led_top.v
└── ulx3s_voice_led.lpf

Módulo superior en Verilog

voice_led_top.v

Vista pública parcial del archivo validado. El código completo se muestra a miembros y en PDF/Print.

module voice_led_top(
    input  wire clk_25mhz,
    input  wire mic_sd,
    output reg  mic_bclk = 1'b0,
    output reg  mic_ws   = 1'b0,
    output wire led_run,
    output wire led_stop,
    output wire led_activity
);

    reg [3:0] bclk_div = 4'd0;
    reg       bclk_prev = 1'b0;
    reg [5:0] bit_count = 6'd0;
    reg [5:0] slot_bit_index = 6'd0;
    reg [31:0] shift_reg = 32'd0;
    reg [23:0] sample_left = 24'd0;
    reg        sample_strobe = 1'b0;

    reg [31:0] envelope = 32'd0;
    reg        activity = 1'b0;
    reg [15:0] burst_count = 16'd0;
    reg [15:0] holdoff_count = 16'd0;
    reg        run_state = 1'b0;

    wire bclk_rise;
    wire signed [23:0] signed_sample;
    wire [23:0] abs_sample;
    wire [31:0] envelope_next;

    localparam [31:0] ENV_THRESHOLD      = 32'd200000;
    localparam [15:0] BURST_MIN_SAMPLES  = 16'd1200;
    localparam [15:0] BURST_MAX_SAMPLES  = 16'd9000;
    localparam [15:0] HOLDOFF_SAMPLES    = 16'd18000;

    assign bclk_rise = (bclk_prev == 1'b0) && (mic_bclk == 1'b1);
    assign signed_sample = sample_left;
    assign abs_sample = signed_sample[23] ? (~signed_sample + 24'd1) : signed_sample;
    assign envelope_next = envelope - (envelope >> 4) + {8'd0, abs_sample};

    always @(posedge clk_25mhz) begin
        bclk_prev <= mic_bclk;

        if (bclk_div == 4'd7) begin
            bclk_div <= 4'd0;
            mic_bclk <= ~mic_bclk;
        end else begin
            bclk_div <= bclk_div + 4'd1;
        end
    end

    always @(posedge clk_25mhz) begin
        sample_strobe <= 1'b0;

        if (bclk_rise) begin
            if (bit_count == 6'd63) begin
                bit_count <= 6'd0;
// ... continúa para miembros en el código completo validado ...

🔒 Parte del código validado es premium. Con el pase de 7 días o la suscripción mensual podrás consultar el archivo completo validado.

module voice_led_top(
    input  wire clk_25mhz,
    input  wire mic_sd,
    output reg  mic_bclk = 1'b0,
    output reg  mic_ws   = 1'b0,
    output wire led_run,
    output wire led_stop,
    output wire led_activity
);

    reg [3:0] bclk_div = 4'd0;
    reg       bclk_prev = 1'b0;
    reg [5:0] bit_count = 6'd0;
    reg [5:0] slot_bit_index = 6'd0;
    reg [31:0] shift_reg = 32'd0;
    reg [23:0] sample_left = 24'd0;
    reg        sample_strobe = 1'b0;

    reg [31:0] envelope = 32'd0;
    reg        activity = 1'b0;
    reg [15:0] burst_count = 16'd0;
    reg [15:0] holdoff_count = 16'd0;
    reg        run_state = 1'b0;

    wire bclk_rise;
    wire signed [23:0] signed_sample;
    wire [23:0] abs_sample;
    wire [31:0] envelope_next;

    localparam [31:0] ENV_THRESHOLD      = 32'd200000;
    localparam [15:0] BURST_MIN_SAMPLES  = 16'd1200;
    localparam [15:0] BURST_MAX_SAMPLES  = 16'd9000;
    localparam [15:0] HOLDOFF_SAMPLES    = 16'd18000;

    assign bclk_rise = (bclk_prev == 1'b0) && (mic_bclk == 1'b1);
    assign signed_sample = sample_left;
    assign abs_sample = signed_sample[23] ? (~signed_sample + 24'd1) : signed_sample;
    assign envelope_next = envelope - (envelope >> 4) + {8'd0, abs_sample};

    always @(posedge clk_25mhz) begin
        bclk_prev <= mic_bclk;

        if (bclk_div == 4'd7) begin
            bclk_div <= 4'd0;
            mic_bclk <= ~mic_bclk;
        end else begin
            bclk_div <= bclk_div + 4'd1;
        end
    end

    always @(posedge clk_25mhz) begin
        sample_strobe <= 1'b0;

        if (bclk_rise) begin
            if (bit_count == 6'd63) begin
                bit_count <= 6'd0;
            end else begin
                bit_count <= bit_count + 6'd1;
            end

            if (bit_count == 6'd31) begin
                mic_ws <= 1'b1;
            end else if (bit_count == 6'd63) begin
                mic_ws <= 1'b0;
            end

            if (bit_count == 6'd31 || bit_count == 6'd63) begin
                slot_bit_index <= 6'd0;
            end else begin
                slot_bit_index <= slot_bit_index + 6'd1;
            end

            shift_reg <= {shift_reg[30:0], mic_sd};

            if (mic_ws == 1'b0 && slot_bit_index == 6'd23) begin
                sample_left <= {shift_reg[22:0], mic_sd};
                sample_strobe <= 1'b1;
            end
        end
    end

    always @(posedge clk_25mhz) begin
        if (sample_strobe) begin
            envelope <= envelope_next;
            activity <= (envelope_next > ENV_THRESHOLD);

            if (holdoff_count != 16'd0) begin
                holdoff_count <= holdoff_count - 16'd1;
                burst_count <= 16'd0;
            end else begin
                if (envelope_next > ENV_THRESHOLD) begin
                    if (burst_count != 16'hFFFF) begin
                        burst_count <= burst_count + 16'd1;
                    end
                end else begin
                    if (burst_count >= BURST_MIN_SAMPLES &&
                        burst_count <= BURST_MAX_SAMPLES) begin
                        run_state <= ~run_state;
                        holdoff_count <= HOLDOFF_SAMPLES;
                    end
                    burst_count <= 16'd0;
                end
            end
        end
    end

    assign led_run = run_state;
    assign led_stop = ~run_state;
    assign led_activity = activity;

endmodule


Banco de pruebas

tb_voice_led_top.v

Vista pública parcial del archivo validado. El código completo se muestra a miembros y en PDF/Print.

`timescale 1ns/1ps

module tb_voice_led_top;

    reg clk_25mhz = 1'b0;
    reg mic_sd = 1'b0;
    wire mic_bclk;
    wire mic_ws;
    wire led_run;
    wire led_stop;
    wire led_activity;

    integer i;
    integer k;
    reg [31:0] slot_word;

    voice_led_top dut (
        .clk_25mhz(clk_25mhz),
        .mic_sd(mic_sd),
        .mic_bclk(mic_bclk),
        .mic_ws(mic_ws),
        .led_run(led_run),
        .led_stop(led_stop),
        .led_activity(led_activity)
    );

    always #20 clk_25mhz = ~clk_25mhz;

    task send_i2s_left_sample;
        input [23:0] s;
        begin
            while (mic_ws !== 1'b0) begin
                @(posedge mic_bclk);
            end

            slot_word = {s, 8'h00};

            for (i = 31; i >= 0; i = i - 1) begin
                @(negedge mic_bclk);
                mic_sd = slot_word[i];
            end

            while (mic_ws !== 1'b1) begin
                @(posedge mic_bclk);
            end

            for (i = 31; i >= 0; i = i - 1) begin
                @(negedge mic_bclk);
                mic_sd = 1'b0;
            end
        end
// ... continúa para miembros en el código completo validado ...

🔒 Parte del código validado es premium. Con el pase de 7 días o la suscripción mensual podrás consultar el archivo completo validado.

`timescale 1ns/1ps

module tb_voice_led_top;

    reg clk_25mhz = 1'b0;
    reg mic_sd = 1'b0;
    wire mic_bclk;
    wire mic_ws;
    wire led_run;
    wire led_stop;
    wire led_activity;

    integer i;
    integer k;
    reg [31:0] slot_word;

    voice_led_top dut (
        .clk_25mhz(clk_25mhz),
        .mic_sd(mic_sd),
        .mic_bclk(mic_bclk),
        .mic_ws(mic_ws),
        .led_run(led_run),
        .led_stop(led_stop),
        .led_activity(led_activity)
    );

    always #20 clk_25mhz = ~clk_25mhz;

    task send_i2s_left_sample;
        input [23:0] s;
        begin
            while (mic_ws !== 1'b0) begin
                @(posedge mic_bclk);
            end

            slot_word = {s, 8'h00};

            for (i = 31; i >= 0; i = i - 1) begin
                @(negedge mic_bclk);
                mic_sd = slot_word[i];
            end

            while (mic_ws !== 1'b1) begin
                @(posedge mic_bclk);
            end

            for (i = 31; i >= 0; i = i - 1) begin
                @(negedge mic_bclk);
                mic_sd = 1'b0;
            end
        end
    endtask

    task send_silence;
        input integer n;
        begin
            for (k = 0; k < n; k = k + 1) begin
                send_i2s_left_sample(24'd0);
            end
        end
    endtask

    task send_burst;
        input integer n;
        begin
            for (k = 0; k < n; k = k + 1) begin
                if (k[0]) begin
                    send_i2s_left_sample(24'h180000);
                end else begin
                    send_i2s_left_sample(24'hE80000);
                end
            end
        end
    endtask

    initial begin
        $display("Starting simulation");

        send_silence(3000);
        $display("Initial state: led_run=%0d led_stop=%0d led_activity=%0d",
                 led_run, led_stop, led_activity);

        send_burst(2000);
        send_silence(3000);
        $display("After burst 1: led_run=%0d led_stop=%0d led_activity=%0d",
                 led_run, led_stop, led_activity);

        send_burst(1500);
        send_silence(4000);
        $display("After burst 2 during holdoff: led_run=%0d led_stop=%0d led_activity=%0d",
                 led_run, led_stop, led_activity);

        send_silence(20000);
        send_burst(2000);
        send_silence(3000);
        $display("After burst 3: led_run=%0d led_stop=%0d led_activity=%0d",
                 led_run, led_stop, led_activity);

        $finish;
    end

endmodule


Restricciones

ulx3s_voice_led.lpf

Usa ubicaciones de pines FPGA que coincidan con la revisión exacta de tu placa ULX3S y con los pines del encabezado externo que realmente cableaste. El ejemplo siguiente está sintácticamente completo, pero los valores SITE deben coincidir con el cableado físico de tu placa antes de programar el hardware.

BLOCK RESETPATHS;
BLOCK ASYNCPATHS;

FREQUENCY PORT "clk_25mhz" 25.0 MHz;

LOCATE COMP "clk_25mhz" SITE "G2";
IOBUF PORT "clk_25mhz" IO_TYPE=LVCMOS33;

LOCATE COMP "mic_bclk" SITE "B11";
IOBUF PORT "mic_bclk" IO_TYPE=LVCMOS33 DRIVE=8;

LOCATE COMP "mic_ws" SITE "A10";
IOBUF PORT "mic_ws" IO_TYPE=LVCMOS33 DRIVE=8;

LOCATE COMP "mic_sd" SITE "B10";
IOBUF PORT "mic_sd" IO_TYPE=LVCMOS33;

LOCATE COMP "led_run" SITE "K4";
IOBUF PORT "led_run" IO_TYPE=LVCMOS33 DRIVE=8;

LOCATE COMP "led_stop" SITE "M3";
IOBUF PORT "led_stop" IO_TYPE=LVCMOS33 DRIVE=8;

LOCATE COMP "led_activity" SITE "J3";
IOBUF PORT "led_activity" IO_TYPE=LVCMOS33 DRIVE=8;

Compilar y ejecutar

Crea primero un directorio de compilación:

mkdir -p build

1) Analizar el diseño

verilator --lint-only -Wall -Wno-DECLFILENAME voice_led_top.v tb_voice_led_top.v

2) Ejecutar el banco de pruebas

verilator -Wall -Wno-DECLFILENAME --binary tb_voice_led_top.v voice_led_top.v
./obj_dir/Vtb_voice_led_top

3) Sintetizar para ECP5

yosys -p "read_verilog voice_led_top.v; synth_ecp5 -top voice_led_top -json build/voice_led_top.json"

4) Colocar y rutear

nextpnr-ecp5 \
  --85k \
  --json build/voice_led_top.json \
  --lpf ulx3s_voice_led.lpf \
  --textcfg build/voice_led_top.config

5) Empaquetar el bitstream

ecppack build/voice_led_top.config build/voice_led_top.bit

6) Programar la placa

openFPGALoader -b ulx3s build/voice_led_top.bit

Método de validación

Este proyecto solo hace una afirmación limitada sobre el comportamiento del hardware: que el diseño puede detectar una ráfaga de audio fuerte y corta y conmutar LEDs bajo ajustes adecuados de umbral y temporización.

Procedimiento de validación

Usa este método para validar la afirmación:

  1. Validación estática
  2. Ejecuta el lint de Verilator.
  3. Evidencia: no hay errores de sintaxis ni de elaboración.

  4. Validación de comportamiento

  5. Ejecuta el banco de pruebas proporcionado.
  6. Evidencia:

    • el arranque muestra led_run=0 led_stop=1
    • la primera ráfaga válida conmuta a led_run=1 led_stop=0
    • la segunda ráfaga durante el bloqueo no conmuta
    • la tercera ráfaga después del bloqueo vuelve a conmutar
  7. Validación de implementación

  8. Ejecuta Yosys, nextpnr-ecp5 y ecppack.
  9. Evidencia:

    • se crea la netlist JSON
    • la colocación y el ruteo se completan
    • el bitstream se genera correctamente
  10. Validación en hardware

  11. Programa la ULX3S.
  12. Pronuncia una ráfaga corta y fuerte cerca del micrófono.
  13. Evidencia:
    • led_activity parpadea durante el habla
    • led_run y led_stop conmutan solo después de una ráfaga con duración aceptable
    • ráfagas repetidas inmediatas dentro del bloqueo no conmutan el estado

Evidencia esperada

Patrón esperado de salida de consola en simulación:

  • Initial state: led_run=0 led_stop=1
  • After burst 1: led_run=1 led_stop=0
  • After burst 2 during holdoff: led_run=1 led_stop=0
  • After burst 3: led_run=0 led_stop=1

La evidencia en hardware debe ser un comportamiento visual directo de los LEDs coherente con la lógica anterior.


Puesta en marcha del hardware

Prueba A: confirmar relojes generados

Si tienes un osciloscopio o analizador lógico:

  • Comprueba que mic_bclk esté activo
  • Comprueba que mic_ws conmute más lentamente que mic_bclk

Prueba B: línea base en silencio

Con una sala silenciosa:

  • led_activity debería permanecer mayormente en OFF
  • Los LEDs de estado RUN/STOP deberían mantenerse estables

Prueba C: ráfaga hablada corta

Habla cerca del micrófono:

  • led_activity debería parpadear durante la ráfaga
  • una ráfaga válida debería conmutar RUN/STOP

Prueba D: comportamiento de bloqueo

Habla de nuevo inmediatamente:

  • led_activity puede parpadear
  • RUN/STOP no debería conmutar durante el bloqueo

Prueba E: comportamiento tras el bloqueo

Espera aproximadamente un segundo y luego habla de nuevo:

  • el estado debería volver a conmutar

Ajuste

Si el detector es demasiado sensible o no lo suficiente, ajusta estas constantes en voice_led_top.v:

  • ENV_THRESHOLD
  • aumenta si el ruido activa la actividad
  • disminuye si no se detecta el habla
  • BURST_MIN_SAMPLES
  • disminuye si se ignoran ráfagas cortas
  • aumenta si golpes o clics activan conmutaciones
  • BURST_MAX_SAMPLES
  • disminuye si sonidos largos de fondo activan conmutaciones
  • aumenta si tus ráfagas habladas son más largas
  • HOLDOFF_SAMPLES
  • aumenta para suprimir conmutaciones repetidas
  • disminuye si la interfaz se siente demasiado lenta

Nota educativa de validación

Antes de la publicación, este caso superó la compuerta automatizada de validación de Prometeo con estado PASS. Para este perfil FPGA/ULX3S, los bloques Verilog sintetizables se comprobaron con Yosys (read_verilog) y el conjunto de diseño/pruebas Verilog se analizó con Verilator. El validador también comprobó la estructura de los bloques de código, opciones de comandos ASCII seguras para copiar/pegar, pilas no compatibles y la disponibilidad de la cadena de herramientas ULX3S/ECP5 (yosys, nextpnr-ecp5, ecppack, openFPGALoader).

Esta validación confirma la sintaxis y la compatibilidad de herramientas para el código publicado, pero no sustituye las pruebas físicas en tu revisión exacta de placa ULX3S, archivo de restricciones de pines y cableado real.

Nota educativa de seguridad

Nota educativa de seguridad

Este proyecto es un experimento educativo de audio FPGA de bajo voltaje. No lo uses para controlar maquinaria peligrosa, tensión de red, calentadores, motores, dispositivos médicos ni ningún sistema crítico para la seguridad. Los detectores de voz/ruido pueden activarse falsamente por habla, golpes, ventiladores, música u otros sonidos. Si más adelante añades relés o controladores de potencia, usa aislamiento y circuitería de control adecuados.


Solución de problemas

Ningún LED responde

Comprueba:

  1. Que la placa se programó correctamente
  2. Que clk_25mhz coincide con el pin de reloj real de la ULX3S
  3. Que los pines de los LED coinciden con tu hardware
  4. Que el LPF coincide con la revisión de tu placa

led_activity siempre en OFF

Causas posibles:

  • micrófono sin alimentación
  • cableado incorrecto de mic_sd
  • falta mic_bclk o mic_ws
  • umbral demasiado alto

Acciones:

  • verifica 3.3 V en el micrófono
  • verifica tierra común
  • mide mic_bclk y mic_ws
  • baja ENV_THRESHOLD

led_activity siempre en ON

Causas posibles:

  • mic_sd flotante
  • mala conexión a tierra
  • umbral demasiado bajo
  • temporización I2S incorrecta

Acciones:

  • acorta los cables
  • asegura la tierra
  • sube ENV_THRESHOLD
  • confirma que L/R está fijado a un nivel válido

La actividad funciona, pero RUN/STOP nunca conmuta

Esto normalmente significa que la temporización de la ráfaga está fuera de la ventana aceptada.

Acciones:

  • baja BURST_MIN_SAMPLES
  • sube BURST_MAX_SAMPLES
  • prueba ráfagas habladas más cortas y consistentes

nextpnr-ecp5 falla

Normalmente esto es un problema de restricciones.

Acciones:

  • verifica el mapa de pines de la ULX3S
  • mueve las señales a pines de E/S válidos
  • actualiza el LPF a la revisión real de tu placa y a los pines de cabecera elegidos

Mejoras

Posibles extensiones:

  1. Añadir una entrada de anulación con pulsador
  2. Añadir salida de depuración UART para la envolvente y cambios de estado
  3. Mejorar el detector de envolvente con promedio o lógica de pico-decaimiento
  4. Detectar diferentes patrones de ráfaga en lugar de conmutación simple
  5. Añadir un controlador con transistor o MOSFET para indicadores de mayor tamaño y bajo voltaje

No conectes pines de FPGA directamente a cargas de alta corriente.


Lista de verificación final

  • [ ] Usé una Radiona ULX3S (Lattice ECP5-85F) con un micrófono MEMS I2S INMP441
  • [ ] El micrófono está alimentado con 3.3 V
  • [ ] Las tierras están compartidas
  • [ ] L/R está fijado a un nivel lógico definido
  • [ ] Mi LPF coincide con mi cableado real de la ULX3S
  • [ ] El lint de Verilator se completó sin errores fatales
  • [ ] El banco de pruebas mostró el comportamiento de conmutación esperado
  • [ ] La síntesis con Yosys se completó correctamente
  • [ ] nextpnr-ecp5 se completó correctamente para --85k
  • [ ] El bitstream se programó con openFPGALoader -b ulx3s
  • [ ] led_activity responde al habla cercana o a ráfagas de sonido fuerte
  • [ ] led_run y led_stop conmutan solo con ráfagas válidas
  • [ ] Ajusté las constantes de umbral y temporización para mi configuración

Si todos los elementos se cumplen, tienes un proyecto práctico de FPGA ULX3S para captura de audio I2S y control simple de LED activado por ráfagas.

        <div class="amazon-affiliate">
          <p><strong>Encuentra este producto y/o libros sobre este tema en Amazon</strong></p>
          <p><a class="amazon-affiliate-btn" href="https://amzn.to/4mt8r4C" target="_blank" rel="nofollow sponsored noopener">Ir a Amazon</a></p>
          <p class="amazon-affiliate-disclaimer">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.</p>
        </div>

Quiz rápido

Pregunta 1: ¿Qué dispositivo se utiliza como micrófono en este proyecto?




Pregunta 2: ¿Cuál es la placa FPGA principal mencionada en el texto?




Pregunta 3: ¿Cuál es el propósito principal del detector de ráfagas de voz?




Pregunta 4: ¿Qué ventaja ofrece este sistema al trabajar en el banco de pruebas?




Pregunta 5: ¿Cuál es el tiempo de respuesta típico desde la ráfaga de voz hasta el cambio de estado?




Pregunta 6: ¿Qué tipo de captura de audio realiza la FPGA desde el micrófono INMP441?




Pregunta 7: ¿Qué elementos visuales se utilizan para la señalización clara en el banco?




Pregunta 8: ¿Qué característica destaca del sistema en cuanto a su dependencia de otros equipos?




Pregunta 9: ¿Qué procesamiento realiza la FPGA con la señal de audio capturada?




Pregunta 10: ¿Cuántos recursos de la FPGA ECP5 se utilizan para este proyecto?




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: