Debounces an arbitrary predicate function (typically created as a lambda) of 0 arguments. Since a very common use is debouncing a digital input pin, the initializer accepts a DigitalInOut object instead of a lambda.
- Author(s): Dave Astels
Not all hardware / CircuitPython combinations are capable of running the debouncer correctly for an extended length of time. If this line works on your microcontroller, then the debouncer should work forever:
from time import monotonic_ns
If it gives an ImportError, then the time values available in Python become less accurate over the days, and the debouncer will take longer to react to button presses.
Software and Dependencies:
- Adafruit CircuitPython firmware for the supported boards: https://github.com/adafruit/circuitpython/releases
Debounce an input pin or an arbitrary predicate
Return the number of seconds since the most recent transition.
Return whether the debounced value went from high to low at the most recent update.
The debounce delay, in seconds
Return the number of seconds the state was stable prior to the most recent transition.
Return whether the debounced value went from low to high at the most recent update.
Update the debouncer state. MUST be called frequently
Return the current debounced value.