Caso práctico: Comprendiendo la Alta Impedancia y el Efecto Fantasma

Prototipo de Comprendiendo la Alta Impedancia y el Efecto Fantasma (Maker Style)

Nivel: Básico. Objetivo: Observar los efectos de la capacitancia parásita y el ruido en una entrada digital con una resistencia pull-down débil.

Objetivo y caso de uso

En este caso práctico, construirás un circuito inversor lógico accionado por un pulsador, pero utilizando intencionalmente una resistencia pull-down de valor extremadamente alto (10 MΩ) para crear un estado de entrada «débil».

  • Demostrar Alta Impedancia: Entender por qué las entradas digitales no deben dejarse flotantes o con referencias débiles.
  • Visualizar Efectos Parásitos: Ver cómo la capacitancia parásita de la protoboard crea retardos no deseados (constantes de tiempo RC).
  • Susceptibilidad al Ruido: Observar cómo reacciona el circuito a la interferencia electromagnética (EMI) de tu mano o al zumbido de la red eléctrica.

Resultado esperado:
* Cuando se suelta el botón, el LED no cambiará de estado instantáneamente.
* El LED puede parpadear cuando mueves la mano cerca del cableado debido al ruido inducido.
* El voltaje de entrada mostrará un decaimiento lento en lugar de una caída brusca a 0 V.

Público objetivo: Principiantes en electrónica digital y puertas lógicas.

Materiales

  • U1: 74HC04 (CI Inversor Séxtuple), función: Inversión lógica
  • SW1: Interruptor de pulsador (NA), función: Disparador de señal de entrada
  • R_PD: Resistencia de 10 MΩ, función: Pull-down débil para IN_WEAK (Fallo de diseño intencional)
  • R_LED: Resistencia de 330 Ω, función: Limitación de corriente para la salida
  • D1: LED rojo, función: Indicador de estado lógico
  • V1: Fuente de alimentación de 5 V DC
  • C_Parasitic: (Interno/Protoboard), aprox 10pF, función: capacitancia parásita (componente invisible)

Pin-out del 74HC04

Chip Seleccionado: 74HC04 (Inversor Séxtuple)

Pin Nombre Función Lógica Conexión en este caso
1 1 A Entrada Conectado a IN_WEAK
2 1Y Salida Conectado a OUT
7 GND Tierra Conectado a 0 (GND)
14 VCC Alimentación Conectado a VCC (+5 V)

Guía de conexionado

Construye el circuito siguiendo estas conexiones de nodos:

  • V1 se conecta entre el nodo VCC y el nodo 0.
  • U1 (Pin 14) se conecta a VCC.
  • U1 (Pin 7) se conecta a 0.
  • SW1 se conecta entre el nodo VCC y el nodo IN_WEAK.
  • R_PD (10 MΩ) se conecta entre el nodo IN_WEAK y el nodo 0.
  • U1 (Pin 1) se conecta al nodo IN_WEAK.
  • U1 (Pin 2) se conecta al nodo OUT.
  • R_LED se conecta entre el nodo OUT y el nodo LED_ANODE.
  • D1 se conecta entre el nodo LED_ANODE (Ánodo) y el nodo 0 (Cátodo).

Nota: Dado que este es un inversor, cuando IN_WEAK está en Alto (Botón presionado), OUT está en Bajo (LED Apagado). Cuando IN_WEAK está en Bajo (Botón soltado), OUT está en Alto (LED Encendido).

Diagrama de bloques conceptual

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

Esquemático

Title: Practical case: Understanding High Impedance and Ghosting

(Input Stage: High Impedance)                    (Logic Stage)                    (Output Stage)

[ VCC ]                                          [ VCC ]
   |                                                |
   v                                                v
[ SW1: Button ] --(Node: IN_WEAK)-------------> [ U1: 74HC04 ] --(Node: OUT)--> [ R_LED: 330R ] --> [ D1: LED ] --> GND
                       |                            ^
                       |                            |
                       +--> [ R_PD: 10M ] --> GND   |
                       |                          [ GND ]
                       |
                       +--> [ C_Parasitic ] -> GND

--------------------------------------------------------------------------------
Key:
-->  : Signal/Current Flow
[ ]  : Component Block
IN_WEAK : The node susceptible to "Ghosting" due to weak pull-down (10M)
          struggling to discharge C_Parasitic quickly.
Esquema Eléctrico

Tabla de verdad (Puerta NOT estándar)

Entrada (IN_WEAK) Salida (OUT) Estado del LED
Bajo (0 V) Alto (5 V) ENCENDIDO
Alto (5 V) Bajo (0 V) APAGADO

Mediciones y pruebas

  1. Prueba estática: Presiona y mantén SW1. El LED debería APAGARSE. Suelta SW1. El LED debería ENCENDERSE.
  2. La prueba «Fantasma»: Con SW1 soltado (LED ENCENDIDO), mueve tu mano rápidamente cerca del cable IN_WEAK sin tocarlo. ¿Parpadea el LED?
  3. Medición de decaimiento: Conecta un multímetro (u osciloscopio si está disponible) a IN_WEAK. Presiona SW1 (lee 5 V). Suelta SW1 y observa la caída de voltaje. Nota que tarda una fracción de segundo en estabilizarse a 0 V, a diferencia de un circuito estándar.

Netlist SPICE y simulación

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

* Practical case: Understanding High Impedance and Ghosting
.width out=256
* This circuit demonstrates the effect of a weak pull-down resistor and 
* parasitic capacitance on a CMOS input node.

* --- Power Supply ---
* V1 connects between node VCC and node 0
V1 VCC 0 DC 5

* --- Input Stimulus (Button SW1) ---
* Modeled as a voltage-controlled switch to simulate physical button press.
* Control Source V_BTN_CTRL simulates the user's finger.
* Timing: Wait 100us, Press for 300us, Release.
V_BTN_CTRL CTRL 0 PULSE(0 5 100u 1u 1u 300u 1m)

* SW1 connects between node VCC and node IN_WEAK
* When CTRL is High (5V), Switch is ON (Low Resistance).
S1 VCC IN_WEAK CTRL 0 SW_IDEAL

* --- Input Network ---
* ... (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: Understanding High Impedance and Ghosting
.width out=256
* This circuit demonstrates the effect of a weak pull-down resistor and 
* parasitic capacitance on a CMOS input node.

* --- Power Supply ---
* V1 connects between node VCC and node 0
V1 VCC 0 DC 5

* --- Input Stimulus (Button SW1) ---
* Modeled as a voltage-controlled switch to simulate physical button press.
* Control Source V_BTN_CTRL simulates the user's finger.
* Timing: Wait 100us, Press for 300us, Release.
V_BTN_CTRL CTRL 0 PULSE(0 5 100u 1u 1u 300u 1m)

* SW1 connects between node VCC and node IN_WEAK
* When CTRL is High (5V), Switch is ON (Low Resistance).
S1 VCC IN_WEAK CTRL 0 SW_IDEAL

* --- Input Network ---
* R_PD connects between node IN_WEAK and node 0
* Value is 10 Megohms (Weak pull-down)
R_PD IN_WEAK 0 10Meg

* C_Parasitic (Internal/Breadboard) on node IN_WEAK
* Represents stray capacitance causing RC delay with high-Z R_PD
C_Parasitic IN_WEAK 0 10p

* --- Logic IC U1: 74HC04 (Hex Inverter) ---
* Mapping: Pin 1=IN_WEAK, Pin 2=OUT, Pin 7=0(GND), Pin 14=VCC
* We model one gate of the hex inverter.
XU1 IN_WEAK OUT 0 VCC 74HC04_INV

* --- Output Network ---
* R_LED connects between node OUT and node LED_ANODE
R_LED OUT LED_ANODE 330

* D1 connects between node LED_ANODE (Anode) and node 0 (Cathode)
D1 LED_ANODE 0 LED_RED

* --- Models ---
* Switch Model: Threshold 2.5V, Low On-Resistance, High Off-Resistance
.model SW_IDEAL sw vt=2.5 vh=0 ron=1 roff=1G

* LED Model: Generic Red LED
.model LED_RED D (IS=1e-14 N=2 RS=10 BV=5 IBV=10u CJO=10p)

* --- Subcircuits ---
* 74HC04 Inverter Behavioral Model
* Pins: 1=Input, 2=Output, 7=GND, 14=VCC
.subckt 74HC04_INV 1 2 7 14
* Continuous Sigmoid function for robust convergence.
* Logic Threshold set to VCC/2.
* Output is inverted: High Input -> Low Output.
B_INV 2 7 V = V(14) * (1 / (1 + exp(20 * (V(1) - V(14)/2))))
.ends

* --- Simulation Directives ---
.op
* Transient analysis: 1us step, 1ms duration to capture pulse and decay
.tran 1u 1ms

* --- Output Printing ---
* Monitor Input, Output, and Control signal
.print tran V(IN_WEAK) V(OUT) V(LED_ANODE) V(CTRL)

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)

Análisis: The simulation correctly shows the inverter logic. Initially (0s-100us), IN_WEAK is near 0V and OUT is 5V (LED ON). When the button is pressed (100us-400us), IN_WEAK rises to 5V and OUT drops to ~0V (LED OFF). After release (400us+), IN_WEAK decays slowly due to the RC time constant (10MΩ * 10pF), demonstrating the ‘ghosting’ or slow turn-off effect intended by the lesson.
Show raw data table (1053 rows)
Index   time            v(in_weak)      v(out)          v(led_anode)    v(ctrl)
0	0.000000e+00	4.950495e-02	5.000000e+00	1.536792e+00	0.000000e+00
1	1.000000e-08	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
2	2.000000e-08	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
3	4.000000e-08	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
4	8.000000e-08	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
5	1.600000e-07	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
6	3.200000e-07	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
7	6.400000e-07	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
8	1.280000e-06	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
9	2.280000e-06	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
10	3.280000e-06	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
11	4.280000e-06	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
12	5.280000e-06	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
13	6.280000e-06	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
14	7.280000e-06	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
15	8.280000e-06	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
16	9.280000e-06	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
17	1.028000e-05	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
18	1.128000e-05	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
19	1.228000e-05	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
20	1.328000e-05	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
21	1.428000e-05	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
22	1.528000e-05	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
23	1.628000e-05	4.950495e-02	5.000000e+00	1.536791e+00	0.000000e+00
... (1029 more rows) ...

Errores comunes y cómo evitarlos

  1. Confundir valores de resistencias: Es fácil confundir 10 MΩ (Marrón-Negro-Azul) con 10 kΩ (Marrón-Negro-Naranja). Asegúrate de usar el rango de Mega-ohmios para ver el efecto.
  2. Polaridad del LED: Conectar el LED al revés resultará en que no haya luz en absoluto. Asegúrate de que la pata larga (Ánodo) mire hacia la resistencia y la pata corta (Cátodo) mire hacia Tierra.
  3. Entradas flotantes: Dejar entradas no utilizadas en el 74HC04 flotando puede causar oscilación. Conecta las entradas no utilizadas (Pines 3, 5, 9, 11, 13) a GND si el chip se comporta de manera errática.

Solución de problemas

  • Síntoma: El LED está siempre ENCENDIDO y no se APAGA cuando se presiona el botón.
    • Causa: El botón podría no estar haciendo buen contacto, o R_PD es demasiado pequeña (improbable aquí) o está mal colocada.
    • Solución: Verifica la continuidad de SW1.
  • Síntoma: El LED está siempre APAGADO.
    • Causa: Lógica invertida incorrectamente o problema de alimentación.
    • Solución: Verifica VCC en el Pin 14. Recuerda, para una puerta NOT, si la Entrada es Alta (o flota en Alto), la Salida es Baja (LED Apagado).
  • Síntoma: El circuito funciona pero reacciona muy lentamente.
    • Causa: Este es el comportamiento intencionado de este caso específico debido a RPD = 10 MΩ.
    • Solución: Procede a la sección de Diagnóstico a continuación.

Diagnóstico y solución

🕵️ Ver Diagnóstico y Solución (Clic para revelar)

### 1. El Problema (Síntoma)
«El LED parpadea cuando mueves la mano cerca de él o tarda mucho tiempo en cambiar de estado. ¿Es un poltergeist?»

### 2. La Investigación
Mide el voltaje en la entrada (**IN_WEAK**) inmediatamente después de soltar el botón. ¡No cae a 0 V instantáneamente! Decae muy lentamente según la constante de tiempo (\tau = R × C).

### 3. La Revelación
La resistencia de 10 MΩ es tan alta que la pequeña capacitancia parásita de la protoboard (aprox. 10pF a 50pF) retiene la carga de voltaje. Además, la alta impedancia crea un efecto de antena, captando el ruido de red de 50/60Hz del entorno, causando el parpadeo.

### 4. La Solución
**Reemplaza R_PD con un valor estándar de 10 kΩ (Pull-down fuerte).**
Verifica que la señal sea ahora limpia, que el LED conmute instantáneamente y que el efecto fantasma desaparezca.

Posibles mejoras y extensiones

  1. Añadir un condensador: Coloca un condensador de 1 µF en paralelo con R_PD. Calcula la constante de tiempo \tau = R × C. Crearás un temporizador de retardo de varios segundos.
  2. Schmitt Trigger: Reemplaza el 74HC04 con un 74HC14 (Inversor Schmitt Trigger). Observa cómo la histéresis hace que la conmutación del LED sea «más ágil» incluso con el voltaje de entrada decayendo lentamente.

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 de utilizar una resistencia pull-down de 10 megaohmios en este experimento?




Pregunta 2: ¿Qué componente se utiliza para realizar la función de inversión lógica en este caso práctico?




Pregunta 3: ¿Qué efecto se espera observar en el LED cuando se suelta el botón?




Pregunta 4: ¿Qué fenómeno provoca retardos no deseados en el circuito según el texto?




Pregunta 5: ¿Por qué podría parpadear el LED al mover la mano cerca del cableado?




Pregunta 6: ¿Cuál es la función de la resistencia R_LED de 330 ohmios?




Pregunta 7: ¿Qué voltaje de alimentación se utiliza típicamente para circuitos lógicos de la serie 74HC como este?




Pregunta 8: ¿Cómo se comportará el voltaje de entrada al soltar el botón?




Pregunta 9: ¿Qué concepto relacionado con las entradas digitales se busca demostrar?




Pregunta 10: ¿Qué constante de tiempo se menciona como causa de los retardos no deseados?




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: Activación de motor con doble seguridad

Prototipo de Activación de motor con doble seguridad (Maker Style)

Nivel: Básico — Implementar un sistema donde un motor solo funciona cuando se presionan dos botones simultáneamente.

Objetivo y caso de uso

En esta sesión, construirás un circuito lógico de seguridad utilizando un 74HC00 (cuádruple puerta NAND de 2 entradas) para controlar un motor de CC. El motor solo se activará cuando se accionen dos pulsadores separados al mismo tiempo, imitando un dispositivo de seguridad de «mando a dos manos».

Por qué es útil:
* Seguridad industrial: Evita que los operarios introduzcan las manos en una prensa hidráulica o máquina de corte mientras está en movimiento.
* Prevención de accidentes: Asegura que ambas manos estén ocupadas en los controles durante la fase peligrosa de la operación.
* Composición lógica: Demuestra cómo crear una función AND utilizando puertas NAND universales.

Resultado esperado:
* Estado de reposo: La salida lógica es LOW (0 V); el motor está APAGADO.
* Pulsación única: La salida lógica permanece en LOW (0 V); el motor permanece APAGADO.
* Pulsación dual: La salida lógica pasa a HIGH (5 V); el relé se activa; el motor funciona.
* Manejo de corriente: La puerta lógica excita un transistor, que conmuta de forma segura la bobina del relé de alta corriente.

Público objetivo y nivel:
Estudiantes de electrónica básica y aficionados interesados en aplicaciones de lógica digital.

Materiales

  • V1: Fuente de tensión de 5 V CC, función: Alimentación de la lógica y la bobina del relé.
  • V2: Fuente de tensión de 12 V CC, función: Alimentación del motor.
  • U1: 74HC00, función: CI de cuádruple puerta NAND de 2 entradas.
  • S1: Pulsador (normalmente abierto), función: Interruptor de seguridad de mano izquierda.
  • S2: Pulsador (normalmente abierto), función: Interruptor de seguridad de mano derecha.
  • R1: Resistencia de 10 kΩ, función: Pull-down para S1.
  • R2: Resistencia de 10 kΩ, función: Pull-down para S2.
  • R3: Resistencia de 1 kΩ, función: Limitación de corriente de base para Q1.
  • Q1: Transistor NPN 2N2222, función: Controlador del relé.
  • D1: Diodo 1N4007, función: Protección flyback para la bobina del relé.
  • K1: Relé SPDT de 5 V, función: Interfaz de conmutación de alta potencia.
  • M1: Motor de 12 V CC, función: Actuador (carga).

Pin-out del CI utilizado (74HC00)

Chip: 74HC00 (Cuádruple puerta NAND de 2 entradas)

Pin Nombre Función lógica Conexión en este caso
1 1 A Entrada A (Puerta 1) Conectado a S1 (Nodo BTN_L)
2 1B Entrada B (Puerta 1) Conectado a S2 (Nodo BTN_R)
3 1Y Salida (Puerta 1) Conectado a entradas de la Puerta 2 (Nodo NAND_INTER)
4 2 A Entrada A (Puerta 2) Conectado al Nodo NAND_INTER
5 2B Entrada B (Puerta 2) Conectado al Nodo NAND_INTER
6 2Y Salida (Puerta 2) Conectado a R3 (Nodo LOGIC_OUT)
7 GND Tierra (Masa) Conectado al Nodo 0
14 VCC Alimentación Conectado al Nodo VCC

Nota: Los pines del 8 al 13 no se utilizan y deberían conectarse idealmente a GND o VCC en una instalación permanente para evitar ruido, aunque se dejan flotantes para este ejercicio básico en protoboard.

Guía de conexionado

Construye el circuito siguiendo estas conexiones de nodos. Asegúrate de que la fuente de alimentación esté apagada mientras construyes.

Alimentación y entradas:
* V1 (+): Se conecta al nodo VCC.
* V1 (-) / V2 (-): Se conecta al nodo 0 (Tierra común).
* S1: Se conecta entre VCC y el nodo BTN_L.
* R1: Se conecta entre el nodo BTN_L y 0.
* S2: Se conecta entre VCC y el nodo BTN_R.
* R2: Se conecta entre el nodo BTN_R y 0.

Procesamiento lógico (Usando U1 como puerta AND):
* U1 (Pin 14): Se conecta a VCC.
* U1 (Pin 7): Se conecta a 0.
* U1 (Pin 1): Se conecta al nodo BTN_L.
* U1 (Pin 2): Se conecta al nodo BTN_R.
* U1 (Pin 3): Se conecta al nodo NAND_INTER (Salida de la primera etapa).
* U1 (Pin 4 y Pin 5): Ambos se conectan al nodo NAND_INTER (Configura la Puerta 2 como inversor).
* U1 (Pin 6): Se conecta al nodo LOGIC_OUT.

Etapa de salida:
* R3: Se conecta entre el nodo LOGIC_OUT y el nodo BASE.
* Q1 (Base): Se conecta al nodo BASE.
* Q1 (Emisor): Se conecta al nodo 0.
* Q1 (Colector): Se conecta al nodo RELAY_COIL_LO.
* K1 (Bobina +): Se conecta a VCC.
* K1 (Bobina -): Se conecta al nodo RELAY_COIL_LO.
* D1 (Ánodo): Se conecta al nodo RELAY_COIL_LO.
* D1 (Cátodo): Se conecta a VCC (Paralelo a la bobina, polarización inversa).

Circuito del motor:
* V2 (+): Se conecta al contacto Común de K1 (COM).
* K1 (NO – Normalmente Abierto): Se conecta al nodo MOTOR_POS.
* M1 (+): Se conecta al nodo MOTOR_POS.
* M1 (-): Se conecta al nodo 0.

Diagrama de bloques conceptual

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

Esquemático

+-----------------------------------------------------------------------------+
|                  DUAL SAFETY MOTOR ACTIVATION BLOCK DIAGRAM                 |
+-----------------------------------------------------------------------------+

1. INPUTS & LOGIC STAGE (5 V Domain)
   (Both buttons must be pressed to activate the output)

   V1(5 V)
     |
                                                                                             +---> [ S1: Left Button ] ---+--(BTN_L)------\
                                  |                \
                                  v                 \
                               [ R1: 10k ]           +---> [ U1:A (NAND) ] --(NAND_INTER)--> [ U1:B (NOT*) ] --(LOGIC_OUT)-->
                                  |                 /       (Pins 1 & 2)                      (Pins 4 & 5)          |
                                 GND               /                                         *Wired as Inverter     |
                                                  /                                                                 |
   V1(5 V)                                        /                                                                  |
     |                                          /                                                                   |
     +---> [ S2: Right Button ] --+--(BTN_R)---/                                                                    |
                                  |                                                                                 |
                                  v                                                                                 |
                               [ R2: 10k ]                                                                          |
                                  |                                                                                 |
                                 GND                                                                                |
                                                                                                                    |
+-------------------------------------------------------------------------------------------------------------------+
|                                                                                                                   |
| 2. RELAY DRIVER STAGE (5 V Domain)                                                                                 |
|    (Low-Side Transistor Switch)                                                                                   |
|                                                                                                                   |
|    (From Logic Above)                                                                                             |
|            |                                         V1(5 V)                                                       |
|            v                                           |                                                          |
|      [ R3: 1k ]                                        |                                                          |
|            |                                           v                                                          |
|            +----------------------------------> [ Q1: Base ]                                                      |
|                                                        :                                                          |
|                                             (Controls Current Flow)                                               |
|                                                        :                                                          |
|                                      +-----------------+                                                          |
|                                      |                                                                            |
|                              [ Q1: Collector ]                                                                    |
|                                      ^                                                                            |
|                                      |                                                                            |
|                             (Node: RELAY_COIL_LO)                                                                 |
|                                      |                                                                            |
|                    +-----------------+-----------------+                                                          |
|                    |                                   |                                                          |
|           [ K1: Relay Coil ]                    [ D1: Diode ]                                                     |
|           (Control Side)                        (Protection)                                                      |
|                    |                            (Anode to Coll)                                                   |
|                    |                            (Cathode to VCC)                                                  |
|                    +-----------------+-----------------+                                                          |
|                                      ^                                                                            |
|                                      |                                                                            |
|                                    V1(5 V)                                                                         |
|                                                                                                                   |
|                              [ Q1: Emitter ]                                                                      |
|                                      |                                                                            |
|                                      v                                                                            |
|                                     GND                                                                           |
|                                                                                                                   |
+-------------------------------------------------------------------------------------------------------------------+
|                                                                                                                   |
| 3. MOTOR OUTPUT STAGE (12 V Domain)                                                                                |
|    (High Power Load)                                                                                              |
|                                                                                                                   |
|                       (Magnetic Link from K1 Coil Above)                                                          |
|                                      |                                                                            |
|                                      v                                                                            |
|    V2(12 V) ---------> [ K1: Switch (COM to NO) ] --(MOTOR_POS)--> [ M1: 12 V Motor ] ----> GND                     |
|                                                                                                                   |
+-------------------------------------------------------------------------------------------------------------------+
Esquema Eléctrico

Tabla de verdad

Estamos utilizando dos puertas NAND. La primera combina las entradas; la segunda invierte el resultado para crear una función AND.

S1 (Izquierda) S2 (Derecha) U1 Pin 3 (1Y) U1 Pin 6 (2Y) Estado del motor
0 (OFF) 0 (OFF) 1 (Alto) 0 (Bajo) PARADO
0 (OFF) 1 (ON) 1 (Alto) 0 (Bajo) PARADO
1 (ON) 0 (OFF) 1 (Alto) 0 (Bajo) PARADO
1 (ON) 1 (ON) 0 (Bajo) 1 (Alto) EN MARCHA

Mediciones y pruebas

  1. Comprobación en reposo: Enciende V1. No presiones ningún botón. Mide el voltaje en LOGIC_OUT (Pin 6). Debería ser ~0 V. El motor debería estar parado.
  2. Validación de entradas: Presiona solo S1. Mide el voltaje en el Pin 1. Debería ser 5 V. El Pin 2 debería ser 0 V. La salida en el Pin 6 debe permanecer en 0 V.
  3. Prueba activa: Presiona y mantén presionados ambos botones S1 y S2 simultáneamente.
    • Escucha el «clic» del relé K1.
    • Observa a M1 girando.
    • Mide el voltaje en LOGIC_OUT; debería estar cerca de 5 V.
  4. Prueba de liberación: Suelta solo un botón. El motor debe detenerse inmediatamente.

Netlist SPICE y simulación

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

* Practical case: Logic AND gate controlling a relay and motor

* ==============================================================================
* COMPONENT MODELS
* ==============================================================================
* Generic NPN Transistor Model (2N2222)
.model 2N2222MOD NPN(Is=14.34f Xti=3 Eg=1.11 Vaf=74.03 Bf=255.9 Ne=1.307 Ise=14.34f Ikf=.2847 Xtb=1.5 Br=6.092 Nc=2 Isc=0 Ikr=0 Rc=1 Cjc=7.306p Mjc=.3416 Vjc=.75 Fc=.5 Cje=22.01p Mje=.377 Vje=.75 Tr=46.91n Tf=411.1p Itf=.6 Vtf=1.7 Xtf=3 Rb=10)

* Generic Diode Model (1N4007)
.model D1N4007 D(IS=7.02767n RS=0.0341512 N=1.80803 EG=1.11 XTI=3 BV=1000 IBV=10m CJO=10p VJ=0.7 M=0.5 FC=0.5 TT=100n)

* Ideal Switch Model for Buttons and Relay Contact
* Vt=2.5V (Logic Threshold), Ron=0.1 Ohm, Roff=10 MegOhm
.model SW_IDEAL SW(Vt=2.5 Vh=0.1 Ron=0.1 Roff=10Meg)

* ==============================================================================
* POWER SUPPLIES
* ==============================================================================
* V1: 5V DC Supply for Logic and Relay Coil
V1 VCC 0 DC 5
* ... (truncated in public view) ...

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

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

* Practical case: Logic AND gate controlling a relay and motor

* ==============================================================================
* COMPONENT MODELS
* ==============================================================================
* Generic NPN Transistor Model (2N2222)
.model 2N2222MOD NPN(Is=14.34f Xti=3 Eg=1.11 Vaf=74.03 Bf=255.9 Ne=1.307 Ise=14.34f Ikf=.2847 Xtb=1.5 Br=6.092 Nc=2 Isc=0 Ikr=0 Rc=1 Cjc=7.306p Mjc=.3416 Vjc=.75 Fc=.5 Cje=22.01p Mje=.377 Vje=.75 Tr=46.91n Tf=411.1p Itf=.6 Vtf=1.7 Xtf=3 Rb=10)

* Generic Diode Model (1N4007)
.model D1N4007 D(IS=7.02767n RS=0.0341512 N=1.80803 EG=1.11 XTI=3 BV=1000 IBV=10m CJO=10p VJ=0.7 M=0.5 FC=0.5 TT=100n)

* Ideal Switch Model for Buttons and Relay Contact
* Vt=2.5V (Logic Threshold), Ron=0.1 Ohm, Roff=10 MegOhm
.model SW_IDEAL SW(Vt=2.5 Vh=0.1 Ron=0.1 Roff=10Meg)

* ==============================================================================
* POWER SUPPLIES
* ==============================================================================
* V1: 5V DC Supply for Logic and Relay Coil
V1 VCC 0 DC 5

* V2: 12V DC Supply for Motor
V2 V_MOTOR_RAIL 0 DC 12

* ==============================================================================
* INPUT STAGE (Safety Switches)
* ==============================================================================
* Simulation of User Pressing Buttons:
* We use Pulse sources (V_ACT_...) to control ideal switches (S1, S2).
* This preserves the Pull-down resistor topology.

* S1: Left Safety Switch (Pushbutton NO)
* Connects VCC to BTN_L when pressed.
* Pulse Pattern: Period 120us, Pulse 50us (Tests asynchronous press)
V_ACT_L ACT_L 0 PULSE(0 5 10u 1u 1u 50u 120u)
S1 VCC BTN_L ACT_L 0 SW_IDEAL
R1 BTN_L 0 10k

* S2: Right Safety Switch (Pushbutton NO)
* Connects VCC to BTN_R when pressed.
* Pulse Pattern: Period 100us, Pulse 50us
V_ACT_R ACT_R 0 PULSE(0 5 20u 1u 1u 50u 100u)
S2 VCC BTN_R ACT_R 0 SW_IDEAL
R2 BTN_R 0 10k

* ==============================================================================
* LOGIC STAGE (U1: 74HC00 Quad NAND)
* ==============================================================================
* Implementing logic using Behavioral Voltage Sources (B-Sources) with continuous
* sigmoid functions for convergence robustness.
* Logic High = 5V, Logic Low = 0V. Threshold ~ 2.5V.

* U1 Gate 1: Inputs BTN_L (Pin 1), BTN_R (Pin 2) -> Output NAND_INTER (Pin 3)
* Function: NAND(BTN_L, BTN_R)
B_U1_G1 NAND_INTER 0 V=5 * (1 - ( (1/(1+exp(-20*(V(BTN_L)-2.5)))) * (1/(1+exp(-20*(V(BTN_R)-2.5)))) ))

* U1 Gate 2: Inputs NAND_INTER (Pin 4, 5) -> Output LOGIC_OUT (Pin 6)
* Function: NAND(NAND_INTER, NAND_INTER) = NOT(NAND_INTER)
* Combined Function: AND(BTN_L, BTN_R)
B_U1_G2 LOGIC_OUT 0 V=5 * (1 - ( (1/(1+exp(-20*(V(NAND_INTER)-2.5)))) * (1/(1+exp(-20*(V(NAND_INTER)-2.5)))) ))

* ==============================================================================
* OUTPUT DRIVER STAGE
* ==============================================================================
* R3: Base current limiting
R3 LOGIC_OUT BASE 1k

* Q1: 2N2222 Relay Driver
* Emitter to GND, Collector to RELAY_COIL_LO
Q1 RELAY_COIL_LO BASE 0 2N2222MOD

* ==============================================================================
* RELAY STAGE (K1)
* ==============================================================================
* Relay Coil Configuration:
* Connected between VCC and RELAY_COIL_LO.
* Modeled as Inductor + Series Resistor.
L_K1 VCC K1_NODE 10m
R_K1 K1_NODE RELAY_COIL_LO 100

* D1: Flyback Diode (1N4007)
* Anode to RELAY_COIL_LO, Cathode to VCC (Reverse biased)
D1 RELAY_COIL_LO VCC D1N4007

* Relay Contact (Switch):
* Logic: Switch closes when Coil is energized.
* Coil is energized when Q1 is ON (RELAY_COIL_LO is Low).
* Control Voltage = V(VCC) - V(RELAY_COIL_LO).
* If Q1 ON: 5V - 0.2V = 4.8V (> 2.5V Threshold) -> Switch CLOSED.
* If Q1 OFF: 5V - 5V = 0V (< 2.5V Threshold) -> Switch OPEN.
B_K1_CTRL K1_CTRL 0 V = V(VCC) - V(RELAY_COIL_LO)
S_K1 V_MOTOR_RAIL MOTOR_POS K1_CTRL 0 SW_IDEAL

* ==============================================================================
* LOAD (Motor M1)
* ==============================================================================
* M1: 12V DC Motor connected between MOTOR_POS and 0
* Modeled as Resistor + Inductor
R_M1 MOTOR_POS M1_INT 20
L_M1 M1_INT 0 5m

* ==============================================================================
* ANALYSIS COMMANDS
* ==============================================================================
.op
* Transient analysis: 1us step, 500us total time
.tran 1u 500u

* Print results for batch processing
* Inputs: BTN_L, BTN_R
* Output: MOTOR_POS (Load Voltage)
* Debug: LOGIC_OUT, RELAY_COIL_LO
.print tran V(BTN_L) V(BTN_R) V(MOTOR_POS) V(LOGIC_OUT) V(RELAY_COIL_LO) I(L_M1)

.end

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)

Análisis: The simulation confirms the AND logic behavior. The motor voltage (v(motor_pos)) only goes high (~12V) when both inputs (v(btn_l) and v(btn_r)) are high (~5V) simultaneously (e.g., around time index 60-100 and 300-340). When only one or neither is high, the motor voltage remains near zero.
Show raw data table (1202 rows)
Index   time            v(btn_l)        v(btn_r)        v(motor_pos)    v(logic_out)    v(relay_coil_lo l_m1#branch
0	0.000000e+00	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
1	1.000000e-08	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
2	2.000000e-08	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
3	4.000000e-08	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
4	8.000000e-08	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
5	1.600000e-07	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
6	3.200000e-07	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
7	6.400000e-07	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
8	1.280000e-06	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
9	2.280000e-06	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
10	3.280000e-06	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
11	4.280000e-06	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
12	5.280000e-06	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
13	6.280000e-06	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
14	7.280000e-06	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
15	8.280000e-06	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
16	9.280000e-06	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
17	1.000000e-05	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
18	1.010000e-05	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
19	1.027500e-05	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
20	1.032344e-05	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
21	1.040820e-05	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
22	1.043167e-05	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
23	1.047272e-05	4.995005e-03	4.995005e-03	2.399995e-05	-6.01853e-36	5.000000e+00	1.199998e-06
... (1178 more rows) ...

Errores comunes y cómo evitarlos

  1. Entradas flotantes: Olvidar R1 o R2 provoca que las entradas de la puerta NAND queden flotantes, a menudo leyéndose como «Alto» debido al ruido. Solución: Asegúrate de que las resistencias pull-down estén firmemente conectadas a Tierra.
  2. Falta del diodo flyback: Omitir D1 crea picos de voltaje cuando el relé se apaga, lo que puede destruir Q1 o reiniciar el chip lógico. Solución: Coloca siempre un diodo a través de la bobina del relé (Cátodo al positivo).
  3. Accionamiento directo: Intentar accionar el motor o el relé directamente desde el pin de salida del 74HC00. Solución: Utiliza siempre un transistor (Q1) para amplificar la corriente para cargas inductivas como relés.

Solución de problemas

  • El motor funciona inmediatamente al encender: Comprueba si S1 o S2 están cableados como Normalmente Cerrados en lugar de Normalmente Abiertos, o si el transistor Q1 está en cortocircuito.
  • El relé hace clic pero el motor no funciona: Comprueba la fuente de alimentación V2 y las conexiones en los contactos del relé (COM y NO).
  • La lógica funciona pero se calienta: Comprueba si VCC (Pin 14) y GND (Pin 7) están invertidos. Desconecta la alimentación inmediatamente.
  • Comportamiento errático: Añade un condensador de desacoplo de 100 nF entre el Pin 14 y el Pin 7 del CI, cerca del chip.

Posibles mejoras y extensiones

  1. Parada de emergencia: Añade un botón de enclavamiento Normalmente Cerrado (NC) en serie con la bobina del relé o la resistencia de base R3 para cortar la alimentación instantáneamente independientemente del estado lógico.
  2. Retroalimentación visual: Añade un LED verde (con una resistencia de 330 Ω) conectado al nodo LOGIC_OUT para indicar cuándo se cumple la condición de seguridad, incluso si la alimentación del motor (V2) está apagada.

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 lógico principal se utiliza para construir el circuito de seguridad?




Pregunta 3: ¿Qué función lógica se busca imitar utilizando las puertas NAND universales?




Pregunta 4: ¿Cuál es la utilidad principal de este sistema en un entorno industrial?




Pregunta 5: ¿Qué sucede con el motor si solo se presiona uno de los pulsadores?




Pregunta 6: ¿Qué voltaje se espera en la salida lógica cuando se realiza una 'Pulsación dual'?




Pregunta 7: ¿Qué estado tiene la salida lógica en el 'Estado de reposo'?




Pregunta 8: ¿Qué tipo de dispositivo de seguridad imita este circuito?




Pregunta 9: ¿Qué ocurre con el relé cuando la salida lógica pasa a HIGH?




Pregunta 10: ¿Cuál es el nivel de dificultad asignado a este proyecto según el contexto?




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: Sistema de votación con veto

Prototipo de Sistema de votación con veto (Maker Style)

Nivel: Básico
Implemente un circuito lógico donde una propuesta se aprueba solo si dos miembros votan «Sí» y un tercer miembro otorga su aprobación (sin veto), utilizando un único CI 74HC00.

Objetivo y caso de uso

En este caso práctico, construirá un circuito de toma de decisiones utilizando lógica digital. El sistema representa un comité donde el Miembro A y el Miembro B deben votar a favor para que se apruebe una moción, pero el Miembro C (el Presidente) posee una «Llave de autorización». Si el Miembro C no activa su interruptor (Lógica Baja), el voto es vetado independientemente de A y B.

  • Gobierno corporativo: Modela una junta directiva donde se necesita el apoyo de la mayoría, pero el CEO tiene la aprobación final.
  • Enclavamientos de seguridad: Representa una prensa mecánica donde dos operadores deben presionar botones (A y B), pero se debe insertar una llave de Habilitación Maestra (C) para que la máquina funcione.
  • Acceso de seguridad: Requiere dos llaves de usuario distintas más una señal de autorización del servidor central.

Resultado esperado:
* Salida Alta (LED ENCENDIDO): Solo cuando la Entrada A es Alta, la Entrada B es Alta Y la Entrada C es Alta.
* Salida Baja (LED APAGADO): Cualquier otra combinación (por ejemplo, si A o B votan «No», o si C ejerce el veto poniendo su entrada en Bajo).
* Público objetivo: Estudiantes y aficionados que aprenden a construir funciones lógicas complejas (AND de 3 entradas) utilizando puertas NAND universales.

Materiales

  • U1: 74HC00 (Cuádruple puerta NAND de 2 entradas)
  • SW1: Interruptor DIP de 3 posiciones (o tres interruptores SPST individuales), función: Entradas A, B y C
  • R1: Resistencia de 10 kΩ, función: pull-down para la Entrada A
  • R2: Resistencia de 10 kΩ, función: pull-down para la Entrada B
  • R3: Resistencia de 10 kΩ, función: pull-down para la Entrada C
  • R4: Resistencia de 330 Ω, función: limitación de corriente del LED
  • D1: LED rojo, función: Indicador de salida lógica
  • V1: Fuente de alimentación de 5 V CC

Pin-out del CI utilizado

Chip: 74HC00 (Cuádruple NAND de 2 entradas)
Este proyecto utiliza las cuatro puertas dentro del chip para crear una función AND de 3 entradas (Y = A · B · C).

Pin Nombre Función lógica Conexión en este caso
1 1 A Entrada Conectar al Interruptor A
2 1B Entrada Conectar al Interruptor B
3 1Y Salida Salida de la Puerta 1 (\overlineA · B)
4 2 A Entrada Conectar al Pin 3 (1Y)
5 2B Entrada Conectar al Pin 3 (1Y)
6 2Y Salida Salida de la Puerta 2 (1Y invertida \to A · B)
7 GND Tierra Conectar a la Fuente de Alimentación 0 V
8 3Y Salida Salida de la Puerta 3 (\overline(A · B) · C)
9 3 A Entrada Conectar al Interruptor C
10 3B Entrada Conectar al Pin 6 (2Y)
11 4Y Salida Salida final (controla el LED)
12 4 A Entrada Conectar al Pin 8 (3Y)
13 4B Entrada Conectar al Pin 8 (3Y)
14 VCC Alimentación Conectar a +5 V

Guía de conexionado

  • VCC: Conectar el terminal positivo de V1, el pin 14 de U1 y el lado común de SW1.
  • GND: Conectar el terminal negativo de V1, el pin 7 de U1, R1 (parte inferior), R2 (parte inferior), R3 (parte inferior) y D1 (cátodo).
  • Input_A: Conectar SW1 (Interruptor 1) a R1 (parte superior) y al pin 1 de U1.
  • Input_B: Conectar SW1 (Interruptor 2) a R2 (parte superior) y al pin 2 de U1.
  • Input_C (Veto): Conectar SW1 (Interruptor 3) a R3 (parte superior) y al pin 9 de U1.
  • Node_NAND1: Conectar el pin 3 de U1 (Salida 1) al pin 4 de U1 y al pin 5 de U1 (Entradas de la Puerta 2).
  • Node_AND_AB: Conectar el pin 6 de U1 (Salida 2) al pin 10 de U1 (Entrada de la Puerta 3).
  • Node_NAND_FINAL: Conectar el pin 8 de U1 (Salida 3) al pin 12 de U1 y al pin 13 de U1 (Entradas de la Puerta 4).
  • Vout: Conectar el pin 11 de U1 (Salida Final) a R4 (un lado).
  • LED_Anode: Conectar R4 (el otro lado) a D1 (ánodo).

Diagrama de bloques conceptual

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

Esquemático

Practical Case: Veto Voting System (74HC00 Logic Flow)

INPUTS (Active High)           LOGIC PROCESSING (74HC00 Quad NAND)                               OUTPUT
=======================================================================================================

[ SW A + R1 ] --(Pin 1)-->+
                          |
                    [ U1: Gate 1 ] --(Pin 3)--> [ U1: Gate 2 ] --(Pin 6)---+
                    [ 2-In NAND  ]              [ NAND as NOT]             |
                          |                     (Pins 4+5)                 |
[ SW B + R2 ] --(Pin 2)-->+                                                |
                                                                           |
                                                                           v
                                                                     [ U1: Gate 3 ] --(Pin 8)--> [ U1: Gate 4 ] --(Pin 11)--> [ R4: 330R ] --> [ D1: LED ] --> GND
                                                                     [ 2-In NAND  ]              [ NAND as NOT]
                                                                     (Pin 10)      \             (Pins 12+13)
                                                                                    \
[ SW C + R3 ] -------------------------------------------------------(Pin 9)---------+
(Veto/Enable)

=======================================================================================================
Logic Summary:
1. Gate 1 & 2 form an AND gate for Inputs A & B.
2. Gate 3 & 4 form an AND gate for (Result of A/B) & Input C.
3. Final Function: LED turns ON only if A AND B AND C are all High.
Esquema Eléctrico

Tabla de verdad

El circuito implementa la función lógica Y = A · B · C.
* A/B: Votantes
* C: Presidente/Autorización (0 = Veto/Bloqueo, 1 = Permitir)

Entrada A (Votante 1) Entrada B (Votante 2) Entrada C (Autorización) Salida Y (LED) Resultado
0 0 0 0 Fallo
0 1 1 0 Fallo (Falta de votos)
1 0 1 0 Fallo (Falta de votos)
1 1 0 0 VETADO
1 1 1 1 Aprobado

Mediciones y pruebas

  1. Verificación de alimentación: Antes de insertar el CI, verifique 5 V entre las líneas VCC y GND en su protoboard.
  2. Estado predeterminado: Asegúrese de que todos los interruptores estén en OFF (apagados). Encienda la alimentación. El LED debe estar APAGADO.
  3. Prueba de veto: Ponga el Interruptor A y el Interruptor B en ON (Alto). Mantenga el Interruptor C en OFF (Bajo).
    • Observación: El LED debe permanecer APAGADO. Esto confirma que el Veto está activo.
  4. Prueba de aprobación: Con A y B aún en ON, ponga el Interruptor C en ON.
    • Observación: El LED debe encenderse (Lógica Alta, aprox. 3.5 V – 4.5 V).
  5. Prueba de voto único: Ponga el Interruptor A en OFF mientras B y C están en ON.
    • Observación: El LED debe apagarse.

Netlist SPICE y simulación

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

* Practical case: Veto Voting System
.width out=256

* ==============================================================================
* Components and Models
* ==============================================================================

* LED Model
.model DLED D(IS=1e-22 RS=10 N=1.5 CJO=10p)

* 74HC00 Quad 2-Input NAND Gate Subcircuit
* Pins: 1=1A, 2=1B, 3=1Y, 4=2A, 5=2B, 6=2Y, 7=GND, 8=3Y, 9=3A, 10=3B, 11=4Y, 12=4A, 13=4B, 14=VCC
.subckt 74HC00 1 2 3 4 5 6 7 8 9 10 11 12 13 14
* Logic Threshold (2.5V) and Gain (20)
.param Vth=2.5
.param K=20
* Gate 1: Inputs 1,2 -> Output 3
B1 3 7 V = V(14,7) * (1 - (1/(1+exp(-K*(V(1,7)-Vth)))) * (1/(1+exp(-K*(V(2,7)-Vth)))))
* Gate 2: Inputs 4,5 -> Output 6
B2 6 7 V = V(14,7) * (1 - (1/(1+exp(-K*(V(4,7)-Vth)))) * (1/(1+exp(-K*(V(5,7)-Vth)))))
* ... (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: Veto Voting System
.width out=256

* ==============================================================================
* Components and Models
* ==============================================================================

* LED Model
.model DLED D(IS=1e-22 RS=10 N=1.5 CJO=10p)

* 74HC00 Quad 2-Input NAND Gate Subcircuit
* Pins: 1=1A, 2=1B, 3=1Y, 4=2A, 5=2B, 6=2Y, 7=GND, 8=3Y, 9=3A, 10=3B, 11=4Y, 12=4A, 13=4B, 14=VCC
.subckt 74HC00 1 2 3 4 5 6 7 8 9 10 11 12 13 14
* Logic Threshold (2.5V) and Gain (20)
.param Vth=2.5
.param K=20
* Gate 1: Inputs 1,2 -> Output 3
B1 3 7 V = V(14,7) * (1 - (1/(1+exp(-K*(V(1,7)-Vth)))) * (1/(1+exp(-K*(V(2,7)-Vth)))))
* Gate 2: Inputs 4,5 -> Output 6
B2 6 7 V = V(14,7) * (1 - (1/(1+exp(-K*(V(4,7)-Vth)))) * (1/(1+exp(-K*(V(5,7)-Vth)))))
* Gate 3: Inputs 9,10 -> Output 8
B3 8 7 V = V(14,7) * (1 - (1/(1+exp(-K*(V(9,7)-Vth)))) * (1/(1+exp(-K*(V(10,7)-Vth)))))
* Gate 4: Inputs 12,13 -> Output 11
B4 11 7 V = V(14,7) * (1 - (1/(1+exp(-K*(V(12,7)-Vth)))) * (1/(1+exp(-K*(V(13,7)-Vth)))))
.ends 74HC00

* ==============================================================================
* Main Circuit Wiring
* ==============================================================================

* Power Supply (V1)
V1 VCC 0 DC 5

* Inputs (Simulating Switches SW1 positions A, B, C)
* Generating dynamic pulses to test the truth table (000 to 111)
* Input A (LSB, Period 100us)
Va Input_A 0 PULSE(0 5 10u 1u 1u 50u 100u)
* Input B (Period 200us)
Vb Input_B 0 PULSE(0 5 10u 1u 1u 100u 200u)
* Input C (MSB, Period 400us)
Vc Input_C 0 PULSE(0 5 10u 1u 1u 200u 400u)

* Pull-down Resistors (R1, R2, R3)
R1 Input_A 0 10k
R2 Input_B 0 10k
R3 Input_C 0 10k

* Logic IC U1 (74HC00)
* Connectivity based on Wiring Guide:
* Pin 1 (In A) -> Input_A
* Pin 2 (In B) -> Input_B
* Pin 3 (Out 1) -> Node_NAND1
* Pin 4 (In 2A) -> Node_NAND1
* Pin 5 (In 2B) -> Node_NAND1
* Pin 6 (Out 2) -> Node_AND_AB
* Pin 7 (GND)   -> 0
* Pin 8 (Out 3) -> Node_NAND_FINAL
* Pin 9 (In 3A) -> Input_C
* Pin 10 (In 3B)-> Node_AND_AB
* Pin 11 (Out 4)-> Vout
* Pin 12 (In 4A)-> Node_NAND_FINAL
* Pin 13 (In 4B)-> Node_NAND_FINAL
* Pin 14 (VCC)  -> VCC
XU1 Input_A Input_B Node_NAND1 Node_NAND1 Node_NAND1 Node_AND_AB 0 Node_NAND_FINAL Input_C Node_AND_AB Vout Node_NAND_FINAL Node_NAND_FINAL VCC 74HC00

* Output Stage
R4 Vout LED_Anode 330
D1 LED_Anode 0 DLED

* ==============================================================================
* Simulation Commands
* ==============================================================================

.op
.tran 1u 500u

* Print Inputs and Output to check logic (Vout should be High only when A, B, C are High)
.print tran V(Input_A) V(Input_B) V(Input_C) V(Vout)

.end

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)

Análisis: The simulation successfully sweeps inputs A, B, and C. Vout is High (5V) only when A, B, and C are all High (e.g., around 33us, 301us, 559us). In all other states (000, 011, 101, 110, etc.), Vout remains Low (~0V). This matches the logic Y = A · B · C.
Show raw data table (671 rows)
Index   time            v(input_a)      v(input_b)      v(input_c)      v(vout)
0	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	-6.01853e-36
1	1.000000e-08	0.000000e+00	0.000000e+00	0.000000e+00	-6.01853e-36
2	2.000000e-08	0.000000e+00	0.000000e+00	0.000000e+00	-6.01853e-36
3	4.000000e-08	0.000000e+00	0.000000e+00	0.000000e+00	-6.01853e-36
4	8.000000e-08	0.000000e+00	0.000000e+00	0.000000e+00	-6.01853e-36
5	1.600000e-07	0.000000e+00	0.000000e+00	0.000000e+00	-6.01853e-36
6	3.200000e-07	0.000000e+00	0.000000e+00	0.000000e+00	-6.01853e-36
7	6.400000e-07	0.000000e+00	0.000000e+00	0.000000e+00	-6.01853e-36
8	1.280000e-06	0.000000e+00	0.000000e+00	0.000000e+00	-6.01853e-36
9	2.280000e-06	0.000000e+00	0.000000e+00	0.000000e+00	-6.01853e-36
10	3.280000e-06	0.000000e+00	0.000000e+00	0.000000e+00	-6.01853e-36
11	4.280000e-06	0.000000e+00	0.000000e+00	0.000000e+00	-6.01853e-36
12	5.280000e-06	0.000000e+00	0.000000e+00	0.000000e+00	-6.01853e-36
13	6.280000e-06	0.000000e+00	0.000000e+00	0.000000e+00	-6.01853e-36
14	7.280000e-06	0.000000e+00	0.000000e+00	0.000000e+00	-6.01853e-36
15	8.280000e-06	0.000000e+00	0.000000e+00	0.000000e+00	-6.01853e-36
16	9.280000e-06	0.000000e+00	0.000000e+00	0.000000e+00	-6.01853e-36
17	1.000000e-05	0.000000e+00	0.000000e+00	0.000000e+00	-6.01853e-36
18	1.010000e-05	5.000000e-01	5.000000e-01	5.000000e-01	-6.01853e-36
19	1.030000e-05	1.500000e+00	1.500000e+00	1.500000e+00	-6.01853e-36
20	1.048757e-05	2.437858e+00	2.437858e+00	2.437858e+00	-6.01853e-36
21	1.071179e-05	3.558937e+00	3.558937e+00	3.558937e+00	5.000000e+00
22	1.085965e-05	4.298271e+00	4.298271e+00	4.298271e+00	5.000000e+00
23	1.099537e-05	4.976846e+00	4.976846e+00	4.976846e+00	5.000000e+00
... (647 more rows) ...

Errores comunes y cómo evitarlos

  1. Entradas flotantes: Olvidar las resistencias pull-down (R1, R2, R3). Sin ellas, las entradas CMOS del 74HC00 flotarán, causando conmutación errática u oscilación.
  2. Confundir el pinout: El pinout del 74HC00 es estándar, pero mezclar los pines de Entrada (por ejemplo, 1 A/1B) con los pines de Salida (por ejemplo, 1Y) es común. Verifique dos veces el diagrama de la hoja de datos.
  3. Malinterpretar el «Veto»: En este diseño, la Entrada C es una línea de «Habilitación» (Activa Alta). Si piensa en el Veto como «Interruptor ON para Bloquear» (lógica Activa Baja), el cableado del Interruptor C necesitaría ser invertido. Aquí, Interruptor C ON significa «Autorizar».

Solución de problemas

  • El LED nunca se enciende: Compruebe que la polaridad del LED sea correcta (Ánodo a la resistencia, Cátodo a GND). Verifique que U1 esté alimentado (Pin 14 a 5 V, Pin 7 a GND).
  • El LED permanece encendido incluso cuando los interruptores están en OFF: Compruebe si faltan o están desconectadas R1, R2 o R3. Asegúrese de no estar utilizando interruptores NC (Normalmente Cerrados) por error.
  • El circuito funciona para A y B pero C no tiene efecto: Compruebe el cableado en la Puerta 3 (Pines 8, 9, 10). Asegúrese de que el pin 9 se conecte al Interruptor C y el pin 10 se conecte a la salida de la etapa anterior (Pin 6).

Posibles mejoras y extensiones

  1. Indicador de veto: Añada un segundo LED (Verde) controlado por una puerta no utilizada (o un transistor) conectado a la Entrada C, indicando «Sesión Abierta» (Autorización Concedida) o «Sesión Bloqueada» (Veto).
  2. Modificación de voto por mayoría: Rediseñe el circuito para permitir que la propuesta se apruebe si cualesquiera dos de los tres miembros (A, B, C) votan Sí, eliminando el poder de veto específico y haciendo que todos los miembros sean iguales.

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é circuito integrado específico se utiliza para implementar la lógica del sistema?




Pregunta 2: ¿Cuál es la función del Miembro C (Presidente) en el circuito propuesto?




Pregunta 3: ¿Qué condición es necesaria para que la salida sea Alta (LED ENCENDIDO)?




Pregunta 4: ¿Qué tipo de puertas lógicas contiene internamente el CI 74HC00?




Pregunta 5: ¿Qué sucede si el Miembro C pone su entrada en Bajo (Lógica Baja)?




Pregunta 6: ¿Qué función lógica final se busca construir utilizando el CI 74HC00 en este ejercicio?




Pregunta 7: ¿Cuál es un ejemplo de uso de 'Enclavamientos de seguridad' mencionado en el texto?




Pregunta 8: ¿Qué nivel de dificultad se asigna a este ejercicio práctico según el contexto?




Pregunta 9: ¿Qué representa el sistema en el ejemplo de 'Gobierno corporativo'?




Pregunta 10: ¿Cuántos miembros deben votar 'Sí' (además de la aprobación del tercero) para que la propuesta se apruebe?




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 nivel de tanque de agua

Prototipo de Control de nivel de tanque de agua (Maker Style)

Nivel: Básico. Implementa una parada de seguridad lógica para una bomba de agua usando una compuerta NAND.

Objetivo y caso de uso

En esta sesión, construirás un circuito digital de seguridad utilizando una compuerta NAND 74HC00. El circuito monitorea dos sensores de nivel de líquido y corta automáticamente la energía a una «bomba» (simulada por un LED) solo cuando ambos sensores indican que el tanque está peligrosamente lleno.

  • Llenado de tanques industriales: Previene derrames químicos asegurando que los sensores redundantes coincidan antes de activar un apagado de emergencia.
  • Sistemas de bombas de sumidero: Previene el quemado del motor o desbordamientos gestionando estados lógicos entre las marcas de nivel alto y desbordamiento crítico.
  • Domótica: Lógica simple para la gestión de depósitos sin necesidad de un microcontrolador.

Resultado esperado:
* Operación normal: El LED (bomba) permanece ENCENDIDO (Lógica Alta, ~5 V) cuando el tanque está vacío o parcialmente lleno.
* Parada de emergencia: El LED se APAGA (Lógica Baja, ~0 V) inmediatamente cuando ambas entradas de interruptor están en Lógica Alta (simulando detección de agua).
* Validación: Se verificará una Tabla de verdad específica donde solo la condición de entrada 1, 1 resulta en una salida de 0.

Público objetivo: Estudiantes de electrónica de nivel básico y aficionados.

Materiales

  • V1: Fuente de alimentación de 5 V CC, función: Alimentación del circuito principal.
  • U1: 74HC00, función: CI de cuatro compuertas NAND de 2 entradas.
  • S1: Interruptor de palanca SPST, función: Simulador de sensor de nivel alto.
  • S2: Interruptor de palanca SPST, función: Simulador de sensor de nivel de seguridad.
  • R1: Resistencia de 10 kΩ, función: Pull-down para S1.
  • R2: Resistencia de 10 kΩ, función: Pull-down para S2.
  • R3: Resistencia de 330 Ω, función: Limitación de corriente para el LED de estado de la bomba.
  • D1: LED verde, función: Indicador de estado de la bomba (ENCENDIDO = Funcionando, APAGADO = Detenida).

Pin-out del CI utilizado

Chip: 74HC00 (Cuatro compuertas NAND de 2 entradas)

Pin Nombre Función lógica Conexión en este caso
1 1 A Entrada A Conectado al Sensor S1
2 1B Entrada B Conectado al Sensor S2
3 1Y Salida Y Conectado al LED (Bomba)
7 GND Tierra Conectado a 0 V
14 VCC Alimentación Conectado a 5 V

Guía de conexionado

Construye el circuito siguiendo estas conexiones de nodos. Asegúrate de que la fuente de alimentación esté apagada mientras construyes.

  • Riel de alimentación: Conecta el terminal positivo de V1 al nodo VCC y el terminal negativo al nodo 0 (GND).
  • Alimentación del CI: Conecta el pin 14 de U1 a VCC y el pin 7 a 0.
  • Sensor 1 (Entrada A):
    • Conecta S1 entre VCC y el nodo SENSOR_HI.
    • Conecta R1 entre SENSOR_HI y 0 (Pull-down).
    • Conecta el pin 1 de U1 al nodo SENSOR_HI.
  • Sensor 2 (Entrada B):
    • Conecta S2 entre VCC y el nodo SENSOR_SAFE.
    • Conecta R2 entre SENSOR_SAFE y 0 (Pull-down).
    • Conecta el pin 2 de U1 al nodo SENSOR_SAFE.
  • Control de bomba (Salida):
    • Conecta el pin 3 de U1 al nodo PUMP_CTRL.
    • Conecta D1 (Ánodo) al nodo PUMP_CTRL.
    • Conecta D1 (Cátodo) al nodo LED_NODE.
    • Conecta R3 entre LED_NODE y 0.

Diagrama de bloques conceptual

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

Esquemático

Title: Practical case: Water tank level control

      INPUTS (Sensors)                       PROCESSING (U1: 74HC00)                  OUTPUT (Pump Indicator)
   ======================                  ===========================              ===========================

   [ VCC ]
      |
   [ S1: High Sensor ]
      |
                      +--(Node: SENSOR_HI)---------------> [ U1: Pin 1 (Input A) ]
      |                                             |
   [ R1: 10k Pull-Down ]                            |
      |                                             v
   [ GND ]                                     [ NAND Gate ] --(Node: PUMP_CTRL)--> [ D1: Green LED ]
                                                    ^                                       |
                                                    |                               (Node: LED_NODE)
   [ VCC ]                                          |                                       |
      |                                             |                                  [ R3: 330R ]
   [ S2: Safe Sensor ]                              |                                       |
      |                                             |                                    [ GND ]
+--(Node: SENSOR_SAFE)-------------> [ U1: Pin 2 (Input B) ]
      |
   [ R2: 10k Pull-Down ]
      |
   [ GND ]

   (Note: U1 Power Connections -> Pin 14: VCC, Pin 7: GND)
Esquema Eléctrico

Tabla de verdad

El 74HC00 actúa como un bloqueo de seguridad. La bomba funciona (Salida 1) por defecto y solo se detiene (Salida 0) cuando se cumple la condición de peligro específica (1, 1).

S1 (Nivel alto) S2 (Nivel de seguridad) Voltaje en Pin 3 Estado de bomba (LED) Estado lógico
0 (Seco) 0 (Seco) Alto (~5 V) ENCENDIDO Seguro
0 (Seco) 1 (Húmedo) Alto (~5 V) ENCENDIDO Error de sensor/Seguro
1 (Húmedo) 0 (Seco) Alto (~5 V) ENCENDIDO Nivel de advertencia
1 (Húmedo) 1 (Húmedo) Bajo (~0 V) APAGADO PARADA (Peligro)

Mediciones y pruebas

  1. Comprobación del estado por defecto: Asegúrate de que S1 y S2 estén abiertos (OFF). Enciende el circuito. Mide el voltaje en el nodo PUMP_CTRL con respecto a GND. Debería leer aproximadamente 5 V. El LED verde debería estar encendido.
  2. Prueba de un solo sensor: Cierra solo S1. El LED debería permanecer ENCENDIDO. Abre S1 y cierra solo S2. El LED debería permanecer ENCENDIDO.
  3. Prueba de parada de seguridad: Cierra ambos S1 y S2 simultáneamente.
    • Mide el voltaje en el nodo PUMP_CTRL. Debería caer a cerca de 0 V (< 0.1 V).
    • Confirma que el LED se APAGA inmediatamente.
  4. Recuperación: Abre cualquiera de los interruptores; el LED debería volver a ENCENDERSE.

Netlist SPICE y simulación

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

* Practical case: Water tank level control
.width out=256

* --- Models ---
* Generic Green LED Model
.model DLED D(IS=1e-14 N=2 RS=10 BV=5 IBV=10u CJO=10p)
* Ideal Voltage-Controlled Switch Model
.model SW_IDEAL sw(vt=2.5 vh=0 ron=1 roff=10Meg)

* --- Power Supply ---
* V1: 5 V DC power supply
V1 VCC 0 DC 5

* --- Input Sensors (Switches + Pull-downs) ---
* S1: High Level Sensor simulator
* Modeled as a switch connected to VCC, controlled by a pulse source (V_ACT1)
* Timing: Period 100us, covers logic states quickly
V_ACT1 ACT1 0 PULSE(0 5 0 1u 1u 50u 100u)
S1 VCC SENSOR_HI ACT1 0 SW_IDEAL
R1 SENSOR_HI 0 10k
* ... (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: Water tank level control
.width out=256

* --- Models ---
* Generic Green LED Model
.model DLED D(IS=1e-14 N=2 RS=10 BV=5 IBV=10u CJO=10p)
* Ideal Voltage-Controlled Switch Model
.model SW_IDEAL sw(vt=2.5 vh=0 ron=1 roff=10Meg)

* --- Power Supply ---
* V1: 5 V DC power supply
V1 VCC 0 DC 5

* --- Input Sensors (Switches + Pull-downs) ---
* S1: High Level Sensor simulator
* Modeled as a switch connected to VCC, controlled by a pulse source (V_ACT1)
* Timing: Period 100us, covers logic states quickly
V_ACT1 ACT1 0 PULSE(0 5 0 1u 1u 50u 100u)
S1 VCC SENSOR_HI ACT1 0 SW_IDEAL
R1 SENSOR_HI 0 10k

* S2: Safety Level Sensor simulator
* Modeled as a switch connected to VCC, controlled by a pulse source (V_ACT2)
* Timing: Period 200us, provides different state combinations with S1
V_ACT2 ACT2 0 PULSE(0 5 0 1u 1u 100u 200u)
S2 VCC SENSOR_SAFE ACT2 0 SW_IDEAL
R2 SENSOR_SAFE 0 10k

* --- Logic IC: U1 (74HC00 Quad 2-Input NAND Gate) ---
* Wiring Guide connections:
* Pin 1 (Input A) -> SENSOR_HI
* Pin 2 (Input B) -> SENSOR_SAFE
* Pin 3 (Output)  -> PUMP_CTRL
* Pin 7 (GND)     -> 0
* Pin 14 (VCC)    -> VCC

.subckt 74HC00 1 2 3 7 14
    * Behavioral NAND implementation using continuous sigmoid functions for convergence
    * V(3) = VCC * (1 - (Sigmoid(In1) * Sigmoid(In2)))
    * Threshold is set to VCC/2 (approx 2.5V)
    B_NAND 3 7 V = V(14) * (1 - ( (1/(1+exp(-50*(V(1)-0.5*V(14))))) * (1/(1+exp(-50*(V(2)-0.5*V(14))))) ))
.ends

XU1 SENSOR_HI SENSOR_SAFE PUMP_CTRL 0 VCC 74HC00

* --- Output Stage ---
* D1: Pump Status LED (Green)
* R3: Current limiting resistor
D1 PUMP_CTRL LED_NODE DLED
R3 LED_NODE 0 330

* --- Simulation Directives ---
.op
* Transient analysis for 500us to capture full truth table sequence
.tran 1u 500u

* --- Output Printing ---
* Required to generate simulation log
.print tran V(SENSOR_HI) V(SENSOR_SAFE) V(PUMP_CTRL) V(LED_NODE)

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)

Análisis: The simulation successfully cycles through all 4 logic states. When both inputs are High (~5V), the output PUMP_CTRL goes Low (~0V) and the LED voltage drops to ~0V (OFF). In all other states (00, 01, 10), the output is High (~5V) and the LED node is ~3.46V (ON).
Show raw data table (810 rows)
Index   time            v(sensor_hi)    v(sensor_safe)  v(pump_ctrl)    v(led_node)
0	0.000000e+00	4.995005e-03	4.995005e-03	5.000000e+00	3.463208e+00
1	1.000000e-08	4.995005e-03	4.995005e-03	5.000000e+00	3.463209e+00
2	2.000000e-08	4.995005e-03	4.995005e-03	5.000000e+00	3.463209e+00
3	4.000000e-08	4.995005e-03	4.995005e-03	5.000000e+00	3.463209e+00
4	8.000000e-08	4.995005e-03	4.995005e-03	5.000000e+00	3.463209e+00
5	1.600000e-07	4.995005e-03	4.995005e-03	5.000000e+00	3.463209e+00
6	3.200000e-07	4.995005e-03	4.995005e-03	5.000000e+00	3.463209e+00
7	3.562500e-07	4.995005e-03	4.995005e-03	5.000000e+00	3.463209e+00
8	4.196875e-07	4.995005e-03	4.995005e-03	5.000000e+00	3.463209e+00
9	4.372461e-07	4.995005e-03	4.995005e-03	5.000000e+00	3.463209e+00
10	4.679736e-07	4.995005e-03	4.995005e-03	5.000000e+00	3.463209e+00
11	4.795524e-07	4.995005e-03	4.995005e-03	5.000000e+00	3.463209e+00
12	4.902290e-07	4.995005e-03	4.995005e-03	5.000000e+00	3.463209e+00
13	5.023412e-07	4.999500e+00	4.999500e+00	4.417025e-69	-7.81556e-01
14	5.138120e-07	4.999500e+00	4.999500e+00	4.417025e-69	1.002344e-01
15	5.170059e-07	4.999500e+00	4.999500e+00	4.417025e-69	3.466376e-02
16	5.182905e-07	4.999500e+00	4.999500e+00	4.417025e-69	2.349502e-02
17	5.201200e-07	4.999500e+00	4.999500e+00	4.417025e-69	1.345184e-02
18	5.222326e-07	4.999500e+00	4.999500e+00	4.417025e-69	7.036188e-03
19	5.244685e-07	4.999500e+00	4.999500e+00	4.417025e-69	3.539225e-03
20	5.268938e-07	4.999500e+00	4.999500e+00	4.417025e-69	1.673565e-03
21	5.291278e-07	4.999500e+00	4.999500e+00	4.417025e-69	8.446489e-04
22	5.313933e-07	4.999500e+00	4.999500e+00	4.417025e-69	4.221950e-04
23	5.337647e-07	4.999500e+00	4.999500e+00	4.417025e-69	2.037947e-04
... (786 more rows) ...

Errores comunes y cómo evitarlos

  1. Entradas flotantes: Olvidar R1 o R2 resulta en conmutaciones erráticas porque las entradas CMOS captan ruido eléctrico cuando los interruptores están abiertos. Solución: Asegúrate siempre de que las entradas estén conectadas a Tierra a través de resistencias cuando el interruptor esté abierto.
  2. Polaridad del LED: Conectar el LED al revés evita que se encienda incluso cuando la lógica es Alta. Solución: Asegúrate de que la pata más larga (Ánodo) mire hacia el pin de salida del CI.
  3. Cortocircuitar la salida a Tierra: Conectar el Pin 3 directamente a Tierra para «probarlo» dañará el CI cuando intente emitir una salida Alta. Solución: Mide siempre el voltaje con un multímetro en paralelo, nunca fuerces un nodo a tierra con un cable.

Solución de problemas

  • Síntoma: El LED siempre está ENCENDIDO, incluso cuando ambos interruptores están cerrados.
    • Causa: Las resistencias R1/R2 podrían estar conectadas a VCC en lugar de GND, o el CI está puenteado.
    • Solución: Verifica que R1 y R2 se conecten al riel negativo (0) y los interruptores se conecten a VCC.
  • Síntoma: El LED nunca se ENCIENDE.
    • Causa: LED invertido o R3 tiene un valor demasiado alto/abierto.
    • Solución: Verifica la orientación de D1 y la continuidad de R3.
  • Síntoma: El circuito se comporta de manera errática al tocar los cables.
    • Causa: Entradas flotantes (Faltan resistencias pull-down).
    • Solución: Verifica que R1 y R2 estén conectados firmemente al nodo 0.

Posibles mejoras y extensiones

  1. Alarma visual y sonora: Conecta un zumbador activo adicional (a través de un controlador de transistor) a la salida, pero invierte la señal primero para que el zumbador suene cuando la bomba se detenga.
  2. Accionamiento de motor: Reemplaza el LED con un transistor NPN (como el 2N2222) y un relé para controlar un motor de bomba de agua de CC real, añadiendo un diodo flyback para protección.

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é componente principal se utiliza para construir el circuito digital de seguridad?




Pregunta 2: ¿Qué elemento físico simula la 'bomba de agua' en este circuito?




Pregunta 3: ¿Cuál es la condición lógica de entrada que provoca que la bomba (LED) se apague?




Pregunta 4: ¿Qué voltaje aproximado representa el estado de 'Operación normal' (LED encendido)?




Pregunta 5: ¿Qué ventaja se menciona sobre el uso de este circuito en domótica?




Pregunta 6: ¿Cuál es el propósito de la 'Parada de emergencia' descrita?




Pregunta 7: ¿Qué tipo de lógica se utiliza para gestionar el depósito según el contexto?




Pregunta 8: ¿Qué previene el sistema en el caso de uso de 'Sistemas de bombas de sumidero'?




Pregunta 9: ¿Qué ocurre en 'Operación normal' si el tanque está vacío o parcialmente lleno?




Pregunta 10: ¿Por qué se menciona el 'Llenado de tanques industriales' como caso de uso?




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: Alarma de seguridad con sensor de ventana

Prototipo de Alarma de seguridad con sensor de ventana (Maker Style)

Nivel: Básico | Construye un sistema de alarma a prueba de fallos utilizando lógica NAND para detectar ventanas abiertas.

Objetivo y caso de uso

En este caso práctico, construirás un circuito lógico digital que monitorea dos sensores de ventana. La alarma permanecerá en silencio (LED APAGADO) solo cuando ambas ventanas estén cerradas de forma segura. Si se abre alguna ventana —o si se corta un cable— la alarma se activa (LED ENCENDIDO).

  • Seguridad en el hogar: Monitoreo de múltiples puntos de entrada (ventanas/puertas) donde todos deben estar cerrados para asegurar el perímetro.
  • Seguridad en maquinaria: Asegurar que todas las guardas de seguridad o compuertas de mantenimiento estén cerradas antes de que una máquina pueda operar (o señalar un fallo si se abren).
  • Diseño a prueba de fallos: Demostración de cómo los bucles activos en alto (active-high) detectan cables rotos o interruptores abiertos como condiciones de alarma.

Resultado esperado:
* Estado seguro: Cuando ambos interruptores (ventanas) están cerrados (Lógica 1), la Salida es 0 V (LED APAGADO).
* Estado de alarma: Si el Interruptor 1 O el Interruptor 2 se abren (Lógica 0), la Salida sube a ≈ 5 V (LED ENCENDIDO).
* Verificación lógica: Confirmación del comportamiento de la tabla de verdad NAND donde la Salida es BAJA (LOW) solo si todas las entradas son ALTAS (HIGH).

Público objetivo: Estudiantes de electrónica y aficionados que aprenden sobre puertas lógicas digitales básicas.

Materiales

  • V1: Fuente de alimentación de 5 V CC, función: Alimentación principal del circuito
  • U1: 74HC00, función: CI de cuádruple puerta NAND de 2 entradas
  • SW1: Interruptor SPST, función: Sensor de ventana 1 (Cerrado = Ventana cerrada)
  • SW2: Interruptor SPST, función: Sensor de ventana 2 (Cerrado = Ventana cerrada)
  • R1: Resistencia de 10 kΩ, función: Pull-down para SW1
  • R2: Resistencia de 10 kΩ, función: Pull-down para SW2
  • R3: Resistencia de 330 Ω, función: Limitación de corriente para el LED
  • D1: LED rojo, función: Indicador de alarma

Pin-out del CI utilizado

Chip seleccionado: 74HC00 (Cuádruple puerta NAND de 2 entradas)

Pin Nombre Función lógica Conexión en este caso
1 1 A Entrada A Conectado al Nodo SENS1
2 1B Entrada B Conectado al Nodo SENS2
3 1Y Salida Conectado al Nodo ALARM_OUT
7 GND Tierra Conectado al Nodo 0 (GND)
14 VCC Alimentación Conectado al Nodo VCC (5 V)

Guía de conexionado

Esta guía utiliza nombres de nodos específicos para ayudarte a visualizar las conexiones en una protoboard.

  • Riel de alimentación: Conecta el terminal positivo de V1 al nodo VCC y el terminal negativo al nodo 0.
  • Alimentación del CI: Conecta el pin 14 de U1 a VCC y el pin 7 de U1 a 0.
  • Sensor 1: Conecta SW1 entre VCC y el nodo SENS1.
  • Pull-down 1: Conecta R1 entre SENS1 y 0.
  • Sensor 2: Conecta SW2 entre VCC y el nodo SENS2.
  • Pull-down 2: Conecta R2 entre SENS2 y 0.
  • Entrada lógica: Conecta el pin 1 (1 A) de U1 a SENS1 y el pin 2 (1B) de U1 a SENS2.
  • Salida lógica: Conecta el pin 3 (1Y) de U1 al nodo ALARM_OUT.
  • Indicador: Conecta R3 entre ALARM_OUT y el Ánodo de D1.
  • Tierra del LED: Conecta el Cátodo de D1 al nodo 0.

Diagrama de bloques conceptual

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

Esquemático

Title: Practical case: Window sensor security alarm

(Input Stage: Sensors)                  (Processing Stage: Logic)             (Output Stage: Alarm)

[ VCC ]
   |
[ SW1: Window 1 ]
   |
+--(SENS1)-------+-----------------> [ U1: Pin 1 (Input A) ]
                    |                                         |
                 [ R1: 10k ]                                  v
                    |                                 [ U1: NAND Gate ] --(ALARM_OUT)--> [ R3: 330 Ω ] --> [ D1: LED ] --> GND
                 [ GND ]                                      ^
                                                              |
[ VCC ]             |                                         |
   |                |                                         |
[ SW2: Window 2 ]   |                                         |
   |                |                                         |
+--(SENS2)-------+-----------------> [ U1: Pin 2 (Input B) ]
                    |
                 [ R2: 10k ]
                    |
                 [ GND ]
Esquema Eléctrico

Tabla de verdad

El 74HC00 implementa la función NAND. En este contexto de seguridad, Lógica 1 representa una «Ventana cerrada» (Seguro), y Lógica 0 representa una «Ventana abierta» (Intrusión).

Ventana 1 (SW1) Ventana 2 (SW2) Entrada A (Pin 1) Entrada B (Pin 2) Salida Y (Pin 3) Estado LED Estado
Cerrada Cerrada 1 (Alto) 1 (Alto) 0 (Bajo) OFF Seguro
Abierta Cerrada 0 (Bajo) 1 (Alto) 1 (Alto) ON ALARMA
Cerrada Abierta 1 (Alto) 0 (Bajo) 1 (Alto) ON ALARMA
Abierta Abierta 0 (Bajo) 0 (Bajo) 1 (Alto) ON ALARMA

Mediciones y pruebas

Sigue estos pasos para validar tu sistema de alarma:

  1. Encendido inicial: Asegúrate de que ambos interruptores (SW1, SW2) estén cerrados. Enciende la fuente de 5 V. El LED D1 debería estar APAGADO.
  2. Verificación de voltaje (Seguro): Usa un multímetro para medir el voltaje en el nodo ALARM_OUT. Debería estar cerca de 0 V (< 0.2 V).
  3. Prueba de intrusión 1: Abre SW1 mientras mantienes SW2 cerrado. El LED debería ponerse en ON (Encendido). Mide ALARM_OUT; debería leer cerca de 5 V.
  4. Prueba de intrusión 2: Cierra SW1 y abre SW2. El LED debería ponerse en ON.
  5. Intrusión total: Abre ambos interruptores. El LED debería permanecer en ON.

Netlist SPICE y simulación

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

* Practical case: Window sensor security alarm
.width out=256
* ngspice netlist

* --- Component Models ---
* Switch model for SW1 and SW2 (Sensors)
* Vt=2.5V: Switch closes when control voltage > 2.5V
* Ron=1m: Low resistance when closed
* Roff=100Meg: High resistance when open
.model SW_MOD SW(Vt=2.5 Ron=1m Roff=100Meg)

* LED model for D1
.model LED_RED D(IS=1e-22 RS=5 N=1.5 CJO=10p BV=5)

* --- Power Supply ---
* V1: 5 V DC power supply connected to VCC and 0 (GND)
V1 VCC 0 DC 5

* --- Window Sensor 1 ---
* Control source V_ACT1 simulates the physical action of opening/closing Window 1
* ... (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: Window sensor security alarm
.width out=256
* ngspice netlist

* --- Component Models ---
* Switch model for SW1 and SW2 (Sensors)
* Vt=2.5V: Switch closes when control voltage > 2.5V
* Ron=1m: Low resistance when closed
* Roff=100Meg: High resistance when open
.model SW_MOD SW(Vt=2.5 Ron=1m Roff=100Meg)

* LED model for D1
.model LED_RED D(IS=1e-22 RS=5 N=1.5 CJO=10p BV=5)

* --- Power Supply ---
* V1: 5 V DC power supply connected to VCC and 0 (GND)
V1 VCC 0 DC 5

* --- Window Sensor 1 ---
* Control source V_ACT1 simulates the physical action of opening/closing Window 1
* Logic: High (5V) = Window Closed, Low (0V) = Window Open
* Timing: Toggles every 100us (Period 200us)
V_ACT1 ACT1 0 PULSE(0 5 0 1u 1u 100u 200u)

* SW1: Connects VCC to SENS1 when window is closed
S1 VCC SENS1 ACT1 0 SW_MOD

* R1: Pull-down resistor for SENS1 (10k)
R1 SENS1 0 10k

* --- Window Sensor 2 ---
* Control source V_ACT2 simulates Window 2
* Timing: Toggles every 200us (Period 400us) to test all truth table combinations
V_ACT2 ACT2 0 PULSE(0 5 0 1u 1u 200u 400u)

* SW2: Connects VCC to SENS2 when window is closed
S2 VCC SENS2 ACT2 0 SW_MOD

* R2: Pull-down resistor for SENS2 (10k)
R2 SENS2 0 10k

* --- Logic IC: U1 (74HC00) ---
* Quad 2-input NAND gate. We instantiate one gate.
* Pin mapping according to wiring guide:
* Pin 1 (Input A) -> SENS1
* Pin 2 (Input B) -> SENS2
* Pin 3 (Output Y) -> ALARM_OUT
* Pin 7 -> GND (0), Pin 14 -> VCC
XU1 SENS1 SENS2 ALARM_OUT 0 VCC 74HC00_GATE

* Subcircuit for NAND Gate using robust continuous functions
.subckt 74HC00_GATE A B Y GND VCC
* Logic: Y = NAND(A, B) = NOT(A AND B)
* Implemented using sigmoid functions for convergence:
* 1 / (1 + exp(-k*(V-Vth))) acts as a smooth logical comparator.
* Vth = 2.5V, k = 20
B_NAND Y GND V = V(VCC) * (1 - ( (1/(1+exp(-20*(V(A)-2.5)))) * (1/(1+exp(-20*(V(B)-2.5)))) ))
.ends

* --- Alarm Output Indicator ---
* R3: Current limiting resistor (330 Ohm)
R3 ALARM_OUT LED_ANODE 330

* D1: Red LED connected to Ground
D1 LED_ANODE 0 LED_RED

* --- Simulation Commands ---
.op
* Transient analysis for 500us to capture all logic states
.tran 1u 500u

* Output configuration
* We print the Sensor inputs and the Alarm output
.print tran V(SENS1) V(SENS2) V(ALARM_OUT) V(LED_ANODE)

.end

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)

Análisis: The simulation correctly implements the NAND logic truth table. When both sensors are High (5V, Closed), the Output is Low (~0V). If either or both sensors are Low (Open), the Output goes High (5V), activating the LED (approx 1.83V at anode).
Show raw data table (657 rows)
Index   time            v(sens1)        v(sens2)        v(alarm_out)    v(led_anode)
0	0.000000e+00	4.999500e-04	4.999500e-04	5.000000e+00	1.833072e+00
1	1.000000e-08	4.999500e-04	4.999500e-04	5.000000e+00	1.833072e+00
2	2.000000e-08	4.999500e-04	4.999500e-04	5.000000e+00	1.833072e+00
3	4.000000e-08	4.999500e-04	4.999500e-04	5.000000e+00	1.833072e+00
4	8.000000e-08	4.999500e-04	4.999500e-04	5.000000e+00	1.833072e+00
5	1.600000e-07	4.999500e-04	4.999500e-04	5.000000e+00	1.833072e+00
6	3.200000e-07	4.999500e-04	4.999500e-04	5.000000e+00	1.833072e+00
7	3.562500e-07	4.999500e-04	4.999500e-04	5.000000e+00	1.833072e+00
8	4.196875e-07	4.999500e-04	4.999500e-04	5.000000e+00	1.833072e+00
9	4.372461e-07	4.999500e-04	4.999500e-04	5.000000e+00	1.833072e+00
10	4.679736e-07	4.999500e-04	4.999500e-04	5.000000e+00	1.833072e+00
11	4.795524e-07	4.999500e-04	4.999500e-04	5.000000e+00	1.833072e+00
12	4.902290e-07	4.999500e-04	4.999500e-04	5.000000e+00	1.833072e+00
13	5.023412e-07	5.000000e+00	5.000000e+00	3.894872e-36	1.057689e+00
14	5.138120e-07	5.000000e+00	5.000000e+00	3.894872e-36	-7.61250e-02
15	5.160398e-07	5.000000e+00	5.000000e+00	3.894872e-36	-3.72798e-02
16	5.172425e-07	5.000000e+00	5.000000e+00	3.894872e-36	-2.57490e-02
17	5.188923e-07	5.000000e+00	5.000000e+00	3.894872e-36	-1.54585e-02
18	5.214063e-07	5.000000e+00	5.000000e+00	3.894872e-36	-6.97976e-03
19	5.238372e-07	5.000000e+00	5.000000e+00	3.894872e-36	-3.25627e-03
20	5.261078e-07	5.000000e+00	5.000000e+00	3.894872e-36	-1.60566e-03
21	5.281984e-07	5.000000e+00	5.000000e+00	3.894872e-36	-8.40881e-04
22	5.304310e-07	5.000000e+00	5.000000e+00	3.894872e-36	-4.20300e-04
23	5.328536e-07	5.000000e+00	5.000000e+00	3.894872e-36	-1.97001e-04
... (633 more rows) ...

Errores comunes y cómo evitarlos

  1. Entradas flotantes: Olvidar R1 o R2 hace que las entradas «floten» cuando los interruptores están abiertos, provocando un parpadeo errático del LED. Solución: Asegúrate siempre de que las entradas tengan un camino a tierra (vía resistencias pull-down) cuando el interruptor esté abierto.
  2. Polaridad del LED: Conectar el LED al revés evita que se ilumine incluso cuando la alarma está activa. Solución: Asegúrate de que la pata más larga (Ánodo) mire hacia la resistencia y la salida del CI.
  3. Cableado incorrecto del interruptor: Colocar el interruptor en paralelo con la resistencia en lugar de en serie con la fuente de voltaje crea un cortocircuito. Solución: Sigue la guía de conexionado: VCC -> Interruptor -> Nodo -> Resistencia -> GND.

Solución de problemas

  • Síntoma: El LED está siempre ENCENDIDO, incluso cuando los interruptores están cerrados.
    • Causa: Uno de los interruptores no está haciendo contacto, o un cable de entrada está suelto.
    • Solución: Verifica la continuidad en SW1 y SW2; asegúrate de que el pin 1 y el pin 2 realmente reciban 5 V.
  • Síntoma: El LED nunca se ENCIENDE.
    • Causa: El LED está invertido, el CI no está alimentado o R3 es demasiado alta.
    • Solución: Verifica que haya 5 V en el pin 14. Invierte el LED. Verifica que R3 sea de 330 Ω, no de 330 kΩ.
  • Síntoma: La lógica funciona al revés (LED ENCENDIDO cuando es seguro, APAGADO cuando está abierto).
    • Causa: Puedes estar usando una puerta AND (74HC08) en lugar de NAND, o la lógica de tus interruptores/resistencias está invertida (Pull-ups en lugar de Pull-downs).
    • Solución: Verifica que el número del chip sea 74HC00.

Posibles mejoras y extensiones

  1. Alarma audible: Conecta la base de un transistor NPN a ALARM_OUT para controlar un zumbador activo de 5 V, añadiendo sonido a la luz.
  2. Alarma con enclavamiento: Usa las puertas restantes en el 74HC00 para construir un Latch SR. Esto mantendría la alarma sonando incluso si el ladrón cierra la ventana inmediatamente después de entrar.

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 lógico es fundamental para el funcionamiento de este sistema de alarma?




Pregunta 3: ¿En qué estado debe estar el LED cuando ambas ventanas están cerradas de forma segura?




Pregunta 4: ¿Qué sucede si se corta un cable en el sistema de sensores?




Pregunta 5: ¿Qué nivel lógico representan los interruptores cerrados en este diseño?




Pregunta 6: ¿Cuál es el voltaje de salida esperado en el 'Estado seguro' (ventanas cerradas)?




Pregunta 7: ¿Qué tipo de diseño de seguridad demuestra este circuito?




Pregunta 8: ¿Según la lógica del sistema, qué ocurre si el Interruptor 1 se abre?




Pregunta 9: ¿Cuál es una aplicación industrial mencionada para este tipo de circuito?




Pregunta 10: ¿Qué nivel de dificultad se asigna a este proyecto en el contexto?




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: Indicador de nivel de tanque vacío

Prototipo de Indicador de nivel de tanque vacío (Maker Style)

Nivel: Medio. Diseñe un circuito lógico que alerte al usuario cuando un sensor de agua deje de detectar líquido utilizando una compuerta NOT.

Objetivo y caso de uso

En este caso, construirá un circuito de monitoreo utilizando un inversor 74HC04 que ilumina un LED rojo cuando el nivel de líquido de un tanque cae por debajo de un punto crítico.

  • Evita daños en la bomba: Detiene las bombas de agua para que no funcionen en seco en sistemas hidropónicos.
  • Seguridad doméstica: Alerta cuando los tanques de reserva en la azotea están vacíos.
  • Mantenimiento industrial: Indicador visual de los requisitos de recarga de refrigerante.

Resultado esperado:
* Agua presente: El sensor está abierto (entrada Lógica 1) $\rightarrow$ el LED permanece APAGADO.
* Tanque vacío: El sensor se cierra (entrada Lógica 0) $\rightarrow$ el LED se ENCIENDE.
* Nivel lógico: $V_{in} \approx 0\text{ V}$ activa la alerta; $V_{in} \approx 5\text{ V}$ indica estado normal.

Público objetivo: Estudiantes de electrónica y aficionados familiarizados con la lógica digital básica.

Materiales

  • V1: Fuente de alimentación de 5 V CC, función: alimentación principal del circuito
  • U1: CI Inversor Hexagonal 74HC04, función: inversión lógica
  • S1: Interruptor de flotador (configurado para Cerrar cuando está Vacío), función: sensor de nivel de líquido
  • R1: Resistencia de 10 kΩ, función: pull-up para señal del sensor
  • R2: Resistencia de 330 Ω, función: limitación de corriente del LED
  • D1: LED rojo, función: alerta visual de vacío
  • C1: Condensador cerámico de 100 nF, función: desacoplo de la fuente de alimentación

Pin-out del CI utilizado

Chip seleccionado: 74HC04 (Inversor Hexagonal)

Pin Nombre Función lógica Conexión en este caso
1 1A Entrada Conectado al nodo del sensor (SENSE_IN)
2 1Y Salida Conectado al circuito LED (ALERT_OUT)
7 GND Tierra Conectado a 0 (GND)
14 VCC Alimentación Conectado a la fuente de 5V

Guía de conexionado

  • V1 se conecta entre el nodo VCC y el nodo 0 (GND).
  • C1 se conecta entre el nodo VCC y el nodo 0 (colocado físicamente cerca de U1).
  • R1 se conecta entre el nodo VCC y el nodo SENSE_IN.
  • S1 se conecta entre el nodo SENSE_IN y el nodo 0.
  • U1 pin 1 se conecta al nodo SENSE_IN.
  • U1 pin 2 se conecta al nodo ALERT_OUT.
  • U1 pin 14 se conecta a VCC; el pin 7 se conecta a 0.
  • R2 se conecta entre el nodo ALERT_OUT y el nodo LED_ANODE.
  • D1 se conecta entre el nodo LED_ANODE (Ánodo) y el nodo 0 (Cátodo).

Diagrama de bloques conceptual

Conceptual block diagram — 74HC04 NOT gate

Esquemático

[ INPUT / SENSOR ]                 [ LOGIC PROCESSING ]                 [ OUTPUT / ALERT ]

[ VCC 5V ] --> [ R1: 10k ] --+
               (Pull-Up)     |
                             |
                             V
                        (SENSE_IN) ---->+------------------+
                        (Pin 1)         |    U1: 74HC04    |
                             ^          |   Hex Inverter   |--(ALERT_OUT)--> [ R2: 330R ] --> [ D1: Red LED ] --> GND
                             |          |   (Pin 1 -> 2)   |  (Pin 2)        (Limiting)       (Anode/Cathode)
[ GND 0V ] --> [ S1: Float ]-+          +------------------+
               (Switch)                           ^
                                                  |
                                            [ C1: 100nF ]
                                            (Decoupling)
                                            (VCC / GND)
Esquema Eléctrico

Tabla de verdad

Estado del agua Interruptor del sensor (S1) Voltaje de entrada (Pin 1) Entrada lógica Voltaje de salida (Pin 2) Estado del LED
Lleno ABIERTO 5 V (vía Pull-up) 1 0 V APAGADO
Vacío CERRADO 0 V (conectado a GND) 0 5 V ENCENDIDO

Mediciones y pruebas

  1. Verificación de alimentación: Mida el voltaje entre VCC y 0. Asegúrese de que sea estable a 5 V.
  2. Simulación de tanque lleno: Levante manualmente el flotador (abra S1). Mida el voltaje en SENSE_IN. Debería ser $\approx 5\text{ V}$. Verifique que el LED esté APAGADO.
  3. Simulación de tanque vacío: Deje caer el flotador (cierre S1). Mida el voltaje en SENSE_IN. Debería ser $\approx 0\text{ V}$.
  4. Salida lógica: Mientras S1 está cerrado (Vacío), mida el voltaje en ALERT_OUT. Debería ser $\approx 5\text{ V}$.
  5. Consumo de corriente: Mida la corriente a través de D1 ($I_{led}$) cuando esté ENCENDIDO. Debería ser de aproximadamente 10–12 mA dependiendo de la caída de voltaje específica del LED.

Netlist SPICE y simulación

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

* Practical case: Empty Tank Level Indicator

* ==============================================================================
* BILL OF MATERIALS & COMPONENTS
* ==============================================================================

* --- Power Supply ---
* V1: 5 V DC power supply
V1 VCC 0 DC 5

* --- Decoupling ---
* C1: 100 nF ceramic capacitor (Power supply decoupling)
C1 VCC 0 100n

* --- Sensor Input Section ---
* R1: 10 kΩ resistor (Pull-up for sensor signal)
R1 VCC SENSE_IN 10k

* S1: Float switch (SPST)
* Wiring: Connects between node SENSE_IN and node GND.
* ... (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: Empty Tank Level Indicator

* ==============================================================================
* BILL OF MATERIALS & COMPONENTS
* ==============================================================================

* --- Power Supply ---
* V1: 5 V DC power supply
V1 VCC 0 DC 5

* --- Decoupling ---
* C1: 100 nF ceramic capacitor (Power supply decoupling)
C1 VCC 0 100n

* --- Sensor Input Section ---
* R1: 10 kΩ resistor (Pull-up for sensor signal)
R1 VCC SENSE_IN 10k

* S1: Float switch (SPST)
* Wiring: Connects between node SENSE_IN and node GND.
* Simulation: Modeled as a Voltage Controlled Switch (SW).
* Logic: 
*   - Tank Full (Float Up) -> Switch Open -> SENSE_IN pulled to VCC.
*   - Tank Empty (Float Down) -> Switch Closed -> SENSE_IN pulled to GND.
* Control Source V_FLOAT_ACT simulates the float movement.
*   - 0V = Float Up (Full)
*   - 5V = Float Down (Empty)
S1 SENSE_IN 0 FLOAT_CTRL 0 SW_FLOAT
.model SW_FLOAT SW(Vt=2.5 Ron=0.1 Roff=10Meg)

* Stimulus: Float starts Up (Full), drops to Down (Empty) at 50us, returns at 200us.
V_FLOAT_ACT FLOAT_CTRL 0 PULSE(0 5 50u 1u 1u 150u 400u)

* --- Logic Processing ---
* U1: 74HC04 Hex Inverter
* Wiring Guide: Pin 1 (In) -> SENSE_IN, Pin 2 (Out) -> ALERT_OUT
* Power: Pin 14 -> VCC, Pin 7 -> GND
* Implemented as a subcircuit to strictly map pins.
XU1 SENSE_IN ALERT_OUT 0 VCC 74HC04_GATE

* Subcircuit definition for one gate of 74HC04
.subckt 74HC04_GATE IN OUT GND VCC
    * Behavioral voltage source for robust logic inversion
    * Uses sigmoid function for convergence: Vout = VCC if Vin < 2.5V
    B1 OUT GND V = V(VCC) * (1 / (1 + exp(50 * (V(IN) - 2.5))))
.ends

* --- Output Alert ---
* R2: 330 Ω resistor (LED current limiting)
R2 ALERT_OUT LED_ANODE 330

* D1: Red LED (Visual empty alert)
* Wiring: Anode -> LED_ANODE, Cathode -> GND
D1 LED_ANODE 0 LED_RED
.model LED_RED D(IS=1e-14 N=2 RS=5 BV=5 IBV=10u CJO=40p)

* ==============================================================================
* ANALYSIS COMMANDS
* ==============================================================================

* Operating Point Analysis
.op

* Transient Analysis
* Run for 500us to capture the float switch activation cycle
.tran 1u 500u

* Output Printing
* Monitor Sensor Input, Inverter Output, and LED Voltage
.print tran V(SENSE_IN) V(ALERT_OUT) V(LED_ANODE) V(FLOAT_CTRL)

.end

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)
Show raw data table (1190 rows)
Index   time            v(sense_in)     v(alert_out)    v(led_anode)
0	0.000000e+00	4.995005e+00	3.316079e-54	-1.70080e-28
1	1.000000e-08	4.995005e+00	3.316079e-54	-9.73961e-29
2	2.000000e-08	4.995005e+00	3.316079e-54	-1.41516e-29
3	4.000000e-08	4.995005e+00	3.316079e-54	8.723601e-29
4	8.000000e-08	4.995005e+00	3.316079e-54	1.163518e-28
5	1.600000e-07	4.995005e+00	3.316079e-54	4.380930e-29
6	3.200000e-07	4.995005e+00	3.316079e-54	-1.45299e-29
7	6.400000e-07	4.995005e+00	3.316079e-54	-1.01395e-29
8	1.280000e-06	4.995005e+00	3.316079e-54	-5.46095e-32
9	2.280000e-06	4.995005e+00	3.316079e-54	4.098577e-31
10	3.280000e-06	4.995005e+00	3.316079e-54	2.282032e-32
11	4.280000e-06	4.995005e+00	3.316079e-54	-9.50625e-33
12	5.280000e-06	4.995005e+00	3.316079e-54	-1.09186e-33
13	6.280000e-06	4.995005e+00	3.316079e-54	1.911218e-34
14	7.280000e-06	4.995005e+00	3.316079e-54	3.847480e-35
15	8.280000e-06	4.995005e+00	3.316079e-54	-2.97995e-36
16	9.280000e-06	4.995005e+00	3.316079e-54	-1.15977e-36
17	1.028000e-05	4.995005e+00	3.316079e-54	1.723722e-38
18	1.128000e-05	4.995005e+00	3.316079e-54	3.117034e-38
19	1.228000e-05	4.995005e+00	3.316079e-54	1.177223e-39
20	1.328000e-05	4.995005e+00	3.316079e-54	-7.52109e-40
21	1.428000e-05	4.995005e+00	3.316079e-54	-6.99870e-41
22	1.528000e-05	4.995005e+00	3.316079e-54	1.597704e-41
23	1.628000e-05	4.995005e+00	3.316079e-54	2.660714e-42
... (1166 more rows) ...

🔒 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: Empty Tank Level Indicator

* -----------------------------------------------------------------------------
* Power Supply
* V1 connects between node VCC and node 0 (GND)
* -----------------------------------------------------------------------------
V1 VCC 0 DC 5

* -----------------------------------------------------------------------------
* Decoupling Capacitor
* C1 connects between node VCC and node 0
* -----------------------------------------------------------------------------
C1 VCC 0 100n

* -----------------------------------------------------------------------------
* Sensor / Input Stage
* S1: Float switch (configured to Close when Empty)
* R1: Pull-up resistor
* Wiring: R1 between VCC and SENSE_IN. S1 between SENSE_IN and 0.
*
* Simulation Note: S1 is modeled as a Voltage-Controlled Switch driven by 
* a PULSE source (V_SW_CTRL) to simulate the physical action of the tank 
* emptying and the switch closing.
* -----------------------------------------------------------------------------
R1 VCC SENSE_IN 10k

* Switch S1
* Controlled by node SW_CTRL. 
* Control = 0V -> Switch Open (Tank Full, SENSE_IN pulled High)
* Control = 5V -> Switch Closed (Tank Empty, SENSE_IN pulled Low)
S1 SENSE_IN 0 SW_CTRL 0 FLOAT_SW_MODEL

* Switch Model
.model FLOAT_SW_MODEL SW(Vt=2.5 Ron=0.1 Roff=100M)

* Stimulus: User/Environment simulation
* Pulse starts at 0V (Full), pulses to 5V (Empty) at 100us, holds for 200us.
V_SW_CTRL SW_CTRL 0 PULSE(0 5 100u 1u 1u 200u 500u)

* -----------------------------------------------------------------------------
* Logic Stage: U1 74HC04 Hex Inverter
* Wiring: Pin 1 (Input) -> SENSE_IN, Pin 2 (Output) -> ALERT_OUT
*         Pin 14 -> VCC, Pin 7 -> 0 (GND)
* Implemented as a subcircuit to expose pins and provide robust behavioral logic.
* -----------------------------------------------------------------------------
XU1 SENSE_IN ALERT_OUT 0 VCC 74HC04_GATE

.subckt 74HC04_GATE IN OUT GND VCC
* Robust behavioral model of a CMOS Inverter using sigmoid function
* Vout = VCC if Vin < Vth, Vout = 0 if Vin > Vth
* Vth set to VCC/2. Steepness factor k=50.
B_INV OUT GND V = V(VCC) / (1 + exp(50 * (V(IN) - V(VCC)/2)))
.ends

* -----------------------------------------------------------------------------
* Output Stage: Indicator LED
* Wiring: R2 between ALERT_OUT and LED_ANODE. D1 between LED_ANODE and 0.
* -----------------------------------------------------------------------------
R2 ALERT_OUT LED_ANODE 330

* D1 Red LED
D1 LED_ANODE 0 RED_LED_MODEL

* LED Model (Approximate Red LED Vf ~ 1.8V @ 10mA)
.model RED_LED_MODEL D(IS=1e-18 N=2 RS=5 BV=5 IBV=10u CJO=10p)

* -----------------------------------------------------------------------------
* Analysis Commands
* -----------------------------------------------------------------------------
.op
* Transient analysis: 1us step, 500us total duration
.tran 1u 500u

* Print results to log (Required)
.print tran V(SENSE_IN) V(ALERT_OUT) V(LED_ANODE) V(SW_CTRL)

.end

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)
Show raw data table (1080 rows)
Index   time            v(sense_in)     v(alert_out)    v(led_anode)
0	0.000000e+00	4.999950e-05	5.000000e+00	1.948002e+00
1	1.000000e-08	4.999950e-05	5.000000e+00	1.947999e+00
2	2.000000e-08	4.999950e-05	5.000000e+00	1.947999e+00
3	4.000000e-08	4.999950e-05	5.000000e+00	1.947999e+00
4	8.000000e-08	4.999950e-05	5.000000e+00	1.947999e+00
5	1.600000e-07	4.999950e-05	5.000000e+00	1.947999e+00
6	3.200000e-07	4.999950e-05	5.000000e+00	1.947999e+00
7	6.400000e-07	4.999950e-05	5.000000e+00	1.947999e+00
8	1.280000e-06	4.999950e-05	5.000000e+00	1.947999e+00
9	2.280000e-06	4.999950e-05	5.000000e+00	1.947999e+00
10	3.280000e-06	4.999950e-05	5.000000e+00	1.947999e+00
11	4.280000e-06	4.999950e-05	5.000000e+00	1.947999e+00
12	5.280000e-06	4.999950e-05	5.000000e+00	1.947999e+00
13	6.280000e-06	4.999950e-05	5.000000e+00	1.947999e+00
14	7.280000e-06	4.999950e-05	5.000000e+00	1.947999e+00
15	8.280000e-06	4.999950e-05	5.000000e+00	1.947999e+00
16	9.280000e-06	4.999950e-05	5.000000e+00	1.947999e+00
17	1.028000e-05	4.999950e-05	5.000000e+00	1.947999e+00
18	1.128000e-05	4.999950e-05	5.000000e+00	1.947999e+00
19	1.228000e-05	4.999950e-05	5.000000e+00	1.947999e+00
20	1.328000e-05	4.999950e-05	5.000000e+00	1.947999e+00
21	1.428000e-05	4.999950e-05	5.000000e+00	1.947999e+00
22	1.528000e-05	4.999950e-05	5.000000e+00	1.947999e+00
23	1.628000e-05	4.999950e-05	5.000000e+00	1.947999e+00
... (1056 more rows) ...

Errores comunes y cómo evitarlos

  1. Dejar entradas flotantes: Aunque solo usamos una compuerta (Pin 1/2), las entradas no utilizadas en chips CMOS (pines 3, 5, 9, 11, 13) deben conectarse a GND o VCC para evitar oscilaciones y un consumo excesivo de energía.
  2. Cableado de Pull-up incorrecto: Conectar la resistencia en serie con la entrada en lugar de como pull-up a VCC. Asegúrese de que R1 vaya estrictamente a 5V.
  3. Inversión lógica del sensor: Usar un sensor que está Abierto cuando está Vacío sin cambiar la lógica del circuito. Esto causaría que la luz esté ENCENDIDA cuando el tanque está lleno. Asegúrese de que la acción mecánica coincida con la tabla de verdad.

Solución de problemas

Posibles mejoras y extensiones

  1. Alerta de audio: Agregue un zumbador activo de 5V en paralelo con la combinación LED/Resistencia para proporcionar una alarma audible cuando el tanque esté vacío.
  2. Histéresis: Reemplace el 74HC04 con un 74HC14 (Inversor Schmitt Trigger). Esto evita que el LED parpadee si el nivel del agua está justo en el umbral de conmutación.

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 principal se utiliza para realizar la inversión lógica en este circuito?




Pregunta 3: ¿Cuál es el estado del LED cuando el sensor detecta que hay agua presente (entrada Lógica 1)?




Pregunta 4: ¿Qué función cumple la resistencia R1 de 10 kΩ en el circuito?




Pregunta 5: ¿Cómo debe comportarse el sensor (interruptor) para que el LED se encienda según el diseño?




Pregunta 6: ¿Qué voltaje de entrada ($V_{in}$) activa la alerta visual (LED encendido)?




Pregunta 7: ¿Cuál es el propósito del condensador cerámico C1 de 100 nF mencionado en la lista de materiales?




Pregunta 8: ¿Qué aplicación de seguridad doméstica se menciona específicamente para este circuito?




Pregunta 9: ¿Qué función cumple la resistencia R2 de 330 Ω?




Pregunta 10: Si el tanque está vacío, ¿qué nivel lógico recibe la entrada del inversor?




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:
¿Quiénes somos?