Switch Debounce in Digital Circuits

We all know how a switch or a push button works, you simply press it to toggle its state. In electronics, switches are used to drive or represent many things, and these are mainly in the form of different voltage level, thus making the system binary, i.e either ON or OFF and in voltage levels High or Low. Thus, these voltage levels (e.g. 5 Volts = High = ON = closed circuit and 0 Volts = Low = OFF = open circuit) helps us to represent the binary logic of 0s (zeros) and 1s (ones).


Figure – Normal Switch Diagram

But a lot is happening under the simple push buttons on our keyboards and various other devices. A simple button is basically two metal contacts that touch under the user’s input, i.e. pressing action on the button. These metal contacts then make the underlying circuit complete and informs the sensing element (in most cases a micro-controller) that the button is pressed.


Figure – Switch Bounce Graph

This action of touching metal contacts physically works in a different manner, i.e. the metal contacts bounce upon each other making the switch on and off for a time after impact from pressing action by user. Thus, if the sensing element is sensitive enough, it registers multiple button press from a single action. This can introduce errors in the system you are using and can hinder a lot of processes.



Thus, to avoid this miss-interpretation of button press, the concept of switch debounce is needed. This helps in registering the switch’s action correctly. Switch debounce can be achieved through software programming as well as hardware circuits’ use. Let’s look into these methods in brief.

Software Switch Debouncing:
In this method, the switch’s bouncing state effect is eliminated using various algorithms and filters. The programmer can design an algorithm with use of shift register and counters such that it will register the switch’s state after a delay. Another method is to use filter algorithms on the sampled input from the switch and determine the state of switch based on the output of such digital filter. All this can make the software slightly inefficient, adding to delay in performance if not implemented correctly.

Hardware Switch Debouncing:
In this category, there are various implementations of circuits which can be used for eliminating the effect of switch debouncing right at the hardware level. The different types of circuits used are:


Figure – Switch Debounce using SR Flip Flop Latch

Use of S-R Flip Flop Latch circuit. The circuit when introduced in the output part of the switch, it will retain the voltage level of the input as the output state. Thus, latching to the input, when change in state is introduced. This method is useful, but adds to the bulkiness of the simple circuit.


Figure – Switch Debounce using RC Filter

Use of R-C circuit. This circuit involves the combination of a resistor and a capacitor circuit to act as a filter to smooth out the output glitch for the switch.

Use of dedicated ICs. There are various Integrated Circuits available in market specifically designed to eliminate the switch bouncing action. These implement the use of combination circuits to eliminate the fluctuating output of the switch.

Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.