Creo que la respuesta aceptada dijo que solo puedes usar un truco RC para eliminar los rebotes de un interruptor atado a bajo, pero creo que eso no es cierto. También puedes hacerlo para alto. Aquí está el esquema. Hay una verdadera Biblia del de-bouncing que recomienda el siguiente esquema:
![RC de-bouncing, R1 atado a alto, actuando el interruptor lo conecta a tierra. Sin embargo, hay un capacitor en paralelo al interruptor a tierra y una R2 conectando el interruptor al capacitor y a la compuerta lógica que deseas alimentar. Aquí se muestra un inversor, pero podría ser un buffer o cualquier entrada de compuerta lógica.]()
RC de-bouncing, R1 atado a alto, actuando el interruptor lo conecta a tierra. Sin embargo, hay un capacitor en paralelo al interruptor a tierra y una R2 conectando el interruptor al capacitor y a la compuerta lógica que deseas alimentar. Aquí se muestra un inversor, pero podría ser un buffer o cualquier entrada de compuerta lógica.
Cuando C está completamente cargado y activas el interruptor, la carga se drenará a través de R2, con suerte hasta que el interruptor se haya establecido antes de que alcances el nivel bajo lógico en la entrada.
Cuando C está completamente descargado, y abres el interruptor, entonces C se cargará a través de R1+R2 hasta que se alcance el nivel alto lógico.
Dado que el nivel alto lógico normal en la lógica TTL a 2V es relativamente bajo en comparación con el nivel bajo lógico de 0.8V, tiene sentido que R1+R2 haga que el tiempo de carga sea más largo que el tiempo de descarga solo a través de R2.
Usar una entrada de disparador de Schmitt elevaría el nivel lógico alto a 4V (que algunas fuentes ni siquiera golpearían de manera confiable, pero un interruptor sí).
Voy a probar esto ahora en mi protoboard y osciloscopio (analógico). Espero poder ver los rebotes en el canal 1 para activar, y espero poder verlo sin que sea un osciloscopio de almacenamiento. Pero también puedo usar un contador de 4 bits 74LS161 para atrapar los rebotes. Y he aquí que tengo el 74LS04 inversor hex TTL y el 74LS14 disparador de Schmitt inversor hex a mano para jugar.
Actualización: Resultados Experimentales
Dado que no tengo un osciloscopio de almacenamiento digital no pude usarlo en absoluto. En su lugar, utilicé un contador 74LS161 con 4 LEDs y me aseguré de que cada activación del interruptor cuente exactamente un incremento.
Puedo ver claramente la inestabilidad del interruptor. Así que, la línea de base es positiva, lo que significa que podré decir cuándo mis contra-medidas serán efectivas.
No pude encontrar una combinación de R1, R2 y C que funcionara cuando tengo una entrada de TTL normal en el 74LS04. Sin embargo, con una entrada de disparador de Schmitt del 74LS14 tengo una configuración bastante buena cuando R1 y R2 son ambos de 1 kΩ y C = 1 μF o mejor aún 4.7 μF. Obviamente depende también del interruptor.
Encontré algunos interruptores de botón de goma que tenían una resistencia interna demasiado alta para que no redujeran el voltaje de entrada lo suficiente. Con dos interruptores de calidad moderada conté varias corridas de 16 y tuve solo unos pocos fallos con 100 nF, 1 μF, y ninguno con 4.7 μF.
Con la entrada de TTL normal no pude hacer que funcionara.
Sin embargo, si tu entrada es un Arduino, es posible que desees volver a comprobar que de hecho sus entradas digitales puedan ser disparadores de Schmitt, y así podrías estar bien con R1 y R2 ambos de 1 kΩ y C = 1 μF y posiblemente incluso 100 nF.
Finalmente, después de más experimentación e investigación frustrante, concluyo que en niveles de TTL normales es simplemente imposible usar el método de RC para eliminar rebotes. Y no importa si conectas tu interruptor alto o bajo.
Necesitas un disparador de Schmitt para hacer esto. Dudo que incluso funcione con CMOS.
Aquí está un corto video de TI (ellos deberían saber) diciendo que necesitas el inversor de disparo de Schmitt aquí.
Y aquí hay un circuito alternativo con un disparador de Schmitt, que es aún más interesante ya que no requiere ningún condensador.
![introducir descripción de la imagen aquí]()
Sin embargo, lo intenté, y descubrí que no funciona. Simplemente no funciona.
El mismo documento técnico también ofrece una solución con dos inversores y sin resistor ni capacitor de ningún tipo, solo requiere un botón de dos posiciones.
![introducir descripción de la imagen aquí]()
Lo intenté y tampoco funciona de esta forma mágica. Casi funciona, pero aún obtengo doble activación con mucha más frecuencia que con el RC 1k/1k/100nF y el disparador de Schmitt. Además, si uso esta configuración de doble inversor con el inversor de disparo de Schmitt 74LS14, no funciona mejor. Así que simplemente no funciona, punto.