¿Qué se supone que debe hacer este circuito?
Cuando se aplican 5V con el interruptor abierto, el voltaje en OUT inicialmente será de 5V. Durante un tiempo, el condensador se cargará para tener 5V de ancho y OUT será de 0V. Cuando el interruptor está cerrado, el capacitor se descargará instantáneamente a través del interruptor. Con el tiempo, esto probablemente dañará el interruptor y posiblemente también el condensador.
Quizás algo como esto sería mejor:
simular este circuito : esquema creado usando CircuitLab
En este circuito, la resistencia entre 5V y todo lo demás, puede ver de inmediato que no hay posibilidad de grandes corrientes de entrada / salida de interruptores, capacitores o puertas del microcontrolador.
ACTUALIZACIÓN: En realidad, esto no es cierto porque el condensador se descarga instantáneamente cuando el interruptor está cerrado, por lo que eso pondrá presión sobre el interruptor y el condensador. Entonces, como se describe a continuación, quitaría el condensador por completo e implementaría el rebote en el código.
Aunque no sé qué tan bien funcionaría el condensador de 100 nF como un circuito de rebote. Por un lado, cuando se inicia, inicialmente será de 0 V y tomará tiempo para cargarse. Pero de lo contrario podría funcionar.
En la práctica, omitiría el condensador e implementaría el rebote en el software. Específicamente, obtiene el tiempo con milis () y lo compara con la última vez que se presionó el botón. Si no se supera ese tiempo, ignora ese cambio de estado. Así es como se hace y hay numerosos ejemplos de cómo escribir código que maneja el desalojamiento momentáneo de botones.