Caso práctico: Conmutación de luz desde dos puntos

Prototipo de Conmutación de luz desde dos puntos (Maker Style)

Nivel: Medio. Implemente una función lógica XOR utilizando puertas NAND universales para controlar una fuente de luz desde dos ubicaciones independientes.

Objetivo y caso de uso

En este caso, construirá un circuito lógico digital que replica un sistema de conmutación residencial de 2 vías (luz de pasillo) utilizando un solo CI 74HC00 de cuádruple puerta NAND. Al combinar cuatro puertas NAND, sintetizará la función O-Exclusiva (XOR), demostrando que las puertas NAND son bloques de construcción «universales».

Por qué es útil:
* Simulación de cableado residencial: Demuestra cómo dos interruptores pueden alternar independientemente una sola carga (lógica de pasillo/escalera).
* Síntesis de lógica digital: Enseña cómo construir lógica compleja (XOR) a partir de puertas universales básicas (NAND).
* Circuitos aritméticos: Esta topología XOR específica es el componente fundamental de un «Semisumador» digital utilizado en las ALU de las CPU.
* Detección de errores: La lógica XOR se utiliza para calcular bits de paridad para la transmisión de datos.

Resultado esperado:
* Estado 00: Cuando ambos interruptores están OFF, el LED está OFF.
* Estado 01/10: Cuando solo un interruptor está ON, el LED está ON (Nivel lógico alto > 3.5 V).
* Estado 11: Cuando ambos interruptores están ON, el LED está OFF.
* Universalidad: Demostración exitosa de que 4 puertas NAND = 1 puerta XOR.

Público objetivo: Estudiantes de electrónica y aficionados familiarizados con las puertas lógicas básicas.

Materiales

  • V1: Fuente de alimentación de 5 V CC, función: Alimentación del circuito principal.
  • U1: 74HC00, función: CI de cuádruple puerta NAND de 2 entradas.
  • S1: Interruptor SPST, función: Entrada A (Interruptor 1).
  • S2: Interruptor SPST, función: Entrada B (Interruptor 2).
  • R1: Resistencia de 10 kΩ, función: Pull-down para Entrada A.
  • R2: Resistencia de 10 kΩ, función: Pull-down para Entrada B.
  • R3: Resistencia de 330 Ω, función: Limitación de corriente del LED.
  • D1: LED rojo, función: Indicador de salida (Luz).

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 Puerta 1 Conectar al nodo INPUT_A
2 1B Entrada Puerta 1 Conectar al nodo INPUT_B
3 1Y Salida Puerta 1 Nodo interno NAND_1_OUT
4 2 A Entrada Puerta 2 Conectar al nodo INPUT_A
5 2B Entrada Puerta 2 Conectar al nodo NAND_1_OUT
6 2Y Salida Puerta 2 Nodo interno NAND_2_OUT
7 GND Tierra Conectar al nodo 0 (GND)
8 3Y Salida Puerta 3 Nodo interno NAND_3_OUT
9 3 A Entrada Puerta 3 Conectar al nodo NAND_1_OUT
10 3B Entrada Puerta 3 Conectar al nodo INPUT_B
11 4Y Salida Puerta 4 Conectar al nodo FINAL_OUT
12 4 A Entrada Puerta 4 Conectar al nodo NAND_2_OUT
13 4B Entrada Puerta 4 Conectar al nodo NAND_3_OUT
14 VCC Alimentación Conectar al nodo VCC (+5 V)

Guía de conexionado

  • V1: Conectar el terminal positivo al nodo VCC y el terminal negativo al nodo 0.
  • U1 (Alimentación): Conectar el Pin 14 a VCC y el Pin 7 a 0.
  • S1: Conectar un lado a VCC y el otro al nodo INPUT_A.
  • R1: Conectar entre el nodo INPUT_A y el nodo 0.
  • S2: Conectar un lado a VCC y el otro al nodo INPUT_B.
  • R2: Conectar entre el nodo INPUT_B y el nodo 0.
  • U1 (Puerta 1): Conectar el Pin 1 a INPUT_A, el Pin 2 a INPUT_B. El Pin 3 es el nodo NAND_1_OUT.
  • U1 (Puerta 2): Conectar el Pin 4 a INPUT_A, el Pin 5 a NAND_1_OUT. El Pin 6 es el nodo NAND_2_OUT.
  • U1 (Puerta 3): Conectar el Pin 10 a INPUT_B, el Pin 9 a NAND_1_OUT. El Pin 8 es el nodo NAND_3_OUT.
  • U1 (Puerta 4): Conectar el Pin 12 a NAND_2_OUT, el Pin 13 a NAND_3_OUT. El Pin 11 es el nodo FINAL_OUT.
  • R3: Conectar entre el nodo FINAL_OUT y el Ánodo de D1.
  • D1: Conectar el Cátodo 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: Light switching from two points (XOR Logic)

INPUT STAGE                  LOGIC PROCESSING (74HC00)                  OUTPUT STAGE
(User Controls)              (NAND-based XOR Circuit)                   (Indicator)

                                     (Pin 4)
VCC --> [ S1 ] --(Node A)----------> [ U1:Gate 2 ] --(NAND_2)--\
          |                          (Pin 5,6)                  \
       [ R1 ]                            ^                       \
          v                              |                        \
         GND                        (NAND_1_OUT)                   \
                                         |                          \
                                         |                           \
(Node A) & (Node B) -----------> [ U1:Gate 1 ]                        --> [ U1:Gate 4 ] --(FINAL)--> [ R3 ] --> [ D1: LED ] --> GND
                                 (Pin 1,2->3)                        /    (Pin 12,13->11)
                                         |                          /
                                         |                         /
                                    (NAND_1_OUT)                  /
          ^                              |                       /
       [ R2 ]                            v                      /
          |                          (Pin 9)                   /
VCC --> [ S2 ] --(Node B)----------> [ U1:Gate 3 ] --(NAND_3)-/
                                     (Pin 10,8)
Esquema Eléctrico

Tabla de verdad

Interruptor A (S1) Interruptor B (S2) Estado del LED (D1) Función lógica
0 (OFF) 0 (OFF) OFF (0) Sin entrada activa
0 (OFF) 1 (ON) ON (1) Entradas diferentes
1 (ON) 0 (OFF) ON (1) Entradas diferentes
1 (ON) 1 (ON) OFF (0) Entradas coinciden

Mediciones y pruebas

  1. Comprobación del estado inicial: Asegúrese de que ambos S1 y S2 estén abiertos. Mida el voltaje en el Pin 11 (FINAL_OUT). Debería ser < 0.5 V (Lógica 0). D1 debería estar apagado.
  2. Conmutación del primer interruptor: Cierre solo S1. Mida el voltaje en el Pin 11. Debería estar cerca de 5 V (Lógica 1). D1 debería encenderse.
  3. Conmutación del segundo interruptor: Abra S1 y cierre S2. Observe D1. Debería encenderse de nuevo (Lógica 1).
  4. Comprobación de colisión: Cierre S1 y S2 simultáneamente. Mida el voltaje en el Pin 3 (NAND_1_OUT). Dado que ambas entradas están en Alto (High), el Pin 3 debe estar en Bajo (Low). En consecuencia, el Pin 11 (FINAL_OUT) debería pasar a Bajo (Low), apagando D1.

Netlist SPICE y simulación

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

* Practical case: Light switching from two points
* Title: Light switching from two points

* ==============================================================================
* COMPONENT MODELS
* ==============================================================================

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

* Voltage Controlled Switch Model for Buttons
* Vt=2.5V threshold, Ron=1 ohm, Roff=10Meg ohm
.model SW_PUSH SW(Vt=2.5 Ron=1 Roff=10Meg)

* ==============================================================================
* MAIN CIRCUIT
* ==============================================================================

* --- Power Supply ---
* V1: 5 V DC power supply
* ... (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: Light switching from two points
* Title: Light switching from two points

* ==============================================================================
* COMPONENT MODELS
* ==============================================================================

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

* Voltage Controlled Switch Model for Buttons
* Vt=2.5V threshold, Ron=1 ohm, Roff=10Meg ohm
.model SW_PUSH SW(Vt=2.5 Ron=1 Roff=10Meg)

* ==============================================================================
* MAIN CIRCUIT
* ==============================================================================

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

* --- Input A (Switch 1) ---
* Simulating physical switch S1 connecting VCC to INPUT_A
* Controlled by V_ACT_S1 (User pressing the button)
* Timing: Period 100us, Width 50us (Toggles faster)
V_ACT_S1 S1_CTRL 0 PULSE(0 5 0 1u 1u 50u 100u)
S1 VCC INPUT_A S1_CTRL 0 SW_PUSH

* R1: 10 kΩ pull-down for Input A
R1 INPUT_A 0 10k

* --- Input B (Switch 2) ---
* Simulating physical switch S2 connecting VCC to INPUT_B
* Controlled by V_ACT_S2 (User pressing the button)
* Timing: Period 200us, Width 100us (Toggles slower)
V_ACT_S2 S2_CTRL 0 PULSE(0 5 0 1u 1u 100u 200u)
S2 VCC INPUT_B S2_CTRL 0 SW_PUSH

* R2: 10 kΩ pull-down for Input B
R2 INPUT_B 0 10k

* --- Logic IC U1: 74HC00 ---
* Quad 2-input NAND gate IC
* Pin connections per Wiring Guide:
* P1=INPUT_A, P2=INPUT_B, P3=NAND_1_OUT
* P4=INPUT_A, P5=NAND_1_OUT, P6=NAND_2_OUT
* P7=0 (GND)
* P8=NAND_3_OUT, P9=NAND_1_OUT, P10=INPUT_B
* P11=FINAL_OUT, P12=NAND_2_OUT, P13=NAND_3_OUT
* P14=VCC
XU1 INPUT_A INPUT_B NAND_1_OUT INPUT_A NAND_1_OUT NAND_2_OUT 0 NAND_3_OUT NAND_1_OUT INPUT_B FINAL_OUT NAND_2_OUT NAND_3_OUT VCC 74HC00

* --- Output Stage ---
* R3: 330 Ω resistor
R3 FINAL_OUT LED_NODE 330

* D1: Red LED
D1 LED_NODE 0 DLED

* ==============================================================================
* SUBCIRCUITS
* ==============================================================================

* Subcircuit for 74HC00 Quad 2-Input NAND Gate
* Uses continuous behavioral sources for robust convergence
* Pinout: 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
    * Gate 1 (1,2 -> 3)
    * Logic: Vout = VCC * (1 - (High(A) * High(B)))
    Bg1 3 7 V={V(14,7)*(1-(1/(1+exp(-50*(V(1,7)-2.5))))*(1/(1+exp(-50*(V(2,7)-2.5)))))}

    * Gate 2 (4,5 -> 6)
    Bg2 6 7 V={V(14,7)*(1-(1/(1+exp(-50*(V(4,7)-2.5))))*(1/(1+exp(-50*(V(5,7)-2.5)))))}

    * Gate 3 (9,10 -> 8)
    Bg3 8 7 V={V(14,7)*(1-(1/(1+exp(-50*(V(9,7)-2.5))))*(1/(1+exp(-50*(V(10,7)-2.5)))))}

    * Gate 4 (12,13 -> 11)
    Bg4 11 7 V={V(14,7)*(1-(1/(1+exp(-50*(V(12,7)-2.5))))*(1/(1+exp(-50*(V(13,7)-2.5)))))}
.ends

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

.op
.tran 1u 500u

* Print critical nodes including Inputs and the Output driving the LED
.print tran V(INPUT_A) V(INPUT_B) V(FINAL_OUT) V(LED_NODE)

.end
* --- GPT review (BOM/Wiring/SPICE) ---
* circuit_ok=true
* simulation_summary: The simulation confirms the XOR logic behavior required for 2-way switching. When inputs differ (e.g., t=51us: A=0, B=1 -> Out=5V; t=101us: A=1, B=1 -> Out=0V; t=180us: A=1, B=0 -> Out=5V), the LED is ON (approx 1.88V drop). When inputs match (0,0 or 1,1), the output is near 0V.
* bom_vs_spice equivalences ignored:
*   - Physical switches S1 and S2 are modeled as voltage-controlled switches (SW_PUSH) driven by PULSE sources (V_ACT_S1, V_ACT_S2) to simulate user interaction.
*   - The 74HC00 Quad NAND IC is modeled as a behavioral subcircuit using mathematical expressions for logic gates.
*   - The LED D1 is modeled as a generic diode DLED with specific parameters.
* overall_comment: The circuit is a classic XOR implementation using four NAND gates, correctly wired to simulate a 2-way light switch (staircase switch). The SPICE netlist accurately represents the BOM and wiring guide. The simulation results perfectly match the provided truth table: the LED lights up only when the switch states are different.
* --------------------------------------

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)

Análisis: The simulation confirms the XOR logic behavior required for 2-way switching. When inputs differ (e.g., t=51us: A=0, B=1 -> Out=5V; t=101us: A=1, B=1 -> Out=0V; t=180us: A=1, B=0 -> Out=5V), the LED is ON (approx 1.88V drop). When inputs match (0,0 or 1,1), the output is near 0V.
Show raw data table (773 rows)
Index   time            v(input_a)      v(input_b)      v(final_out)    v(led_node)
0	0.000000e+00	4.995005e-03	4.995005e-03	-3.70921e-68	-1.32951e-36
1	1.000000e-08	4.995005e-03	4.995005e-03	-3.70921e-68	-3.37339e-37
2	2.000000e-08	4.995005e-03	4.995005e-03	-3.70921e-68	1.661518e-37
3	4.000000e-08	4.995005e-03	4.995005e-03	-3.70921e-68	2.976605e-37
4	8.000000e-08	4.995005e-03	4.995005e-03	-3.70921e-68	8.146600e-38
5	1.600000e-07	4.995005e-03	4.995005e-03	-3.70921e-68	-2.74917e-38
6	3.200000e-07	4.995005e-03	4.995005e-03	-3.70921e-68	-1.00046e-38
7	3.562500e-07	4.995005e-03	4.995005e-03	-3.70921e-68	-9.54478e-40
8	4.196875e-07	4.995005e-03	4.995005e-03	-3.70921e-68	1.440911e-39
9	4.372461e-07	4.995005e-03	4.995005e-03	-3.70921e-68	5.873353e-40
10	4.679736e-07	4.995005e-03	4.995005e-03	-3.70921e-68	-1.64244e-40
11	5.019934e-07	4.999500e+00	4.999500e+00	-3.70921e-68	5.471353e-16
12	5.700330e-07	4.999500e+00	4.999500e+00	-3.70921e-68	1.883035e-16
13	7.061121e-07	4.999500e+00	4.999500e+00	-3.70921e-68	-1.89304e-16
14	9.782703e-07	4.999500e+00	4.999500e+00	-3.70921e-68	1.713539e-16
15	1.000000e-06	4.999500e+00	4.999500e+00	-3.70921e-68	-8.76370e-17
16	1.043459e-06	4.999500e+00	4.999500e+00	-3.70921e-68	2.969253e-18
17	1.130378e-06	4.999500e+00	4.999500e+00	-3.70921e-68	1.336375e-17
18	1.304216e-06	4.999500e+00	4.999500e+00	-3.70921e-68	1.285658e-18
19	1.651892e-06	4.999500e+00	4.999500e+00	-3.70921e-68	-4.38731e-19
20	2.347244e-06	4.999500e+00	4.999500e+00	-3.70921e-68	-3.76487e-20
21	3.347244e-06	4.999500e+00	4.999500e+00	-3.70921e-68	3.641502e-21
22	4.347244e-06	4.999500e+00	4.999500e+00	-3.70921e-68	3.034717e-22
23	5.347244e-06	4.999500e+00	4.999500e+00	-3.70921e-68	-2.04956e-23
... (749 more rows) ...

Errores comunes y cómo evitarlos

  1. Entradas flotantes: Olvidar R1 o R2 hace que las entradas «floten», a menudo leyéndose como Alto (High) debido al ruido electromagnético. Solución: Asegúrese siempre de que las entradas estén conectadas a Tierra (Ground) cuando el interruptor esté abierto.
  2. Retroalimentación de puerta incorrecta: Cablear la salida del Pin 3 a las entradas incorrectas en las Puertas 2 o 3 destruye la lógica. Solución: Verifique dos veces que la salida de la primera NAND (Pin 3) se conecte TANTO a la segunda (Pin 5) como a la tercera (Pin 9) puerta.
  3. Olvidar la alimentación: Los chips lógicos no funcionan pasivamente. Solución: Verifique 5 V en el Pin 14 y continuidad a Tierra en el Pin 7 antes de insertar señales.

Solución de problemas

  • Síntoma: El LED está siempre ON, independientemente de la posición del interruptor.
    • Causa: Error de cableado en la puerta NAND final (Puerta 4) o salida cortocircuitada a VCC.
    • Solución: Compruebe las conexiones en los Pines 11, 12 y 13. Asegúrese de que el Pin 11 no esté tocando el riel positivo.
  • Síntoma: El LED se comporta como una puerta OR (permanece ON cuando ambos interruptores están ON).
    • Causa: La primera puerta NAND (Puerta 1) no está inhibiendo la señal eficazmente.
    • Solución: Compruebe la continuidad en los Pines 1, 2 y 3. Si la salida de la Puerta 1 permanece en Alto (High) cuando las entradas están en Alto, la lógica XOR falla.
  • Síntoma: El circuito funciona de forma errática al tocar los cables.
    • Causa: Faltan resistencias pull-down (entradas flotantes).
    • Solución: Verifique que R1 y R2 estén conectadas firmemente entre los pines de entrada y Tierra.

Posibles mejoras y extensiones

  1. Conmutación de 3 vías: Añada un tercer interruptor y otra etapa XOR (utilizando un segundo 74HC00 o un 74HC86) para controlar la luz desde tres ubicaciones.
  2. Comparación con CI dedicado: Construya el mismo circuito utilizando un 74HC86 (Cuádruple XOR) junto a este para comparar el retardo de propagación y la complejidad del cableado.

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




Pregunta 2: ¿Qué circuito integrado específico se utiliza para este proyecto?




Pregunta 3: ¿Qué función lógica se sintetiza al combinar las cuatro puertas NAND?




Pregunta 4: ¿Por qué se consideran las puertas NAND como bloques de construcción 'universales'?




Pregunta 5: Según el resultado esperado, ¿cuál es el estado del LED cuando ambos interruptores están OFF (00)?




Pregunta 6: ¿En qué tipo de circuito aritmético de las CPU se utiliza fundamentalmente esta topología XOR?




Pregunta 7: ¿Cuál es la aplicación de la lógica XOR en la transmisión de datos mencionada en el texto?




Pregunta 8: ¿Cuántas puertas NAND del CI se combinan para sintetizar la función XOR en este caso?




Pregunta 9: En la lógica de conmutación de pasillo (XOR), ¿qué ocurre si las entradas son diferentes (01 o 10)?




Pregunta 10: ¿Qué demuestra este proyecto sobre la relación entre interruptores y carga?




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: Latch SR antirrebote con NAND

Prototipo de Latch SR antirrebote con NAND (Maker Style)

Nivel: Medio – Construye un circuito de memoria estable para eliminar el ruido de interruptores mecánicos usando compuertas NAND acopladas en cruz.

Objetivo y caso de uso

En este caso práctico, construirás un Latch Set-Reset (SR) utilizando un CI 74HC00. Al disponer dos compuertas NAND en una topología de retroalimentación acoplada en cruz, el circuito crea un elemento de memoria biestable que ignora el ruido mecánico de «rebote» generado cuando se cierran los contactos de un interruptor físico.

Por qué es útil:
* Interfaz con interruptores mecánicos: Esencial para leer botones en sistemas digitales sin disparos falsos.
* Interrupciones de microcontrolador: Proporciona un flanco limpio (subida/bajada) para disparar interrupciones de hardware de manera confiable.
* Retención de estado: Mantiene el último estado conocido (Set o Reset) incluso después de que se libera el disparador de entrada (retorno a reposo).
* Control industrial: Utilizado en circuitos de control de motores «Marcha/Parada» donde la estabilidad es crítica para la seguridad.

Resultado esperado:
* Salida Q: Permanece en ALTO (5 V) cuando se dispara Set y se mantiene en ALTO hasta que se dispara Reset.
* Salida Q_bar: Siempre la inversa de Q (Lógica BAJA cuando Q es ALTA).
* Retroalimentación visual: Dos LEDs (Verde y Rojo) indicando claramente el estado almacenado.
* Inmunidad al ruido: La salida transiciona una vez limpiamente, incluso si los contactos del interruptor rebotan múltiples veces en milisegundos.

Público objetivo y nivel: Estudiantes de electrónica y aficionados de nivel intermedio.

Materiales

  • V1: Fuente de alimentación de 5 V DC
  • U1: 74HC00 (Cuádruple compuerta NAND de 2 entradas)
  • SW1: Interruptor SPDT (Un Polo Doble Tiro), función: selector Set/Reset
  • R1: Resistencia de 10 kΩ, función: pull-up para SET_N
  • R2: Resistencia de 10 kΩ, función: pull-up para RESET_N
  • R3: Resistencia de 330 Ω, función: limitación de corriente LED para Q
  • R4: Resistencia de 330 Ω, función: limitación de corriente LED para Q_bar
  • D1: LED Verde, función: Indicador para Estado Q (Activo)
  • D2: LED Rojo, función: Indicador para Estado Q_bar (Inactivo)
  • C1: Condensador de 100 nF, función: desacople para pines de alimentación de U1

Pin-out del CI utilizado

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

Pin Nombre Función lógica Conexión en este caso
1 1 A Entrada Conecta al Nodo SET_N
2 1B Entrada Conecta al Nodo Q_BAR (Retroalimentación)
3 1Y Salida Conecta al Nodo Q
4 2 A Entrada Conecta al Nodo RESET_N
5 2B Entrada Conecta al Nodo Q (Retroalimentación)
6 2Y Salida Conecta al Nodo Q_BAR
7 GND Tierra Conecta al Nodo 0
14 VCC Alimentación Conecta al Nodo VCC (5 V)

Guía de conexionado

  • Fuente de Alimentación:
  • Conecta el terminal positivo de V1 al nodo VCC.
  • Conecta el terminal negativo de V1 al nodo 0 (GND).
  • Conecta C1 entre VCC y 0 (cerca de U1).
  • Conecta el pin 14 de U1 a VCC.
  • Conecta el pin 7 de U1 a 0.

  • Etapa de Entrada (Interruptor y Pull-ups):

  • Conecta R1 entre VCC y el nodo SET_N.
  • Conecta R2 entre VCC y el nodo RESET_N.
  • Conecta el terminal Común de SW1 al nodo 0.
  • Conecta el terminal Normalmente Abierto (NO) de SW1 al nodo SET_N.
  • Conecta el terminal Normalmente Cerrado (NC) de SW1 al nodo RESET_N. (Nota: Alternar SW1 lleva una línea a Bajo mientras la otra permanece en Alto).

  • Núcleo Lógico (NANDs acopladas en cruz):

  • Conecta el pin 1 (1 A) de U1 al nodo SET_N.
  • Conecta el pin 2 (1B) de U1 al nodo Q_BAR.
  • Conecta el pin 3 (1Y) de U1 al nodo Q.
  • Conecta el pin 4 (2 A) de U1 al nodo RESET_N.
  • Conecta el pin 5 (2B) de U1 al nodo Q.
  • Conecta el pin 6 (2Y) de U1 al nodo Q_BAR.

  • Etapa de Salida (Indicadores):

  • Conecta R3 entre el nodo Q y el Ánodo de D1.
  • Conecta el Cátodo de D1 al nodo 0.
  • Conecta R4 entre el nodo Q_BAR y el Ánodo de D2.
  • Conecta el Cátodo de D2 al nodo 0.

Diagrama de bloques conceptual

Conceptual block diagram — 74HC00 Feedback: Q sends state to …
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: Debouncing SR Latch with NAND

      INPUT STAGE (Switch & Pull-ups)           LOGIC CORE (74HC00 Latch)               OUTPUT STAGE (Indicators)
      ================================          =========================               =========================

      [ VCC ]
         |
         V
      [ R1: 10k Pull-up ]
         |
         V
      (Node: SET_N) --------------------------> [ U1: NAND Gate A ] --(Signal: Q)-----> [ R3: 330 ] --> [ D1: Green LED ] --> GND
         ^                                      ^       |
         |                                      |       |
      [ SW1: SPDT Switch ]                      |       +--(Feedback: Q sends state to Gate B)
      (Connects GND to SET_N or RESET_N)        |
         |                                      +--(Feedback: Q_BAR maintains state of Gate A)
         v                                              |
      (Node: RESET_N) ------------------------> [ U1: NAND Gate B ] --(Signal: Q_BAR)-> [ R4: 330 ] --> [ D2: Red LED ] ----> GND
         ^
         |
      [ R2: 10k Pull-up ]
         |
         ^
         |
      [ VCC ]


      POWER & DECOUPLING:
      [ VCC ] --(Power)--> [ U1: Pin 14 ]
      [ GND ] --(Ground)--> [ U1: Pin 7 ]
      [ VCC ] --(Filter)--> [ C1: 100nF ] --> [ GND ]
Esquema Eléctrico

Tabla de verdad

Las entradas del Latch SR NAND son Activas en Bajo.

SET_N (Entrada) RESET_N (Entrada) Q (Salida) Q_bar (Salida) Descripción del estado
1 (Alto) 1 (Alto) Q Anterior Q_bar Anterior Retención (Memoria)
0 (Bajo) 1 (Alto) 1 0 Set
1 (Alto) 0 (Bajo) 0 1 Reset
0 (Bajo) 0 (Bajo) 1 1 Inválido (Evitar)

Mediciones y pruebas

  1. Encendido inicial: Enciende la fuente de 5 V. Asegúrate de que SW1 esté en una posición específica.
  2. Verificar Reset: Alterna SW1 para llevar RESET_N a Bajo (y SET_N a Alto).
    • Confirma que el LED Rojo (D2, Q_bar) se ENCIENDE.
    • Confirma que el LED Verde (D1, Q) se APAGA.
    • Mide el voltaje en Q: debería ser aprox 0 V.
  3. Verificar Set: Alterna SW1 para llevar SET_N a Bajo.
    • Confirma que el LED Verde (D1, Q) se ENCIENDE.
    • Confirma que el LED Rojo (D2, Q_bar) se APAGA.
    • Mide el voltaje en Q: debería ser aprox 5 V.
  4. Prueba de antirrebote: Mientras mueves el interruptor, observa los LEDs. Deberían cambiar de estado instantáneamente sin parpadear, incluso si el contacto del interruptor es imperfecto.
  5. Prueba de desconexión (Estado de retención): Si desconectas los cables del interruptor para que ambas entradas sean llevadas a Alto por R1/R2, los LEDs deben mantener su último estado válido.

Netlist SPICE y simulación

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

* Title: Practical case: Debouncing SR Latch with NAND
* NGSPICE Netlist
.width out=256

* --- Power Supply ---
V1 VCC 0 DC 5
C1 VCC 0 100n

* --- Input Stage (Switch and Pull-ups) ---
* R1 Pull-up for SET_N
R1 VCC SET_N 10k
* R2 Pull-up for RESET_N
R2 VCC RESET_N 10k

* --- Switch Simulation (SW1 SPDT) ---
* Control Signal Source
V_SW_CTRL CTRL 0 PULSE(0 5 100u 1u 1u 200u 600u)

* Inverted control signal for the NC contact
B_SW_INV CTRL_N 0 V=5-V(CTRL)
* ... (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.

* Title: Practical case: Debouncing SR Latch with NAND
* NGSPICE Netlist
.width out=256

* --- Power Supply ---
V1 VCC 0 DC 5
C1 VCC 0 100n

* --- Input Stage (Switch and Pull-ups) ---
* R1 Pull-up for SET_N
R1 VCC SET_N 10k
* R2 Pull-up for RESET_N
R2 VCC RESET_N 10k

* --- Switch Simulation (SW1 SPDT) ---
* Control Signal Source
V_SW_CTRL CTRL 0 PULSE(0 5 100u 1u 1u 200u 600u)

* Inverted control signal for the NC contact
B_SW_INV CTRL_N 0 V=5-V(CTRL)

* Switch Models (Threshold 2.5V)
.model SW_MECH SW(Vt=2.5 Vh=0.1 Ron=0.1 Roff=100Meg)

* S1 (NO Contact): Connects SET_N to 0 when CTRL is High
S1 SET_N 0 CTRL 0 SW_MECH

* S2 (NC Contact): Connects RESET_N to 0 when CTRL_N is High (CTRL is Low)
S2 RESET_N 0 CTRL_N 0 SW_MECH

* --- Logic Core (74HC00 Quad 2-Input NAND) ---
* Subcircuit for 74HC00 using robust behavioral NAND gates
* Pinout: 1=1A, 2=1B, 3=1Y, 4=2A, 5=2B, 6=2Y, 7=GND, 14=VCC
.subckt 74HC00 1 2 3 4 5 6 7 14
    * Gate 1 (Pins 1, 2 -> Output 3)
    * Logic: NAND. Implementation: Sigmoid-based continuous function for convergence.
    * Vout = VCC * (1 - (Sigmoid(A) * Sigmoid(B)))
    B_NAND1 3 7 V=V(14) * (1 - ( (1/(1+exp(-50*(V(1)-2.5)))) * (1/(1+exp(-50*(V(2)-2.5)))) ))

    * Gate 2 (Pins 4, 5 -> Output 6)
    B_NAND2 6 7 V=V(14) * (1 - ( (1/(1+exp(-50*(V(4)-2.5)))) * (1/(1+exp(-50*(V(5)-2.5)))) ))
.ends

* --- Instantiate U1 ---
* Wiring per guide: 1=SET_N, 2=Q_BAR, 3=Q, 4=RESET_N, 5=Q, 6=Q_BAR, 7=0, 14=VCC
XU1 SET_N Q_BAR Q RESET_N Q Q_BAR 0 VCC 74HC00

* --- Output Stage (Indicators) ---
* R3 between node Q and D1 Anode
R3 Q D1_A 330
* D1 Green LED (Q Active)
D1 D1_A 0 LED_GREEN

* R4 between node Q_BAR and D2 Anode
R4 Q_BAR D2_A 330
* D2 Red LED (Q_BAR Inactive)
D2 D2_A 0 LED_RED

* LED Models
.model LED_GREEN D(Is=1e-22 Rs=5 N=1.5 Eg=2.1)
.model LED_RED D(Is=1e-22 Rs=5 N=1.5 Eg=1.8)

* --- Simulation Commands ---
.op
.tran 1u 1ms

* --- Measurements ---
* Listing SET_N (Input) and Q (Output) first
.print tran V(SET_N) V(Q) V(RESET_N) V(Q_BAR) V(CTRL)

.end
* --- GPT review (BOM/Wiring/SPICE) ---
* circuit_ok=true
* simulation_summary: The simulation confirms correct SR Latch behavior. At t=0, SET_N is Low and RESET_N is High, resulting in Q=High (Set state). At t=100us, the switch toggles: SET_N goes High and RESET_N goes Low, causing Q to go Low and Q_BAR to go High (Reset state). The latch holds state correctly between transitions.
* bom_vs_spice equivalences ignored:
*   - SW1 (SPDT Switch) is modeled using a voltage-controlled switch pair (S1, S2) driven by a PULSE source (V_SW_CTRL) and its inverse.
*   - U1 (74HC00 Quad NAND) is modeled using a behavioral subcircuit with sigmoid-based voltage sources.
* overall_comment: The circuit is a textbook example of a NAND-based SR latch used for switch debouncing. The SPICE implementation faithfully follows the wiring guide, using a clever behavioral model for the 74HC00 and a dual-switch setup to simulate the SPDT action. The transient analysis clearly demonstrates the Set and Reset actions corresponding to the switch position, matching the provided truth table perfectly.
* --------------------------------------

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)

Análisis: The simulation confirms correct SR Latch behavior. At t=0, SET_N is Low and RESET_N is High, resulting in Q=High (Set state). At t=100us, the switch toggles: SET_N goes High and RESET_N goes Low, causing Q to go Low and Q_BAR to go High (Reset state). The latch holds state correctly between transitions.
Show raw data table (1072 rows)
Index   time            v(set_n)        v(q)            v(reset_n)      v(q_bar)        v(ctrl)
0	0.000000e+00	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
1	1.000000e-08	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
2	2.000000e-08	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
3	4.000000e-08	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
4	8.000000e-08	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
5	1.600000e-07	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
6	3.200000e-07	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
7	6.400000e-07	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
8	1.280000e-06	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
9	2.280000e-06	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
10	3.280000e-06	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
11	4.280000e-06	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
12	5.280000e-06	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
13	6.280000e-06	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
14	7.280000e-06	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
15	8.280000e-06	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
16	9.280000e-06	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
17	1.028000e-05	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
18	1.128000e-05	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
19	1.228000e-05	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
20	1.328000e-05	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
21	1.428000e-05	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
22	1.528000e-05	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
23	1.628000e-05	4.999500e+00	3.709206e-68	4.999950e-05	5.000000e+00	0.000000e+00
... (1048 more rows) ...

Errores comunes y cómo evitarlos

  1. Dejar entradas flotando: Si quitas el interruptor y no tienes las resistencias R1/R2, las entradas flotan, causando oscilación impredecible. Solución: Usa siempre resistencias pull-up (10 kΩ) en las entradas del latch NAND.
  2. Confundir Activo en Bajo vs. Activo en Alto: Los usuarios a menudo esperan que un «1» active el latch. Un latch NAND se activa cuando la entrada va a «0». Solución: Recuerda que los latches NAND se disparan con pulsos a tierra (Bajo).
  3. Estado prohibido: presionar dos botones simultáneamente (si se usan botones en lugar de SPDT) crea un 0 Lógico en ambas entradas, forzando ambas salidas a Alto. Solución: Evita mecánicamente las pulsaciones simultáneas o diseña lógica para priorizar una entrada.

Solución de problemas

  • Ambos LEDs están ENCENDIDOS:
    • Causa: Tanto SET_N como RESET_N están conectados a Tierra (Lógica 0) simultáneamente.
    • Solución: Revisa el cableado del interruptor; asegúrate de no estar cortocircuitando ambas entradas a tierra.
  • El circuito no retiene el estado (los LEDs parpadean o siguen al interruptor vagamente):
    • Causa: Falta la conexión de retroalimentación.
    • Solución: Asegúrate de que el cable del Pin 3 (Q) vaya al Pin 5, y el del Pin 6 (Q_BAR) vaya al Pin 2.
  • El chip se calienta:
    • Causa: Cortocircuito en la salida o polaridad de alimentación invertida.
    • Solución: Comprueba que R3 y R4 estén presentes (no conectes LEDs directamente a las salidas) y verifica que el Pin 14 sea 5 V y el Pin 7 sea GND.

Posibles mejoras y extensiones

  1. Latch SR con habilitación (Gated): Agrega dos compuertas NAND extra (usando las dos restantes en el 74HC00) para añadir una señal de «Enable» (Habilitación), convirtiéndolo en una celda de memoria síncrona.
  2. Controlador de contador digital: Usa la salida Q para manejar la entrada de reloj de un contador CD4017 o 74HC4017, demostrando que la pulsación manual del botón genera exactamente un pulso de reloj limpio.

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 se utiliza en este caso práctico para construir el Latch SR?




Pregunta 2: ¿Cuál es el objetivo principal de usar este circuito con interruptores mecánicos?




Pregunta 3: ¿Qué topología de conexión se utiliza entre las compuertas NAND?




Pregunta 4: ¿Qué característica define a este circuito como un elemento de memoria 'biestable'?




Pregunta 5: ¿Qué sucede con la salida Q cuando se dispara la entrada Set en este circuito?




Pregunta 6: ¿Por qué es útil este circuito para las interrupciones de un microcontrolador?




Pregunta 7: ¿Qué ocurre con el estado del circuito cuando se libera el disparador de entrada (retorno a reposo)?




Pregunta 8: ¿En qué aplicación de control industrial es crítico este tipo de circuito por seguridad?




Pregunta 9: ¿Qué problema físico de los botones resuelve este circuito?




Pregunta 10: ¿Cuántas entradas de control principales tiene típicamente un Latch SR básico?




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: