Home - PaulMurrayCbr/DebounceInput GitHub Wiki
DebounceInput is a library for the Arduino IDE for debouncing digital inputs (buttons, switches).
DebounceInput uses a simulated RC network and schmitt trigger. The trigger bounds are settable, allowing you to adjust the sensitivity. Methods are provided to rate-limit samples so as to provide consistent behaviour.
See Usage for a quick-start. See Algorithm for a description of how it works. See Installation for how to download and install it.
Features:
-
Small. The DebouncedButton class has a sizeof 6. The underlying filter class has a sizeof 5.
-
Fast. The class does not use delay() to sample the input. The algorithm itself uses bit-fiddling and integer math to implement the filter algorithm - no floating point arithmetic.
-
Easy to use for the usual case. Detecting a 'button down' event is a one-liner. See Usage.
-
Works pretty well. cactusjack's algorithm simulates a RC low-pass filter and trigger. Further refinements are discussed in Algorithm.