Universal_Button

Generic multi-button handler with debounce, short/long/double events, latching support, exact last-press duration, pluggable readers, enum-friendly API, optional time-source injection, and latch control APIs for global reset policies.

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; optional latching (toggle/set/reset driven by Short/Long/Double events); exact getLastPressDuration(); per-button overrides (timing—including double_click_ms—polarity, enable, latch config); reader callbacks for GPIO and expanders (e.g., MCP23017); and helpers (pressedMask/snapshot/forEach). Runtime setters include setReadFn/setReadPinFn, setGlobalTiming (alias setTiming), setPerConfig, enable, setActiveLow, and setTimeFn for FreeRTOS/hosted use. Includes latch control APIs (setLatched/clearAllLatched/clearLatchedMask) for system-level policies like global reset, plus GPIO, port-expander, cached-read, and latching examples.

Downloads

Filename Release Date File Size
Universal_Button-1.6.1.zip 2026-01-02 34.58 KiB
Universal_Button-1.6.0.zip 2026-01-02 35.40 KiB
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