Mouse's Arduino Buttons & Switches
Easy to use, well featured Button and other input classes for Arduino
Mouse's Arduino Buttons & Such (Mabs)


A collection of classes and functions for nice handling of basic inputs for Arduino boards. The classes are kept as simple as possible while having enough functionality to be useful. ''Timeslice-based'' classes should have their ''update()'' method called as frequently as possible, which will return rapidly. These classes are an alternative to interrupt driven IO for projects where interrupts can't be used - e.g. where Mabs inputs must not intefere with timing of other parts of your project which might use interrupts themselves (e.g. NeoPixel control.


Here are some terms I use, and the meanings I have given them in the context of the Mabs library:


Documentation can be found on the Orthogonal Systems website at

Generating documentation

  1. Install Doxygen
  2. Run ''doxygen'' from the root of this project - html is generated in doc/html

Author & License

All code written by Mouse, and licensed under the GNU GPL v3. See the LICENSE file for details.

Ideas for future development

Enhancements to DebouncedButton


n-state button