¿Circuito antirrebote de botón pulsador sin IC adicional? ¿Posiblemente basado en RC?

Tengo un botón pulsador que me gustaría eliminar. Solo me importa el primer flanco ascendente de la señal que está conectado a un GPIO de Arduino. Después de leer en la web sobre la eliminación de rebotes de hardware, entiendo que para eliminar realmente un botón pulsador, necesitaría un pestillo o una puerta lógica para mantener un borde afilado que Arduino pudiera leer correctamente. Pero no tengo y se tarda un mes en pedir cualquier cosa desde donde estoy.

Entonces, se me ocurrió este circuito para evitar el uso de piezas adicionales:

Eliminación del primer borde

Me gustaría que alguien me ayudara a confirmar las siguientes suposiciones:

Cuando se presiona el botón, C1 se cargará casi instantáneamente porque no hay resistencia para reducir la velocidad. Cuando se suelta el botón, C1 se descargará lentamente (0,1 s) a través de R1. Esto debería rebotar en el borde ascendente del botón ya que después del aumento inicial, R1 evita que C1 se descargue, manteniendo así el GPIO alto.

No tengo un osciloscopio para probar esto. Así que esto es justo lo que supongo que sucederá.

Mis preguntas son:

  • ¿Es seguro cargar C1 tan rápido?
  • ¿Es seguro para el GPIO?
  • ¿Son correctas mis suposiciones?
¿Por qué no poner una pequeña resistencia (con una resistencia mucho más pequeña que R1) en serie con el interruptor de botón S1? para rebotar la subida. Por cierto, no es poco común en circuitos digitales y conexiones a GPIO a un microprocesador para usar la convención de lógica activa-baja . por lo tanto, el voltaje normalmente será alto cuando el botón no esté presionado y bajará cuando el botón esté presionado.
Un buen día descubrirá cómo implementar un filtro digital (toma 3 bytes de ram) para entradas digitales ruidosas. Entonces los filtros RC se convierten en simples filtros de ruido RF.
Rebounce en el software. NADIE elimina los interruptores en el hardware si el interruptor va a un microprocesador. Si hace esto como lo planea, C1 debe ser pequeño para evitar cargar el riel de 5V. Pensaría que 0.1 o 0.01uF funcionarían, pero no sé cuánta capacitancia tiene en 5V.
Mentiras y falsedades. Mucha gente rebota en hardware. Desea un circuito activo de alto rebote. Sería más fácil como un bajo activo. No estoy familiarizado con un alto rebote RC activo.
@Passerby, no he visto una conexión sin rebote a una entrada GPIO de microprocesador que pueda recordar. Alguna vez. Creo que debe ser extremadamente raro. Si no es un GPIO, entonces tal vez.

Respuestas (2)

En mi opinión, debería funcionar. Si tiene miedo de la tasa de carga de C1, puede agregar una resistencia entre S1 y +5V. De esta manera, limita la tasa de carga del capacitor.

Por cierto, puede simular su circuito en LTspice, es un software gratuito y útil.

Un condensador no puede cargarse o descargarse instantáneamente; intentar hacerlo puede provocar oscilaciones de alta frecuencia o picos de ruido. Debe instalar una resistencia en serie con el capacitor para realizar la carga o descarga con el tiempo.
Recuerde, el interruptor y el cableado tienen una resistencia intrínseca (parásita). Nada sucede instantáneamente o tiene una corriente infinita.

ingrese la descripción de la imagen aquí

El cable azul resaltado va a gpio. Inductor y 10ohm solo emulan el interruptor. Déjame saber si esto funciona.

Siendo este circuito un circuito de rebote bajo activo y su requisito puede ser un rebote alto activo, puede invertir los estados en el código y se convertirá en un circuito de rebote alto.

¿Qué pasa con todos los circuitos sintonizados? Esto no responde a la pregunta del OP.
Como mencioné, el inductor y la resistencia de 10 ohmios solo representan el interruptor práctico y nada más. Por lo tanto, el circuito real será solo un interruptor en ese camino. El usuario quiere evitar el rebote, que se realiza mediante este circuito. Ambos bordes de la salida son suaves y no suenan.