Nivel: Básico – Implementar una compuerta OR para activar una alerta desde dos interruptores independientes.
Objetivo y caso de uso
Construirá un circuito básico de llamada de enfermería utilizando una compuerta OR digital para activar una alerta visual cuando se presione cualquiera de los dos interruptores de las camas de los pacientes.
Por qué es útil:
* Permite el monitoreo centralizado de múltiples puntos de activación independientes.
* Demuestra cómo la lógica digital básica simplifica los sistemas de alarma en paralelo sin necesidad de cablear de forma cruzada los interruptores físicos.
* Forma la base para sistemas de timbres de llamada o de seguridad más grandes y complejos.
Resultado esperado:
* Al presionar el interruptor A, la salida cambia a nivel ALTO (cerca de 5 V), encendiendo el LED.
* Al presionar el interruptor B, la salida cambia a nivel ALTO (cerca de 5 V), encendiendo el LED.
* Al presionar ambos interruptores simultáneamente, la salida cambia a nivel ALTO, encendiendo el LED.
* La salida se mantiene en nivel BAJO (0 V) y el LED permanece apagado cuando no se presiona ningún interruptor.
Público objetivo y nivel: Principiantes que aprenden sobre compuertas lógicas digitales y la importancia de las redes pull-down.
Materiales
- V1: Fuente de alimentación de 5 V CC
- U1: CI 74HC32 con cuatro compuertas OR de 2 entradas
- SW1: Interruptor de botón pulsador, normalmente abierto, función: Activador de la cama A
- SW2: Interruptor de botón pulsador, normalmente abierto, función: Activador de la cama B
- R1: Resistencia de 10 kΩ, función: pull-down para VA
- R2: Resistencia de 10 kΩ, función: pull-down para VB
- R3: Resistencia de 330 Ω, función: limitadora de corriente para el LED
- D1: LED rojo, función: indicador de alerta
Pin-out del CI utilizado
74HC32 (Cuatro compuertas OR de 2 entradas)
| Pin | Nombre | Función lógica | Conexión en este caso |
|---|---|---|---|
| 1 | 1 A | Entrada 1 para la Compuerta 1 | Nodo VA (Interruptor A) |
| 2 | 1B | Entrada 2 para la Compuerta 1 | Nodo VB (Interruptor B) |
| 3 | 1Y | Salida de la Compuerta 1 | Nodo VOUT (al circuito del LED) |
| 7 | GND | Tierra | Nodo 0 |
| 14 | VCC | Fuente de alimentación | Nodo VCC |
(Nota: Los pines 4, 5, 8, 9, 10, 11, 12 y 13 son entradas no utilizadas y deben conectarse a Tierra en un circuito permanente para prevenir el efecto latch-up en CMOS).
Guía de conexionado
- V1: el terminal positivo se conecta a VCC; el terminal negativo se conecta a 0.
- SW1: se conecta entre VCC y VA.
- SW2: se conecta entre VCC y VB.
- R1: se conecta entre VA y 0.
- R2: se conecta entre VB y 0.
- U1 (pin 14): se conecta a VCC.
- U1 (pin 7): se conecta a 0.
- U1 (pin 1): se conecta a VA.
- U1 (pin 2): se conecta a VB.
- U1 (pin 3): se conecta a VOUT.
- R3: se conecta entre VOUT y el ánodo de D1.
- D1: el cátodo se conecta a 0.
Diagrama de bloques conceptual

Esquemático
VCC --> [ SW1: Bed A ] --(VA)--> [ R1: 10 kΩ Pull-down ] --> GND
\
-->(Pin 1) \
[ U1: 74HC32 OR Gate ] --(VOUT, Pin 3)--> [ R3: 330 Ω ] --> [ D1: Red LED ] --> GND
/
-->(Pin 2) /
/
VCC --> [ SW2: Bed B ] --(VB)--> [ R2: 10 kΩ Pull-down ] --> GND
Tabla de verdad
Entrada A (VA) | Entrada B (VB) | Salida Y (VOUT) | Estado del LED |
|---|---|---|---|
| 0 (BAJO) | 0 (BAJO) | 0 (BAJO) | APAGADO |
| 0 (BAJO) | 1 (ALTO) | 1 (ALTO) | ENCENDIDO |
| 1 (ALTO) | 0 (BAJO) | 1 (ALTO) | ENCENDIDO |
| 1 (ALTO) | 1 (ALTO) | 1 (ALTO) | ENCENDIDO |
Mediciones y pruebas
- Verificación de alimentación: Mida el voltaje entre VCC y 0 usando un multímetro para asegurarse de que sea exactamente 5 V.
- Prueba en estado de reposo: Sin presionar ningún botón, mida el voltaje en los nodos VA y VB. Ambos deben marcar exactamente 0 V. El nodo VOUT también debe marcar 0 V.
- Prueba de nivel ALTO lógico: Mantenga presionado SW1. Mida el nodo VA (debe ser ~5 V) y mida el nodo VOUT (debe ser ~5 V). Verifique que el LED esté ENCENDIDO. Repita este proceso para SW2 y el nodo VB.
- Medición de corriente (Opcional): Coloque su multímetro en serie con R3 y D1 para medir la corriente directa del LED (debería ser de aproximadamente 8-10 mA dependiendo de la caída de voltaje directo del LED).
Netlist SPICE y simulación
Netlist SPICE de referencia (ngspice) — extractoNetlist SPICE completo (ngspice)
* Practical case: Nurse call bell
.width out=256
* Power Supply
V1 VCC 0 DC 5
* Bed A Trigger (SW1)
* Modeled as a voltage-controlled switch activated by a pulse to simulate a user pressing the button
VctrlA ctrlA 0 PULSE(0 5 10u 1u 1u 40u 100u)
S1 VCC VA ctrlA 0 my_switch
* Bed B Trigger (SW2)
* Modeled as a voltage-controlled switch activated by a pulse to simulate a user pressing the button
VctrlB ctrlB 0 PULSE(0 5 10u 1u 1u 90u 200u)
S2 VCC VB ctrlB 0 my_switch
* Pull-down resistors for switch inputs
R1 VA 0 10k
R2 VB 0 10k
* ... (truncated in public view) ...Copia este contenido en un archivo .cir y ejecútalo con ngspice.
* Practical case: Nurse call bell
.width out=256
* Power Supply
V1 VCC 0 DC 5
* Bed A Trigger (SW1)
* Modeled as a voltage-controlled switch activated by a pulse to simulate a user pressing the button
VctrlA ctrlA 0 PULSE(0 5 10u 1u 1u 40u 100u)
S1 VCC VA ctrlA 0 my_switch
* Bed B Trigger (SW2)
* Modeled as a voltage-controlled switch activated by a pulse to simulate a user pressing the button
VctrlB ctrlB 0 PULSE(0 5 10u 1u 1u 90u 200u)
S2 VCC VB ctrlB 0 my_switch
* Pull-down resistors for switch inputs
R1 VA 0 10k
R2 VB 0 10k
* U1: 74HC32 quad 2-input OR gate IC (using 1 gate)
* Wiring: Pin 1 -> VA, Pin 2 -> VB, Pin 3 -> VOUT, Pin 14 -> VCC, Pin 7 -> 0
XU1 VA VB VOUT VCC 0 74HC32_OR
* Alert Indicator (LED and current limiting resistor)
R3 VOUT D1_A 330
D1 D1_A 0 DLED
* --- Models and Subcircuits ---
* Ideal switch model
.model my_switch SW(vt=2.5 vh=0.5 ron=1 roff=100MEG)
* Generic Red LED model
.model DLED D(IS=1e-20 N=2.2 RS=2)
* Behavioral model for a 74HC32 OR gate (Continuous functions for robust convergence)
.subckt 74HC32_OR A B Y VCC GND
RinA A GND 10MEG
RinB B GND 10MEG
* OR Logic: V_out = VCC * (1 - (1-A)*(1-B)) implemented with sigmoids
B1 Y_int GND V = V(VCC) * (1 - (1 - 1/(1+exp(-50*(V(A)-2.5)))) * (1 - 1/(1+exp(-50*(V(B)-2.5)))))
Rout Y_int Y 10
.ends
* --- Analysis Directives ---
.tran 1u 250u
.print tran V(VA) V(VB) V(VOUT) V(D1_A)
.op
.endResultados de Simulación (Transitorio)
Show raw data table (354 rows)
Index time v(va) v(vb) v(vout) v(d1_a) 0 0.000000e+00 4.994506e-04 4.994506e-04 -1.00582e-35 -3.41977e-34 1 1.000000e-08 4.994506e-04 4.994506e-04 -6.04520e-52 -2.05537e-50 2 2.000000e-08 4.994506e-04 4.994506e-04 6.045198e-52 2.055367e-50 3 4.000000e-08 4.994506e-04 4.994506e-04 1.816637e-67 6.176631e-66 4 8.000000e-08 4.994506e-04 4.994506e-04 -7.26682e-68 -2.47066e-66 5 1.600000e-07 4.994506e-04 4.994506e-04 -1.94609e-72 -1.94609e-72 6 3.200000e-07 4.994506e-04 4.994506e-04 -1.94609e-72 -1.94609e-72 7 6.400000e-07 4.994506e-04 4.994506e-04 -1.94609e-72 -1.94609e-72 8 1.280000e-06 4.994506e-04 4.994506e-04 -1.94609e-72 -1.94609e-72 9 2.280000e-06 4.994506e-04 4.994506e-04 -1.94609e-72 -1.94609e-72 10 3.280000e-06 4.994506e-04 4.994506e-04 -1.94609e-72 -1.94609e-72 11 4.280000e-06 4.994506e-04 4.994506e-04 -1.94609e-72 -1.94609e-72 12 5.280000e-06 4.994506e-04 4.994506e-04 -1.94609e-72 -1.94609e-72 13 6.280000e-06 4.994506e-04 4.994506e-04 -1.94609e-72 -1.94609e-72 14 7.280000e-06 4.994506e-04 4.994506e-04 -1.94609e-72 -1.94609e-72 15 8.280000e-06 4.994506e-04 4.994506e-04 -1.94609e-72 -1.94609e-72 16 9.280000e-06 4.994506e-04 4.994506e-04 -1.94609e-72 -1.94609e-72 17 1.000000e-05 4.994506e-04 4.994506e-04 -1.94609e-72 -1.94609e-72 18 1.010000e-05 4.994506e-04 4.994506e-04 -1.94609e-72 -1.94609e-72 19 1.030000e-05 4.994506e-04 4.994506e-04 -1.94609e-72 -1.94609e-72 20 1.035875e-05 4.994506e-04 4.994506e-04 -1.94609e-72 -1.94609e-72 21 1.046156e-05 4.994506e-04 4.994506e-04 -1.94609e-72 -1.94609e-72 22 1.049002e-05 4.994506e-04 4.994506e-04 -1.94609e-72 -1.94609e-72 23 1.053982e-05 4.994506e-04 4.994506e-04 -1.94609e-72 -1.94609e-72 ... (330 more rows) ...
Netlist SPICE de referencia (ngspice)
* Practical case: Nurse call bell
.width out=256
* Power Supply
V1 VCC 0 DC 5
* Bed A Trigger (SW1)
* Modeled as a voltage-controlled switch activated by a pulse to simulate a user pressing the button
VctrlA ctrlA 0 PULSE(0 5 10u 1u 1u 40u 100u)
S1 VCC VA ctrlA 0 my_switch
* Bed B Trigger (SW2)
* Modeled as a voltage-controlled switch activated by a pulse to simulate a user pressing the button
VctrlB ctrlB 0 PULSE(0 5 10u 1u 1u 90u 200u)
S2 VCC VB ctrlB 0 my_switch
* Pull-down resistors for switch inputs
R1 VA 0 10k
R2 VB 0 10k
* U1: 74HC32 quad 2-input OR gate IC (using 1 gate)
* Wiring: Pin 1 -> VA, Pin 2 -> VB, Pin 3 -> VOUT, Pin 14 -> VCC, Pin 7 -> 0
XU1 VA VB VOUT VCC 0 74HC32_OR
* Alert Indicator (LED and current limiting resistor)
R3 VOUT D1_A 330
D1 D1_A 0 DLED
* --- Models and Subcircuits ---
* Ideal switch model
.model my_switch SW(vt=2.5 vh=0.5 ron=1 roff=100MEG)
* Generic Red LED model
.model DLED D(IS=1e-20 N=2.2 RS=2)
* Behavioral model for a 74HC32 OR gate (Continuous functions for robust convergence)
.subckt 74HC32_OR A B Y VCC GND
RinA A GND 10MEG
RinB B GND 10MEG
* OR Logic: V_out = VCC * (1 - (1-A)*(1-B)) implemented with sigmoids
B1 Y_int GND V = V(VCC) * (1 - (1 - 1/(1+exp(-50*(V(A)-2.5)))) * (1 - 1/(1+exp(-50*(V(B)-2.5)))))
Rout Y_int Y 10
.ends
* --- Analysis Directives ---
.tran 1u 250u
.print tran V(VA) V(VB) V(VOUT) V(D1_A)
.op
.endResultados de Simulación (Transitorio)
Errores comunes y cómo evitarlos
- Entradas flotantes: Olvidar las resistencias pull-down (R1 y R2). Sin ellas, el voltaje en las entradas de la compuerta flotará cuando los interruptores estén abiertos, causando una activación aleatoria e impredecible de la alarma.
- Omitir las conexiones de alimentación al CI: Olvidar conectar los pines 7 y 14 a Tierra y VCC, respectivamente. La compuerta lógica no puede funcionar sin su propia fuente de alimentación.
- Dejar entradas CMOS no utilizadas flotando: El 74HC32 es un dispositivo CMOS. Cualquier pin de entrada no utilizado (por ejemplo, los pines 4, 5, 9, 10, 12, 13) debe conectarse a Tierra (0) para evitar un consumo excesivo de energía o un comportamiento errático.
Solución de problemas
- Síntoma: El LED permanece ENCENDIDO constantemente, incluso cuando no se presiona ningún botón.
- Causa: Falta una de las resistencias pull-down (R1 o R2) o no está conectada correctamente a tierra.
- Solución: Verifique la conexión de las resistencias entre las entradas VA o VB y el nodo 0.
- Síntoma: El LED nunca se ENCIENDE.
- Causa: El LED está instalado al revés, falta VCC/GND en el CI, o la resistencia R3 está desconectada.
- Solución: Verifique la polaridad del LED (el lado plano / pata más corta va al nodo 0). Asegúrese de que los pines 7 y 14 de U1 tengan alimentación.
- Síntoma: El LED se ENCIENDE aleatoriamente cuando mi mano está cerca de la protoboard.
- Causa: El circuito está experimentando una «entrada flotante» que actúa como una antena captando capacitancia parásita.
- Solución: Revise sus resistencias pull-down. Asegúrese de que conecten firmemente los pines de entrada a tierra.
- Síntoma: La salida está en nivel ALTO lógico (medido en el pin 3), pero el LED brilla de forma extremadamente tenue.
- Causa: La resistencia limitadora de corriente R3 es demasiado grande (por ejemplo, 10 kΩ en lugar de 330 Ω).
- Solución: Reemplace R3 con el valor correcto de 330 Ω.
Posibles mejoras y extensiones
- Añadir una alerta audible: Conecte un zumbador activo de 5 V en paralelo con la combinación de LED/resistencia para que al activar el interruptor se produzca tanto luz como sonido.
- Implementar un circuito de enclavamiento (latch): En un hospital real, la luz debe permanecer ENCENDIDA hasta que una enfermera llegue para restablecerla. Alimente la salida de la compuerta OR al pin SET de un Latch SR (o use compuertas lógicas para construir uno), y agregue un tercer botón de «Reinicio» en la estación de enfermería.
Más Casos Prácticos en Prometeo.blog
Encuentra este producto y/o libros sobre este tema en 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.




