You dont have javascript enabled! Please enable it!

Caso práctico: Antirrebote RC para pulsador

Prototipo de Antirrebote RC para pulsador (Maker Style)

Nivel: Medio | Utiliza un condensador para mitigar el ruido mecánico al accionar un interruptor físico.

Objetivo y caso de uso

En este caso práctico, construirás una red RC pasiva (resistencia-condensador) conectada a un interruptor mecánico para filtrar los picos de voltaje de alta frecuencia generados por el rebote de los contactos.

Por qué es útil:
* Prevenir múltiples falsos disparos en contadores digitales o secuencias de pasos.
* Asegurar señales de interrupción limpias y únicas para microcontroladores.
* Estabilizar las lecturas de entrada para elementos de memoria como flip-flops y latches.
* Crear botones de interfaz de usuario fiables y predecibles en sistemas embebidos.

Resultado esperado:
* El rebote mecánico, que normalmente dura entre 1 y 5 ms, es absorbido completamente por el condensador.
* El voltaje en el nodo del interruptor realiza una transición suave en lugar de oscilar entre niveles lógicos.
* La constante de tiempo de carga define una curva de voltaje transitorio limpia al soltar el botón.
* Las mediciones con osciloscopio confirmarán la eliminación del tiempo de rebote en milisegundos.

Público objetivo y nivel: Estudiantes de electrónica de nivel intermedio y aficionados que aprenden sobre señales transitorias y características físicas de los interruptores.

Materiales

  • V1: Fuente de alimentación de 5 V CC
  • SW1: Pulsador momentáneo SPST, función: disparador de entrada
  • R1: Resistencia de 10 kΩ, función: pull-up para VSW
  • C1: Condensador de 1 µF, función: suavizado antirrebote en paralelo al interruptor

Guía de conexionado

  • V1: se conecta entre el nodo VCC y el nodo 0 (GND).
  • R1: se conecta entre el nodo VCC y el nodo VSW.
  • SW1: se conecta entre el nodo VSW y el nodo 0.
  • C1: se conecta entre el nodo VSW y el nodo 0.

Diagrama de bloques conceptual

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

Esquemático

VCC (5 V) --> [ R1: 10 kΩ Pull-up ] --+--(Node VSW)--> [ Debounced Output ]
                                    |
                    +--> [ SW1: Pushbutton ] --> GND
                                    |
                                    +--> [ C1: 1µF Capacitor ] --> GND
Esquema Eléctrico

Mediciones y pruebas

  1. Conecta una sonda de osciloscopio al nodo VSW y la pinza de tierra al nodo 0.
  2. Configura el osciloscopio para que se dispare en un flanco de bajada con un umbral de aproximadamente 2.5 V. Ajusta la base de tiempo a 2 ms/div para capturar con precisión el tiempo de rebote en ms (Bounce-Time-ms).
  3. Acciona SW1 (presiona el botón) y observa el voltaje transitorio (Transient-Voltage) en la pantalla. El voltaje debería caer a 0 V suavemente sin los picos rápidos característicos del rebote mecánico.
  4. Suelta el interruptor y observa el flanco de subida. Mide el tiempo que tarda el voltaje en alcanzar 3.15 V (aprox. el 63.2% de 5 V). Esto representa una constante de tiempo RC (\tau = R × C), que teóricamente debería ser de 10 ms.
  5. Retira temporalmente C1 del circuito, presiona el interruptor nuevamente y observa el rebote mecánico en bruto para comparar las señales transitorias del antes y el después. Vuelve a insertar C1 una vez completado.

Netlist SPICE y simulación

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

* Practical case: RC pushbutton debounce
.width out=256

* Main DC Power Supply
V1 VCC 0 DC 5

* Pull-up Resistor
R1 VCC VSW 10k

* Debounce Smoothing Capacitor
C1 VSW 0 1u

* Pushbutton SW1 modeled as a voltage-controlled switch
* Connects VSW to 0 (GND) when the control voltage is high
S1 VSW 0 ctrl 0 switch_model
.model switch_model SW(Vt=2.5 Ron=1 Roff=100Meg)

* Control pulse simulating the user pressing the button
* Presses the button at 5ms, holds for 20ms, repeats every 50ms
Vctrl ctrl 0 PULSE(0 5 5m 1u 1u 20m 50m)
* ... (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: RC pushbutton debounce
.width out=256

* Main DC Power Supply
V1 VCC 0 DC 5

* Pull-up Resistor
R1 VCC VSW 10k

* Debounce Smoothing Capacitor
C1 VSW 0 1u

* Pushbutton SW1 modeled as a voltage-controlled switch
* Connects VSW to 0 (GND) when the control voltage is high
S1 VSW 0 ctrl 0 switch_model
.model switch_model SW(Vt=2.5 Ron=1 Roff=100Meg)

* Control pulse simulating the user pressing the button
* Presses the button at 5ms, holds for 20ms, repeats every 50ms
Vctrl ctrl 0 PULSE(0 5 5m 1u 1u 20m 50m)

* Analysis directives
.op
.tran 100u 100m

* CRITICAL: Print input (button press) and output (debounced signal)
.print tran V(ctrl) V(VSW)

.end

Resultados de Simulación (Transitorio)

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

Errores comunes y cómo evitarlos

  • Elegir un valor de condensador demasiado grande: Usar un condensador de 100 µF con una resistencia pull-up de 10 kΩ da como resultado una constante de tiempo de 1 segundo, lo que provoca una respuesta lenta del botón. Solución: Mantén C1 entre 100 nF y 1 µF para resistencias pull-up estándar de 10 kΩ.
  • Omitir la resistencia pull-up: Sin R1, el nodo VSW flotará de manera impredecible cuando el interruptor esté abierto. Solución: Asegúrate siempre de que R1 esté conectada de forma segura entre VCC y el nodo del interruptor.
  • Alimentar la señal lenta RC directamente en lógica digital estándar: Las puertas lógicas estándar (como un 74HC08 básico) pueden oscilar si se alimentan con un voltaje de subida lenta. Solución: Usa este circuito para comprender el transitorio RC, pero para entradas digitales reales, pasa la señal sin rebotes a través de un CI Schmitt Trigger para cuadrar los flancos.

Solución de problemas

  • Síntoma: El voltaje en el nodo VSW se mantiene constantemente en 0 V.
  • Causa: El interruptor está atascado físicamente cerrado, o el condensador C1 está en cortocircuito.
  • Solución: Verifica la continuidad del interruptor con un multímetro y reemplaza C1 si está defectuoso.
  • Síntoma: El voltaje en el nodo VSW se mantiene constantemente en 5 V incluso al presionarlo.
  • Causa: SW1 no está conectado correctamente al nodo 0 (Tierra).
  • Solución: Verifica la conexión a tierra en el terminal inferior del interruptor.
  • Síntoma: El rebote del interruptor aún es visible en el flanco de subida.
  • Causa: La constante de tiempo RC es demasiado corta en comparación con la duración del rebote mecánico de ese interruptor en específico.
  • Solución: Aumenta el valor de C1 (por ejemplo, de 0.1 µF a 1 µF).
  • Síntoma: Los contactos del interruptor fallan o se degradan después de pulsaciones repetidas.
  • Causa: El condensador descarga su carga instantáneamente a través de los contactos del interruptor, causando una alta corriente de irrupción (inrush current).
  • Solución: Para una fiabilidad a largo plazo, añade una pequeña resistencia de 100 Ω en serie con el interruptor para limitar la corriente de descarga.

Posibles mejoras y extensiones

  • Añadir un buffer Schmitt Trigger: Pasa el nodo VSW a través de un inversor Schmitt Trigger (como el 74HC14) para convertir la curva de carga exponencial RC en un pulso lógico digital nítido y sin rebotes.
  • Comparación de antirrebote por Hardware vs Software: Mantén este circuito RC por hardware en un botón, y conecta un botón en bruto (sin circuito) a un microcontrolador. Implementa un algoritmo de antirrebote por software en el botón en bruto y compara el uso de recursos y la fiabilidad de ambos métodos.

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 un condensador en este circuito?




Pregunta 2: ¿Qué tipo de red pasiva se construye en este caso práctico?




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




Pregunta 4: ¿Cuánto dura normalmente el rebote mecánico de los contactos según el texto?




Pregunta 5: ¿Qué efecto tiene el circuito sobre el voltaje en el nodo del interruptor?




Pregunta 6: ¿Qué instrumento se utilizará para confirmar la eliminación del tiempo de rebote?




Pregunta 7: ¿Qué parámetro define la curva de voltaje transitorio al soltar el botón?




Pregunta 8: ¿Para qué componentes específicos ayuda a estabilizar las lecturas de entrada este circuito?




Pregunta 9: ¿Qué tipo de señales se busca asegurar para los microcontroladores?




Pregunta 10: ¿Cuál es el público objetivo de este caso práctico?




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:
Scroll al inicio