This is a 555 timer button debouncer that actually works. Most 555 timer button debouncers did not work for me until I found this technique. This has been tested with hardware and an oscilloscope to work well all of the time. To find what values you might want for your particular button I have labeled them with names. Here are some calculations that you might find useful:
1.
The calculation for amount of time it takes for the output to turn on when a button is pressed:
t = 0.407*R2*C1
407μs = 0.407*1kΩ*1μF
2.
The calculation for the maximum button frequency to control the output is not a 50% duty cycle here are the calculations (they are the same for a 555 timer in astable)
TH = 0.693(R1 + R2)C1
1.386ms = 0.693(1kΩ + 1kΩ)1μF
TL = 0.693R2C1
0.693ms = 0.693*1KΩ*1μF
f = 1/T T is period
f = 1/(TH+TL)
f = 1/(1.386ms + 0.693ms)
f = 1/2.089ms
f = 1/0.002089s
f = 478.697941599Hz
So about 470Hz with a duty cycle of 66.666%. I round down because in reality such precision is almost impossible.
I cannot give more complex calculations so if you want to find values well then get an oscilloscope test you button play with my simulation or math if you like and go well above the bounces that you get. If you don't have an oscilloscope then just use what I already have in my simulation, it should debounce pretty much any button. If my simulation does not work for your button then either try with higher capacitor and resistor values, test your 555 timer, or let me know.