Why needs debounce for button?
If not debounce for the button, It results in a malfunction in the following cases:
- A single button press will be detected as several presses by Arduino
- A single button count will be counted several times by Arduino
When a button is pressed/released or when a switch is toggled, you may think that its state is simply changed from LOW to HIGH or HIGH to LOW. In practice, it is not exactly like that. The state of the button (or switch) may be quickly toggled between LOW and HIGH several times, due to mechanical and physical issues. This is called the chattering phenomenon or debounce phenomenon. This phenomenon makes a single press that may be read as multiple presses, resulting in a malfunction in some kinds of applications. This tutorial shows how to eliminate this phenomenon (called debounce the input).
When needs debounce, When don't need it?
When needs debounce
- Detecting the button is pressed/released
- Counting the number of press/release
When don't need to debounce
- For example, if the button state is high, turn on the LED, if button state is LOW, turn off LED