Universal_Button

Generic multi-button handler with debounce, short/long/double events, exact last-press duration, pluggable readers, enum-friendly API, and optional time-source injection.

Author
Little Man Builds (Darren Osborne)
Maintainer
Little Man Builds
Website
https://github.com/LittleManBuilds/Universal_Button
Github
https://github.com/littlemanbuilds/Universal_Button
Category
Signal Input/Output
License
MIT
Library Type
Contributed
Architectures
Any

Header-only Arduino library for handling multiple buttons with robust debounce; short/long/double classification; exact getLastPressDuration(); per-button overrides (timing—including double_click_ms—polarity, enable); reader callbacks for GPIO and expanders (e.g., MCP23017); and helpers (peek/clear/heldMillis/reset). Runtime setters include setReadFn/setReadPinFn, setGlobalTiming (alias setTiming), setPerConfig, enable, setActiveLow, and setTimeFn for FreeRTOS/hosted use. Includes GPIO, port-expander, and cached-read examples.

Downloads

Filename Release Date File Size
Universal_Button-1.5.0.zip 2025-10-16 28.51 KiB
Universal_Button-1.4.1.zip 2025-10-10 27.45 KiB
Universal_Button-1.4.0.zip 2025-10-02 27.78 KiB
Universal_Button-1.3.0.zip 2025-09-30 28.52 KiB
Universal_Button-1.2.0.zip 2025-09-28 27.26 KiB
Universal_Button-1.1.0.zip 2025-09-12 26.69 KiB
Universal_Button-1.0.0.zip 2025-09-03 26.57 KiB