While it is a nice demonstration of Schmitt trigger, having additional capacitor and IC for a switch is total overkill. It also requires that the switch is always powered and this means that when the switch makes contact, the contacts will switch some current (this may or may not be a good thing for the switch, some switches rely on a spark to clean the contacts). If you are doing this to be red with microcontroller, there is a better strategy. First, you can get rid of the resistor with internal pullup. Second, I just monitor the switch every couple of milliseconds, the interval being longer than possible bounce time. Monitoring means configuring the pin as both input and output (if your MCU allows it), reading the state of the pin and then immediately unconfiguring it. If the monitoring happens while the switch changes state, it doesn't matter. For example, if you do three readings (X, X, X) while the switch gets closed, you might get 0, 0, 1 or 0, 1, 1, all with same outcome. Avoiding hardware interrupts in rapid succession means the software works in a more controlled way. One reason to have extra component is if you have extremely sensitive circuit and you don't want noise to propagate from the switch circuit.
A simple way of dealing with it is to simply strap a pull down resistor and a capacitor to the switch, if you don’t mind having a bit of cool down time after pressing the switch, cool down time depends on capacitance of capacitor, it doesn’t work perfectly but it’s fine 80 percent of the time
In most cases you don't need to measure the settling time of a switch. Just use a very conservative RC time constant (50ms). Unless you are trying to measure human reaction times, a few hundred ms delay won't matter. If you need tighter timing, you shouldn't be relying on a human pushing a button.
Nicely explained, but one missing detail: switches age, so the quality of a switch will likely degrade over time. I have actual real world cases of switch bounce getting worse with time. So, for a real-world design, I like to push that denounce delay out to more like 50ms or more. The true limiting factor is cycle time -- ie how long before the switch will ever be pressed again. In most cases, that's a period on the order of a second or more. For, instance an elevator floor button. Once pressed, it's unlikely to be pressed again until the elevator car reaches that floor, leaves that floor, and someone wants to go back to that floor. Even if the person starts pressing that button over and over, it's already been registered, so subsequent presses can be ignored. But, a game controller is a different story. The fire button might get pressed every 100ms or so, thus in that case, the upper limit is more tight. But, I would still design for as long as a denounce delay as the application will tolerate.
The problem is that switches bounce more as they age. The way around it is to wait a time period after no changes occur before considering the state valid. Easy in software, somewhat easy in hardware with timers.
@@petersshabbygarage396 Why are you trolling a four year old post. That's a commonly accepted fact. You can Google plenty of sources if you weren't a lazy armchair expert.
@@misterhat5823 i am engineer in a very different field who recently began to learn electonics as a mean to escape my anxiety. I am curious, yet i have come across so many misleading websites. Your comment inteigued me, I want to learn so figured to push you for facts. Will you please help me learn more?
@RobertBaruch I know this is an old video, but was hoping you might be able to answer this question. If you have multiple switches, like in a button box, are they always debounced separately.
Hey Robert, nice tutorial! One question though, what do we do if we have, say, eight switched multiplexed. Do we have to implement the same circuit for each switch or can we do it only in the output of the mux? Thank you!
@@RobertBaruch Thank you! Please consider continuing the chip tips series as your way of exhausting the topics you're explaining is invaluable for us noobs.
Hi and for learning logic circuits, which oscilloscope you think is better ' Siglent Technologies SDS1202X-E 200 mhz Digital Oscilloscope 2 Channels, Grey' or 'Rigol DS1054Z Digital Oscilloscopes - Bandwidth: 50 Mhz, Channels: 4 ' ?
Rigol, because I already have one. If you want a better answer, though, join the eevblog forum (www.eevblog.com/forum/) and look there, they've done reviews on all of these.
I have some of the same switches, but without the cool flipper mechanism. Did they come from a pdp 11 or similar? I’d love to get a few. Do you know what they are called? Aha! A paddle switch! Such as : www.surpluscenter.com/Electrical/Switches/Toggle-Switches/DPST-Paddle-Switch-15-Amp-11-3098.axd. Thanks!
Sure. Measure it on my oscilloscope. Because everyone has one of those laying around.. I have one other solution though. 1, get a bunch of capacitors. 2, get a bunch of resistors. 3, try different timings and see which one works :D