Caso práctico: contador 0-9 con reset compatible TTL

Prototipo de contador 0-9 con reset compatible TTL (Maker Style)

Nivel: Medio — Construye un contador decimal que avanza de 0 a 9 y se reinicia automáticamente usando una puerta AND compatible TTL.

Objetivo y caso de uso

Construirás un contador decimal basado en un contador ripple 74LS93 y una puerta AND 74HCT08. El circuito cuenta de 0000 a 1001 y se reinicia automáticamente cuando aparece 1010.

Esto es útil para:
– Contadores simples de eventos con una interfaz de visualización decimal
– Etapas divisoras de reloj para experimentos de temporización
– Aprender cómo funciona el reset asíncrono en contadores ripple
– Probar la compatibilidad lógica TTL a CMOS/HCT en diseños lógicos mixtos

Resultado esperado:
QA, QB, QC y QD muestran una secuencia de conteo binario de 0 a 9
RESET_NODE pasa a HIGH solo cuando QB = 1 y QD = 1
– El contador se borra inmediatamente cuando se alcanza el estado 1010
– Los LED en las cuatro salidas repiten visiblemente el ciclo decimal
– La alimentación lógica se mantiene en +5 V, con niveles compatibles TTL entre el 74LS93 y el 74HCT08

Público objetivo y nivel: Estudiantes y técnicos con experiencia básica en electrónica digital.

Materiales

  • U1: contador ripple de 4 bits 74LS93, función: generación de conteo binario
  • U2: puerta AND cuádruple de 2 entradas 74HCT08, función: detección de reset compatible TTL
  • V1: fuente DC de 5 V, función: alimentación del circuito lógico
  • X1: fuente de reloj de onda cuadrada 0-5 V, función: señal CLK_IN
  • D1: LED rojo, función: indicador de QA
  • D2: LED rojo, función: indicador de QB
  • D3: LED rojo, función: indicador de QC
  • D4: LED rojo, función: indicador de QD
  • R1: resistencia de 330 Ω, función: limitación de corriente para D1
  • R2: resistencia de 330 Ω, función: limitación de corriente para D2
  • R3: resistencia de 330 Ω, función: limitación de corriente para D3
  • R4: resistencia de 330 Ω, función: limitación de corriente para D4
  • C1: condensador de 100 nF, función: desacoplo local para U1
  • C2: condensador de 100 nF, función: desacoplo local para U2

Pin-out del CI utilizado

74LS93

Pin Nombre Función lógica Conexión en este caso
5 VCC Alimentación de +5 V VCC
10 GND Tierra 0
14 CP0 Entrada de reloj A CLK_IN
1 CP1 Entrada de reloj B Conectada a QA para cascada
2 R0(1) Entrada de reset asíncrono RESET_NODE
3 R0(2) Entrada de reset asíncrono RESET_NODE
12 QA Salida LSB QA, LED D1 y realimentación a CP1
9 QB Salida del contador QB, LED D2 y entrada de detección de reset
8 QC Salida del contador QC, LED D3
11 QD Salida MSB QD, LED D4 y entrada de detección de reset

74HCT08

Pin Nombre Función lógica Conexión en este caso
14 VCC Alimentación de +5 V VCC
7 GND Tierra 0
1 1 A Entrada A de AND QB
2 1B Entrada B de AND QD
3 1Y Salida de AND RESET_NODE

Guía de conexionado

  • V1 se conecta entre VCC y 0.
  • C1 se conecta entre VCC y 0, colocado cerca de U1.
  • C2 se conecta entre VCC y 0, colocado cerca de U2.

  • U1 pin 5 se conecta a VCC.

  • U1 pin 10 se conecta a 0.
  • U1 pin 14 se conecta a CLK_IN.
  • U1 pin 1 se conecta al nodo QA.
  • U1 pin 2 se conecta a RESET_NODE.
  • U1 pin 3 se conecta a RESET_NODE.
  • U1 pin 12 se conecta al nodo QA.
  • U1 pin 9 se conecta al nodo QB.
  • U1 pin 8 se conecta al nodo QC.
  • U1 pin 11 se conecta al nodo QD.

  • U2 pin 14 se conecta a VCC.

  • U2 pin 7 se conecta a 0.
  • U2 pin 1 se conecta al nodo QB.
  • U2 pin 2 se conecta al nodo QD.
  • U2 pin 3 se conecta al nodo RESET_NODE.

  • R1 se conecta entre QA y el nodo LED1_A.

  • D1 se conecta entre LED1_A y 0.
  • R2 se conecta entre QB y el nodo LED2_A.
  • D2 se conecta entre LED2_A y 0.
  • R3 se conecta entre QC y el nodo LED3_A.
  • D3 se conecta entre LED3_A y 0.
  • R4 se conecta entre QD y el nodo LED4_A.
  • D4 se conecta entre LED4_A y 0.

Usa el 74HCT08, no el 74HC08, porque la puerta de reset está accionada por salidas TTL del 74LS93 y debe aceptar de forma fiable niveles HIGH compatibles TTL.

Diagrama de bloques conceptual

Conceptual block diagram — CONTADOR 0-9 counter with reset
Lectura rápida: entradas → bloque principal → salida (actuador o medida). Resume el esquemático ASCII de la siguiente sección.

Esquemático

Practical case: 0-9 counter with TTL-compatible reset (74LS93 + 74HCT08)

[ X1: CLK_IN 0-5 V square ] --> [ U1: 74LS93 4-bit Ripple Counter (CP0 pin14) ]
(Internal to U1: QA (pin12) --> CP1 (pin1) for divide-by-10 configuration)

U1 Q outputs to indicators (loads on the right):
[ U1: QA (pin12) ] --> [ R1: 330 Ω ] --> [ D1: Red LED ] --> GND
[ U1: QB (pin9)  ] --> [ R2: 330 Ω ] --> [ D2: Red LED ] --> GND
[ U1: QC (pin8)  ] --> [ R3: 330 Ω ] --> [ D3: Red LED ] --> GND
[ U1: QD (pin11) ] --> [ R4: 330 Ω ] --> [ D4: Red LED ] --> GND

Reset detection (separate branches; TTL-compatible gate):
[ Tap: U1.QB (pin9) ] -->
[ Tap: U1.QD (pin11) ] --> [ U2: 74HCT08 AND (pins 1,2→3) ] --(RESET_NODE)--> (to U1 Async Reset R0(1),R0(2) pins 2 & 3)

Power and decoupling (for completeness):
[ V1: +5 V ] --> [ U1: VCC pin5 ]          ; return GND --> (U1 GND pin10)
[ V1: +5 V ] --> [ U2: VCC pin14 ]         ; return GND --> (U2 GND pin7)
[ C1: 100 nF ] between U1 VCC and GND (place close to U1)
[ C2: 100 nF ] between U2 VCC and GND (place close to U2)
Esquema Eléctrico

Diagrama eléctrico

Diagrama electrico del caso: Caso práctico: contador 0-9 con reset compatible TTL
Generado desde la netlist SPICE validada del caso.

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

Tabla de verdad

Esta tabla corresponde a la puerta AND usada para la detección de reset.

QB QD RESET_NODE
0 0 0
0 1 0
1 0 0
1 1 1

Mediciones y pruebas

  1. Comprobación de continuidad con la alimentación apagada
  2. Verifica que VCC no esté en cortocircuito con 0.
  3. Confirma que los pines de reset 2 y 3 de U1 estén unidos en RESET_NODE.
  4. Confirma que el pin 1 de U1 esté conectado a QA.

  5. Comprobación estática con la alimentación encendida

  6. Aplica +5 V.
  7. Comprueba que tanto U1 como U2 reciben la tensión de alimentación correcta.
  8. Sin reloj aplicado, las salidas pueden arrancar en un estado desconocido; un breve reset manual a RESET_NODE = HIGH debería forzar QA QB QC QD = 0000.

  9. Verificación del reloj

  10. Mide CLK_IN con un osciloscopio.
  11. Usa una frecuencia lenta como 1 Hz a 10 Hz para la observación visual de los LED.
  12. Confirma que el reloj oscila aproximadamente de 0 V a 5 V.

  13. Comprobación de la secuencia del contador

  14. Mide QA, QB, QC y QD.
  15. Verifica la secuencia:
    • 0000
    • 0001
    • 0010
    • 0011
    • 0100
    • 0101
    • 0110
    • 0111
    • 1000
    • 1001
  16. El siguiente estado intentado es 1010, pero debe reiniciarse inmediatamente a 0000.

  17. Validación del nodo de reset

  18. Mide RESET_NODE.
  19. Debe permanecer en LOW para las cuentas 0000 hasta 1001.
  20. Debe generar un pulso HIGH cuando QB = 1 y QD = 1, lo que corresponde a la detección de 1010.

  21. Observación de los LED

  22. D1 debe conmutar a la mayor velocidad visible.
  23. D2 conmuta a la mitad de la velocidad de QA.
  24. D3 y D4 conmutan progresivamente más lento.
  25. El patrón visible debe repetirse cada 10 pulsos de reloj.

Netlist SPICE y simulación

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

* Practical case: Decade counter 0-9 with reset (Corrected)
.width out=256
* Fixed Impedance and Timing issues for 74LS93 ripple counter
* Ngspice compliant netlist

* --- COMPONENT MODELS ---
* Generic Red LED Model
.model DLED D(IS=1e-14 N=1.7 RS=10 BV=5 IBV=10u CJO=10p)

* --- LOGIC GATE SUBCIRCUITS (Behavioral with Low Impedance Output) ---
* IMPORTANT: Output Impedance reduced to 50 ohms to drive LEDs and avoid loading effects.
* Delays (C1=10p) maintained for convergence and latch feedback.

* Inverter (Standard Delay ~500ps)
.subckt INV A Y VCC GND
B1 Y_int 0 V = V(VCC) * (1 / (1 + exp(20 * (V(A) - 2.5))))
R1 Y_int Y 50
C1 Y 0 10p
.ends

* ... (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: Decade counter 0-9 with reset (Corrected)
.width out=256
* Fixed Impedance and Timing issues for 74LS93 ripple counter
* Ngspice compliant netlist

* --- COMPONENT MODELS ---
* Generic Red LED Model
.model DLED D(IS=1e-14 N=1.7 RS=10 BV=5 IBV=10u CJO=10p)

* --- LOGIC GATE SUBCIRCUITS (Behavioral with Low Impedance Output) ---
* IMPORTANT: Output Impedance reduced to 50 ohms to drive LEDs and avoid loading effects.
* Delays (C1=10p) maintained for convergence and latch feedback.

* Inverter (Standard Delay ~500ps)
.subckt INV A Y VCC GND
B1 Y_int 0 V = V(VCC) * (1 / (1 + exp(20 * (V(A) - 2.5))))
R1 Y_int Y 50
C1 Y 0 10p
.ends

* Fast Inverter (Minimal Delay ~5ps) - Used for Clock Edge logic to prevent races
.subckt INV_FAST A Y VCC GND
B1 Y_int 0 V = V(VCC) * (1 / (1 + exp(20 * (V(A) - 2.5))))
R1 Y_int Y 50
C1 Y 0 0.1p
.ends

* 2-Input NAND
.subckt NAND2 A B Y VCC GND
B1 Y_int 0 V = V(VCC) * (1 - ( (1/(1+exp(-20*(V(A)-2.5)))) * (1/(1+exp(-20*(V(B)-2.5)))) ))
R1 Y_int Y 50
C1 Y 0 10p
.ends

* 3-Input NAND
.subckt NAND3 A B C Y VCC GND
B1 Y_int 0 V = V(VCC) * (1 - ( (1/(1+exp(-20*(V(A)-2.5)))) * (1/(1+exp(-20*(V(B)-2.5)))) * (1/(1+exp(-20*(V(C)-2.5)))) ))
R1 Y_int Y 50
C1 Y 0 10p
.ends

* 2-Input AND
.subckt AND2 A B Y VCC GND
B1 Y_int 0 V = V(VCC) * ( (1/(1+exp(-20*(V(A)-2.5)))) * (1/(1+exp(-20*(V(B)-2.5)))) )
R1 Y_int Y 50
C1 Y 0 10p
.ends

* --- FLIP-FLOP SUBCIRCUIT ---
* T-FlipFlop: Negative Edge Triggered with Active High Clear
* Uses INV_FAST for clock inversion to ensure Master-Slave non-overlap (Race Fix).
.subckt TFF_NEG_CLR CLK CLR Q QBAR VCC GND
* Invert Clear
XINV_CLR CLR CLR_BAR VCC GND INV

* Invert Clock FAST (Avoids race where both Master and Slave are transparent)
XINV_CLK CLK CLK_BAR VCC GND INV_FAST

* -- Master Latch (Tracks D=QBAR when CLK=1) --
XG1 QBAR CLK M_SET_BAR VCC GND NAND2
XG2 Q CLK CLR_BAR M_RST_BAR VCC GND NAND3
XL1 M_SET_BAR M_QBAR M_Q VCC GND NAND2
XL2 M_RST_BAR M_Q CLR_BAR M_QBAR VCC GND NAND3

* -- Slave Latch (Tracks Master when CLK=0 -> CLK_BAR=1) --
* Uses CLK_BAR which is delayed only slightly less than gates, ensuring clean handover.
XG3 M_Q CLK_BAR S_SET_BAR VCC GND NAND2
XG4 M_QBAR CLK_BAR S_RST_BAR VCC GND NAND2
XL3 S_SET_BAR QBAR Q VCC GND NAND2
XL4 S_RST_BAR Q CLR_BAR QBAR VCC GND NAND3
.ends

* --- IC SUBCIRCUITS ---

* U1: 74LS93 4-Bit Binary Counter
* Pinout mapping adjusted to match standard 14-pin DIP in netlist order:
* 1=IN_B, 2=R0(1), 3=R0(2), 5=VCC, 8=QC, 9=QB, 10=GND, 11=QD, 12=QA, 14=IN_A
.subckt 74LS93 IN_B R0_1 R0_2 VCC QC QB GND QD QA IN_A
* Internal Reset Logic: Reset if R0_1 AND R0_2 are High
XAND_RST R0_1 R0_2 RESET VCC GND AND2

* Section 1: 1-bit counter (Input A -> QA)
XFFA IN_A RESET QA QA_BAR VCC GND TFF_NEG_CLR

* Section 2: 3-bit ripple counter (Input B -> QB -> QC -> QD)
XFFB IN_B RESET QB QB_BAR VCC GND TFF_NEG_CLR
XFFC QB RESET QC QC_BAR VCC GND TFF_NEG_CLR
XFFD QC RESET QD QD_BAR VCC GND TFF_NEG_CLR
.ends

* U2: 74HCT08 Quad 2-Input AND Gate
* HCT input thresholds are TTL-compatible, so 74LS93 HIGH outputs
* reliably drive the reset-detect gate in a real classroom build.
* Pins: 1=1A, 2=1B, 3=1Y, 7=GND, 14=VCC
.subckt 74HCT08 1A 1B 1Y GND VCC
XG1 1A 1B 1Y VCC GND AND2
.ends

* --- MAIN CIRCUIT ---

* 1. Power Supply
V1 VCC 0 DC 5

* 2. Clock Signal (50kHz)
V2 CLK_IN 0 PULSE(0 5 1u 100n 100n 10u 20u)

* 3. U1: 74LS93 Counter
* Wiring Guide connections:
* Pin 1 (CKB) connects to QA_NODE (Cascade)
* Pin 12 (QA) connects to QA_NODE
* Pin 14 (CKA) connects to CLK_IN
* Pin 2, 3 connect to RESET_NODE
* Outputs to LEDs
XU1 QA_NODE RESET_NODE RESET_NODE VCC QC_NODE QB_NODE 0 QD_NODE QA_NODE CLK_IN 74LS93

* 4. U2: 74HCT08 Reset Logic
* Reset when Count=10 (Binary 1010 -> QD=1, QB=1)
* Inputs: QB_NODE, QD_NODE -> Output: RESET_NODE
XU2 QB_NODE QD_NODE RESET_NODE 0 VCC 74HCT08

* 5. LED Indicators (with Current Limiting Resistors)
* Bit 0 (QA)
R1 QA_NODE N_D1 330
D1 N_D1 0 DLED

* Bit 1 (QB)
R2 QB_NODE N_D2 330
D2 N_D2 0 DLED

* Bit 2 (QC)
R3 QC_NODE N_D3 330
D3 N_D3 0 DLED

* Bit 3 (QD)
R4 QD_NODE N_D4 330
D4 N_D4 0 DLED

* --- SIMULATION COMMANDS ---
.op
* Transient analysis: 500us to see counts 0-9 and reset
.tran 100n 500u

* Print essential nodes. CLK_IN first.
.print tran V(CLK_IN) V(QA_NODE) V(QB_NODE) V(QC_NODE) V(QD_NODE) V(RESET_NODE)

.end
* --- GPT review (BOM/Wiring/SPICE) ---
* circuit_ok=true
* simulation_summary: The simulation successfully demonstrates a 4-bit counting sequence. The counter increments on the falling edge of the clock. The reset logic triggers correctly when the count reaches 10 (Binary 1010: QD=High, QB=High), forcing the outputs back to 0 immediately, effectively creating a 0-9 decade counter.
* bom_vs_spice equivalences ignored:
*   - Clock source V2 modeled as a PULSE voltage source.
*   - LEDs (D1-D4) modeled as generic diodes with specific parameters (DLED).
*   - U1 (74LS93) modeled as a behavioral subcircuit using flip-flops and logic gates.
*   - U2 (74HCT08) modeled as a behavioral subcircuit using AND gates.
* overall_comment: The circuit is well-designed and the SPICE netlist accurately reflects the intended decade counter logic. The behavioral models for the 74LS93 and 74HCT08 are robust, including necessary delays to prevent race conditions. The simulation logs confirm the modulo-10 reset operation works as expected. This is a solid didactic example.
* --------------------------------------

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)
Análisis: The simulation successfully demonstrates a 4-bit counting sequence. The counter increments on the falling edge of the clock. The reset logic triggers correctly when the count reaches 10 (Binary 1010: QD=High, QB=High), forcing the outputs back to 0 immediately, effectively creating a 0-9 decade counter.
Show raw data table (6785 rows)
Index   time            v(clk_in)       v(qa_node)      v(qb_node)      v(qc_node)      v(qd_node)      v(reset_node)
0	0.000000e+00	0.000000e+00	-7.27413e-30	4.514570e+00	-7.27413e-30	-7.27411e-30	9.643749e-22
1	1.000000e-09	0.000000e+00	-6.24961e-30	4.514570e+00	-6.24960e-30	-6.24960e-30	9.643749e-22
2	2.000000e-09	0.000000e+00	-4.31599e-30	4.514570e+00	-4.31599e-30	-4.31599e-30	9.643749e-22
3	4.000000e-09	0.000000e+00	-8.63940e-32	4.514570e+00	-8.63867e-32	-8.63940e-32	9.643749e-22
4	8.000000e-09	0.000000e+00	6.051302e-30	4.514570e+00	6.051309e-30	6.051302e-30	9.643749e-22
5	1.600000e-08	0.000000e+00	8.619372e-30	4.514570e+00	8.619381e-30	8.619372e-30	9.643749e-22
6	3.200000e-08	0.000000e+00	4.420001e-30	4.514570e+00	4.420001e-30	4.419984e-30	9.643749e-22
7	6.400000e-08	0.000000e+00	-8.88725e-31	4.514570e+00	-8.88725e-31	-8.88708e-31	9.643749e-22
8	1.280000e-07	0.000000e+00	-1.16882e-30	4.514570e+00	-1.16881e-30	-1.16884e-30	9.643749e-22
9	2.280000e-07	0.000000e+00	-1.70113e-31	4.514570e+00	-1.70131e-31	-1.70113e-31	9.643749e-22
10	3.280000e-07	0.000000e+00	1.102262e-31	4.514570e+00	1.101893e-31	1.102078e-31	9.643749e-22
11	4.280000e-07	0.000000e+00	-2.09740e-32	4.514570e+00	-2.09440e-32	-2.09556e-32	9.643749e-22
12	5.280000e-07	0.000000e+00	3.730926e-32	4.514570e+00	3.729081e-32	3.729081e-32	9.643749e-22
13	6.280000e-07	0.000000e+00	-4.04764e-32	4.514570e+00	-4.04464e-32	-4.04395e-32	9.643749e-22
14	7.280000e-07	0.000000e+00	3.793658e-32	4.514570e+00	3.789968e-32	3.791813e-32	9.643749e-22
15	8.280000e-07	0.000000e+00	-3.71737e-32	4.514570e+00	-3.71437e-32	-3.71552e-32	9.643749e-22
16	9.280000e-07	0.000000e+00	3.658968e-32	4.514570e+00	3.657123e-32	3.658968e-32	9.643749e-22
17	1.000000e-06	0.000000e+00	-3.53679e-32	4.514570e+00	-3.53610e-32	-3.53496e-32	9.643749e-22
18	1.010000e-06	5.000000e-01	-2.79091e-33	4.514570e+00	-2.80820e-33	-2.79091e-33	9.643749e-22
19	1.030000e-06	1.500000e+00	1.602683e-33	4.514570e+00	1.585385e-33	1.602683e-33	9.643749e-22
20	1.048757e-06	2.437856e+00	4.312441e+00	4.514570e+00	-1.25584e-33	-1.27306e-33	9.643749e-22
21	1.062135e-06	3.106726e+00	4.691659e+00	4.514570e+00	1.096887e-33	1.103161e-33	9.643749e-22
22	1.071814e-06	3.590675e+00	4.366639e+00	4.514570e+00	-8.23695e-34	-8.33794e-34	9.643749e-22
23	1.080871e-06	4.043525e+00	4.636207e+00	4.514570e+00	6.872047e-34	7.032322e-34	9.643749e-22
... (6761 more rows) ...

Errores comunes y cómo evitarlos

  1. Usar 74HC08 en lugar de 74HCT08
  2. Problema: el nivel HIGH del 74LS93 puede no cumplir de forma fiable los umbrales de entrada estándar de HC.
  3. Solución: usa 74HCT08 para niveles de entrada compatibles TTL.

  4. Olvidar la conexión de QA a CP1

  5. Problema: el 74LS93 no contará correctamente a través de la secuencia prevista de 4 bits.
  6. Solución: conecta directamente el pin 12 (QA) de U1 al pin 1 (CP1) de U1.

  7. Entradas de reset no unidas entre sí

  8. Problema: el contador puede no borrarse cuando ocurra 1010.
  9. Solución: conecta tanto R0(1) como R0(2) al mismo RESET_NODE.

Solución de problemas

  • Síntoma: La cuenta supera 9.
  • Causa: QB o QD no está correctamente conectado a la puerta AND.
  • Solución: verifica U2 pin 1 = QB, U2 pin 2 = QD y U2 pin 3 = RESET_NODE.

  • Síntoma: El circuito nunca cuenta.

  • Causa: RESET_NODE está atascado en HIGH.
  • Solución: revisa si hay cableado incorrecto, cortocircuitos o pines intercambiados en la puerta AND.

  • Síntoma: Los LED se comportan aleatoriamente al encender.

  • Causa: los contadores ripple pueden arrancar en un estado indefinido.
  • Solución: aplica un pulso corto de reset al inicio.

  • Síntoma: El reset no es fiable.

  • Causa: se usó una familia lógica incorrecta para la puerta de reset.
  • Solución: reemplaza cualquier 74HC08 por 74HCT08.

  • Síntoma: Solo conmuta la primera etapa.

  • Causa: falta la conexión en cascada de QA a CP1.
  • Solución: vuelve a conectar el pin 12 de U1 al pin 1 de U1.

Posibles mejoras y extensiones

  • Añade un decodificador BCD a 7 segmentos y una pantalla para que la cuenta se muestre directamente como dígitos de 0 a 9.
  • Sustituye la fuente de reloj por un pulsador con anti-rebote para avance manual y observación de cada estado.

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 como contador ripple de 4 bits en el montaje descrito?




Pregunta 2: ¿Qué función cumple el 74HCT08 en este contador decimal?




Pregunta 3: ¿Entre qué valores cuenta el circuito antes de reiniciarse?




Pregunta 4: ¿En qué estado binario se activa el borrado automático del contador?




Pregunta 5: ¿Cuándo pasa RESET_NODE a nivel HIGH según el artículo?




Pregunta 6: ¿Qué tensión de alimentación lógica se indica para mantener compatibilidad TTL?




Pregunta 7: ¿Cuál es una aplicación mencionada para este contador decimal?




Pregunta 8: ¿Qué muestran QA, QB, QC y QD durante el funcionamiento esperado?




Pregunta 9: ¿Qué tipo de reset se busca aprender con este montaje?




Pregunta 10: ¿Qué compatibilidad lógica se destaca entre los circuitos usados?




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: Contador de objetos en cinta transportadora

Esquemático — Caso práctico: Contador de objetos en cinta transportadora

Nivel: Medio – Construye un contador óptico de objetos con salidas decimales y un reinicio automático de lote.

Objetivo y caso de uso

En este caso práctico, construirás un circuito contador óptico secuencial utilizando una resistencia dependiente de la luz (LDR), un inversor 74HC04 para el acondicionamiento de la señal y un contador de décadas CD4017BE. El circuito detecta objetos que interrumpen un haz de luz, los cuenta secuencialmente mediante indicadores LED y se reinicia automáticamente después de un lote de 5 artículos.

Este circuito es muy relevante en escenarios del mundo real:
Líneas de envasado: Agrupación automática de productos en tamaños de lote predeterminados (por ejemplo, 5 artículos por caja).
Automatización industrial: Seguimiento del movimiento de piezas discretas a lo largo de una cinta transportadora.
Enclavamientos de seguridad: Monitorización de interruptores de límite o barreras ópticas para garantizar que un ciclo de operación se complete en su totalidad.

Resultado esperado:
– El divisor de tensión de la LDR oscilará de ALTO (iluminada) a BAJO (haz bloqueado).
– El inversor 74HC04 generará un flanco de reloj de subida limpio (VB) con cada detección.
– El contador CD4017BE avanzará su señal lógica activa en ALTO a través de las salidas Q0 a Q4, encendiendo los LED en secuencia.
– Cuando se detecta el sexto objeto (conteo de 5), la salida Q5 activará el pin de reinicio, borrando instantáneamente el conteo de vuelta a 0.

Público objetivo: Estudiantes de electrónica que aprenden lógica secuencial, contadores decimales e integración básica de sensores.

Materiales

  • V1: fuente de alimentación de 5 V CC
  • RLDR1: Resistencia dependiente de la luz (LDR), función: detección óptica
  • R1: resistencia de 10 kΩ, función: pull-down del divisor de tensión para la LDR
  • U1: 74HC04, función: inversor lógico y conformador de flanco de reloj
  • U2: CD4017BE, función: contador de décadas con salidas decodificadas
  • D1: LED rojo, función: indicador del conteo 0
  • D2: LED rojo, función: indicador del conteo 1
  • D3: LED rojo, función: indicador del conteo 2
  • D4: LED rojo, función: indicador del conteo 3
  • D5: LED rojo, función: indicador del conteo 4
  • R2: resistencia de 330 Ω, función: limitación de corriente del LED D1
  • R3: resistencia de 330 Ω, función: limitación de corriente del LED D2
  • R4: resistencia de 330 Ω, función: limitación de corriente del LED D3
  • R5: resistencia de 330 Ω, función: limitación de corriente del LED D4
  • R6: resistencia de 330 Ω, función: limitación de corriente del LED D5
  • C1: condensador de 100 nF, función: desacoplo de U1
  • C2: condensador de 100 nF, función: desacoplo de U2

Pin-out del CI utilizado

74HC04 (Inversor hexadecimal)

Pin Nombre Función lógica Conexión en este caso
1 1A Entrada Se conecta al divisor de la LDR (VA)
2 1Y Salida Se conecta al reloj de U2 (VB)
7 GND Tierra Se conecta a 0
14 VCC Alimentación Se conecta a VCC

CD4017BE (Contador de décadas / divisor)

Pin Nombre Función lógica Conexión en este caso
14 CLK Entrada de reloj Se conecta a la señal invertida del sensor (VB)
13 CKE Habilitación de reloj Se conecta a 0 (activo en nivel bajo)
15 RST Reinicio Se conecta a Q5 (VC) para reinicio automático
3 Q0 Salida 0 Se conecta a la rama de D1 (V_Q0)
2 Q1 Salida 1 Se conecta a la rama de D2 (V_Q1)
4 Q2 Salida 2 Se conecta a la rama de D3 (V_Q2)
7 Q3 Salida 3 Se conecta a la rama de D4 (V_Q3)
10 Q4 Salida 4 Se conecta a la rama de D5 (V_Q4)
1 Q5 Salida 5 Se conecta a reinicio (VC)
8 VSS Tierra Se conecta a 0
16 VDD Alimentación Se conecta a VCC

Nota: Los pines 5, 6, 9, 11 y 12 son salidas decodificadas no utilizadas y el pin de acarreo; se dejan flotando en este caso.

Guía de conexionado

  • V1 se conecta entre VCC y 0.
  • RLDR1 se conecta entre VCC y VA.
  • R1 se conecta entre VA y 0.
  • El pin 14 de U1 se conecta a VCC.
  • El pin 7 de U1 se conecta a 0.
  • El pin 1 de U1 se conecta a VA.
  • El pin 2 de U1 se conecta a VB.
  • El pin 16 de U2 se conecta a VCC.
  • El pin 8 de U2 se conecta a 0.
  • El pin 13 de U2 se conecta a 0.
  • El pin 14 de U2 se conecta a VB.
  • El pin 1 de U2 se conecta a VC.
  • El pin 15 de U2 se conecta a VC.
  • El pin 3 de U2 se conecta a V_Q0.
  • El pin 2 de U2 se conecta a V_Q1.
  • El pin 4 de U2 se conecta a V_Q2.
  • El pin 7 de U2 se conecta a V_Q3.
  • El pin 10 de U2 se conecta a V_Q4.
  • R2 se conecta entre V_Q0 y V_D1.
  • D1 se conecta entre V_D1 y 0.
  • R3 se conecta entre V_Q1 y V_D2.
  • D2 se conecta entre V_D2 y 0.
  • R4 se conecta entre V_Q2 y V_D3.
  • D3 se conecta entre V_D3 y 0.
  • R5 se conecta entre V_Q3 y V_D4.
  • D4 se conecta entre V_D4 y 0.
  • R6 se conecta entre V_Q4 y V_D5.
  • D5 se conecta entre V_D5 y 0.
  • C1 se conecta entre VCC y 0, cerca de U1.
  • C2 se conecta entre VCC y 0, cerca de U2.

Diagrama de bloques conceptual

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

Esquemático

[ U2: CD4017BE Decade Counter ]
                                                             |                             |
VCC --> [ RLDR1: LDR ] --(VA)--> [ U1: 74HC04 Inverter ] --(VB)--> CLK (Pin 14)            |
                           |                                 |                  Q0 (Pin 3)-|--(V_Q0)--> [ R2: 330 ] --> [ D1: Red LED ] --> GND
                           +---> [ R1: 10k ] --> GND         |                  Q1 (Pin 2)-|--(V_Q1)--> [ R3: 330 ] --> [ D2: Red LED ] --> GND
                                                             |                  Q2 (Pin 4)-|--(V_Q2)--> [ R4: 330 ] --> [ D3: Red LED ] --> GND
                                                 +--(VC)---------> RST (Pin 15) Q3 (Pin 7)-|--(V_Q3)--> [ R5: 330 ] --> [ D4: Red LED ] --> GND
                                                 |           |                  Q4 (Pin 10)|--(V_Q4)--> [ R6: 330 ] --> [ D5: Red LED ] --> GND
                                                 +---------------< Q5 (Pin 1)              |
                                                             |                             |
                                                 GND ------------> EN (Pin 13)             |
                                                             [-----------------------------]

* Power & Decoupling Notes:
  VCC --> [ C1: 100nF ] --> GND  (U1 Decoupling)
  VCC --> [ C2: 100nF ] --> GND  (U2 Decoupling)
  U1 Power: Pin 14 (VCC), Pin 7 (GND)
  U2 Power: Pin 16 (VCC), Pin 8 (GND)
Electrical Schematic

Diagrama eléctrico

Diagrama electrico del caso: Contador de objetos en cinta transportadora
Generado desde la netlist SPICE validada del caso.

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

Mediciones y pruebas

  1. Calibración del sensor: mide el nodo VA con un multímetro. Debe estar por encima de 4,0 V con la LDR iluminada y caer por debajo de 1,0 V cuando un objeto corta el haz. Ajusta R1 si tu LDR tiene otra curva de resistencia.
  2. Comprobación del flanco de reloj: conecta el osciloscopio al nodo VB. Al pasar un objeto por el haz debes ver una transición limpia de 0 V a 5 V.
  3. Verificación del conteo secuencial: observa los nodos V_Q0 a V_Q4. Cada pulso debe activar una salida distinta y encender D1 a D5 en orden.
  4. Validación del reinicio automático: monitoriza VC. Al detectar el sexto objeto debe aparecer un pulso breve que reinicia el contador y vuelve a activar D1.

Netlist SPICE y simulación

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

* Conveyor belt object counter
.width out=256

* --- Digital Subcircuits ---

* Analog Behavioral D-Flip-Flop with Asynchronous Reset
.subckt DFF D CLK RST Q
B_M M_int 0 V = V(RST)>2.5 ? 0 : (V(CLK)>2.5 ? (V(M_state)>2.5 ? 5 : 0) : (V(D)>2.5 ? 5 : 0))
R_M M_int M_state 100
C_M M_state 0 1n

B_S S_int 0 V = V(RST)>2.5 ? 0 : (V(CLK)>2.5 ? (V(M_state)>2.5 ? 5 : 0) : (V(S_state)>2.5 ? 5 : 0))
R_S S_int S_state 100
C_S S_state 0 1n

B_Q Q_int 0 V = V(S_state)>2.5 ? 5 : 0
R_Q Q_int Q 100
C_Q Q 0 1n
.ends

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

* Conveyor belt object counter
.width out=256

* --- Digital Subcircuits ---

* Analog Behavioral D-Flip-Flop with Asynchronous Reset
.subckt DFF D CLK RST Q
B_M M_int 0 V = V(RST)>2.5 ? 0 : (V(CLK)>2.5 ? (V(M_state)>2.5 ? 5 : 0) : (V(D)>2.5 ? 5 : 0))
R_M M_int M_state 100
C_M M_state 0 1n

B_S S_int 0 V = V(RST)>2.5 ? 0 : (V(CLK)>2.5 ? (V(M_state)>2.5 ? 5 : 0) : (V(S_state)>2.5 ? 5 : 0))
R_S S_int S_state 100
C_S S_state 0 1n

B_Q Q_int 0 V = V(S_state)>2.5 ? 5 : 0
R_Q Q_int Q 100
C_Q Q 0 1n
.ends

* CD4017BE Decade Counter (5-stage Johnson Counter with decoded outputs)
* Pins: 1:Q5(VC), 2:Q1, 3:Q0, 4:Q2, 7:Q3, 8:GND, 10:Q4, 13:EN, 14:CLK, 15:RST, 16:VCC
.subckt CD4017 1 2 3 4 7 8 10 13 14 15 16
B_CLK_INT CLK_INT 0 V = (V(14)>2.5) * (V(13)<2.5) * 5
R_CLK CLK_INT CLK_F 100
C_CLK CLK_F 0 1n

XF1 D1 CLK_F 15 F1 DFF
XF2 F1 CLK_F 15 F2 DFF
XF3 F2 CLK_F 15 F3 DFF
XF4 F3 CLK_F 15 F4 DFF
XF5 F4 CLK_F 15 F5 DFF

B_D1_int D1_int 0 V = V(F5)>2.5 ? 0 : 5
R_D1 D1_int D1 100
C_D1 D1 0 1n

B_Q0_int Q0_int 0 V = (V(F1)<2.5) * (V(F5)<2.5) * 5
R_Q0 Q0_int 3 100
C_Q0 3 0 1n

B_Q1_int Q1_int 0 V = (V(F1)>2.5) * (V(F2)<2.5) * 5
R_Q1 Q1_int 2 100
C_Q1 2 0 1n

B_Q2_int Q2_int 0 V = (V(F2)>2.5) * (V(F3)<2.5) * 5
R_Q2 Q2_int 4 100
C_Q2 4 0 1n

B_Q3_int Q3_int 0 V = (V(F3)>2.5) * (V(F4)<2.5) * 5
R_Q3 Q3_int 7 100
C_Q3 7 0 1n

B_Q4_int Q4_int 0 V = (V(F4)>2.5) * (V(F5)<2.5) * 5
R_Q4 Q4_int 10 100
C_Q4 10 0 1n

* Q5 output is used for the modulo-5 reset via VC, so it uses a slightly larger delay 
* to guarantee the reset pulse is wide enough to clear all DFFs.
B_Q5_int Q5_int 0 V = (V(F5)>2.5) * (V(F1)>2.5) * 5
R_Q5 Q5_int 1 100
C_Q5 1 0 10n

* Dummy loads to prevent warnings on power pins
R_GND 8 0 1
R_VCC 16 0 1Meg
.ends

* 74HC04 Hex Inverter (single gate modeled for pins 1, 2)
* Pins: 1:A, 2:Y, 7:GND, 14:VCC
.subckt 74HC04 1 2 7 14
B_Y_int Y_int 0 V = V(1)>2.5 ? 0 : 5
R_Y Y_int 2 100
C_Y 2 0 1n
R_GND 7 0 1
R_VCC 14 0 1Meg
.ends

* --- Main Circuit ---

* Power Supply
V1 VCC 0 DC 5

* Optical Sensing (LDR and pull-down divider)
* Conveyor beam is normally ON (light=1), LDR is 1k. 
* When object passes, light is blocked (light=0), LDR becomes 100k.
V_LIGHT N_LIGHT 0 PULSE(1 0 0.1 0.05 0.05 0.2 0.5)
R_LIGHT N_LIGHT 0 1Meg 
RLDR1 VCC VA R='V(N_LIGHT) > 0.5 ? 1k : 100k'
R1 VA 0 10k

* Edge sharpener and logic inverter
XU1 VA VB 0 VCC 74HC04

* Decade Counter
XU2 VC V_Q1 V_Q0 V_Q2 V_Q3 0 V_Q4 0 VB VC VCC CD4017

* LED Output Indicators
.model RED_LED D(IS=1e-18 N=1.8 RS=10)

R2 V_Q0 V_D1 330
D1 V_D1 0 RED_LED

R3 V_Q1 V_D2 330
D2 V_D2 0 RED_LED

R4 V_Q2 V_D3 330
D3 V_D3 0 RED_LED

R5 V_Q3 V_D4 330
D4 V_D4 0 RED_LED

R6 V_Q4 V_D5 330
D5 V_D5 0 RED_LED

* Decoupling Capacitors
C1 VCC 0 100n
C2 VCC 0 100n

* Dummy IN/OUT assignments for strict output requirements
R_IN VA IN 1
R_IN_GND IN 0 100Meg
R_OUT V_Q4 OUT 1
R_OUT_GND OUT 0 100Meg

* --- Simulation Commands ---
.op
.tran 1m 3.0
.print tran V(IN) V(OUT) V(VA) V(V_Q0) V(V_Q1) V(V_Q2) V(V_Q3) V(V_Q4)

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)
Análisis: The simulation shows the input signal (VA) toggling between ~4.5V and ~0.45V, representing the LDR state changes. The outputs V_Q0 to V_Q4 sequentially pulse high to ~4.25V, confirming the decade counter is advancing correctly with each input pulse.
Show raw data table (3128 rows)
Index   time            v(in)           v(out)          v(va)           v(v_q0)         v(v_q1)         v(v_q2)         v(v_q3)         v(v_q4)
0	0.000000e+00	4.545413e+00	7.813983e-36	4.545413e+00	7.814080e-36	4.250409e+00	7.814080e-36	7.814080e-36	7.813983e-36
1	1.000000e-05	4.545413e+00	7.736609e-38	4.545413e+00	7.736713e-38	4.250409e+00	7.736713e-38	7.736713e-38	7.736609e-38
2	2.000000e-05	4.545413e+00	7.660001e-40	4.545413e+00	7.660112e-40	4.250409e+00	7.660112e-40	7.660112e-40	7.660001e-40
3	4.000000e-05	4.545413e+00	-7.50832e-40	4.545413e+00	-7.50843e-40	4.250409e+00	-7.50843e-40	-7.50843e-40	-7.50832e-40
4	8.000000e-05	4.545413e+00	7.433609e-40	4.545413e+00	7.433716e-40	4.250409e+00	7.433716e-40	7.433716e-40	7.433609e-40
5	1.600000e-04	4.545413e+00	-7.39653e-40	4.545413e+00	-7.39664e-40	4.250409e+00	-7.39664e-40	-7.39664e-40	-7.39653e-40
6	3.200000e-04	4.545413e+00	7.378065e-40	4.545413e+00	7.378171e-40	4.250409e+00	7.378171e-40	7.378171e-40	7.378065e-40
7	6.400000e-04	4.545413e+00	-7.36885e-40	4.545413e+00	-7.36895e-40	4.250409e+00	-7.36895e-40	-7.36895e-40	-7.36885e-40
8	1.280000e-03	4.545413e+00	7.364244e-40	4.545413e+00	7.364350e-40	4.250409e+00	7.364350e-40	7.364350e-40	7.364244e-40
9	2.280000e-03	4.545413e+00	-7.36130e-40	4.545413e+00	-7.36141e-40	4.250409e+00	-7.36141e-40	-7.36141e-40	-7.36130e-40
10	3.280000e-03	4.545413e+00	7.358355e-40	4.545413e+00	7.358461e-40	4.250409e+00	7.358461e-40	7.358461e-40	7.358355e-40
11	4.280000e-03	4.545413e+00	-7.35541e-40	4.545413e+00	-7.35552e-40	4.250409e+00	-7.35552e-40	-7.35552e-40	-7.35541e-40
12	5.280000e-03	4.545413e+00	7.352471e-40	4.545413e+00	7.352577e-40	4.250409e+00	7.352577e-40	7.352577e-40	7.352471e-40
13	6.280000e-03	4.545413e+00	-7.34953e-40	4.545413e+00	-7.34964e-40	4.250409e+00	-7.34964e-40	-7.34964e-40	-7.34953e-40
14	7.280000e-03	4.545413e+00	7.346591e-40	4.545413e+00	7.346697e-40	4.250409e+00	7.346697e-40	7.346697e-40	7.346591e-40
15	8.280000e-03	4.545413e+00	-7.34365e-40	4.545413e+00	-7.34376e-40	4.250409e+00	-7.34376e-40	-7.34376e-40	-7.34365e-40
16	9.280000e-03	4.545413e+00	7.340716e-40	4.545413e+00	7.340822e-40	4.250409e+00	7.340822e-40	7.340822e-40	7.340716e-40
17	1.028000e-02	4.545413e+00	-7.33778e-40	4.545413e+00	-7.33789e-40	4.250409e+00	-7.33789e-40	-7.33789e-40	-7.33778e-40
18	1.128000e-02	4.545413e+00	7.334846e-40	4.545413e+00	7.334952e-40	4.250409e+00	7.334952e-40	7.334952e-40	7.334846e-40
19	1.228000e-02	4.545413e+00	-7.33191e-40	4.545413e+00	-7.33202e-40	4.250409e+00	-7.33202e-40	-7.33202e-40	-7.33191e-40
20	1.328000e-02	4.545413e+00	7.328981e-40	4.545413e+00	7.329086e-40	4.250409e+00	7.329086e-40	7.329086e-40	7.328981e-40
21	1.428000e-02	4.545413e+00	-7.32605e-40	4.545413e+00	-7.32616e-40	4.250409e+00	-7.32616e-40	-7.32616e-40	-7.32605e-40
22	1.528000e-02	4.545413e+00	7.323120e-40	4.545413e+00	7.323225e-40	4.250409e+00	7.323225e-40	7.323225e-40	7.323120e-40
23	1.628000e-02	4.545413e+00	-7.32019e-40	4.545413e+00	-7.32030e-40	4.250409e+00	-7.32030e-40	-7.32030e-40	-7.32019e-40
... (3104 more rows) ...

Errores comunes y cómo evitarlos

  1. Dejar CKE flotante: el pin 13 del CD4017BE es activo en nivel bajo. Si queda sin conectar, el ruido puede bloquear o habilitar el reloj de forma impredecible. Conéctalo siempre a 0.
  2. Omitir resistencias en los LED: conectar los LED directamente a las salidas del CD4017BE puede dañar el integrado. Cada LED debe llevar su resistencia limitadora, por ejemplo 330 Ω.
  3. Transiciones lentas del sensor: si el objeto se mueve despacio, la señal de la LDR puede permanecer demasiado tiempo cerca del umbral lógico y producir varios pulsos. En ese caso conviene sustituir el 74HC04 por un inversor Schmitt como el 74HC14.

Solución de problemas

  • Síntoma: el contador salta números o cuenta de forma aleatoria.
  • Causa: ruido eléctrico en la línea de la LDR o vibraciones que afectan al haz de luz.
  • Solución: añade un condensador pequeño, por ejemplo 10 nF, entre VA y 0 para filtrar ruido de alta frecuencia.
  • Síntoma: el circuito se queda siempre en D1 y no avanza.
  • Causa: el pin de reinicio está fijo en alto o el pin CKE está en alto.
  • Solución: revisa la conexión entre Q5 y RST, y confirma que el pin 13 está unido a 0.
  • Síntoma: los LED se ven muy tenues.
  • Causa: las resistencias limitadoras son demasiado grandes o la alimentación cae por falta de corriente.
  • Solución: comprueba que R2-R6 son de 330 Ω y que VCC se mantiene estable en 5 V.

Posibles mejoras y extensiones

  1. Visualización numérica: sustituir la lógica de LED por un CD4026BE permite excitar directamente un display de 7 segmentos y mostrar el conteo como dígito.
  2. Antirrebote con monoestable: insertar un NE555 en configuración monoestable entre VB y el reloj del contador garantiza un único pulso de duración fija por objeto detectado.
  3. Tamaño de lote ajustable: puedes elegir otra salida del CD4017BE para el reinicio si necesitas agrupar 3, 4, 6 o más objetos.
  4. Salida de control: añade un transistor o un relé para activar una compuerta, zumbador o actuador cuando se complete el lote.

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é función realiza la LDR en este circuito?



Pregunta 2: ¿Por qué se usa el 74HC04?



Pregunta 3: ¿Qué entrada del CD4017BE recibe los pulsos de conteo?



Pregunta 4: ¿Qué ocurre cuando se activa Q5 en este montaje?



Pregunta 5: ¿Por qué cada LED necesita su propia resistencia?



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: