This library provides abstractions that help you write event-driven Arduino and mbed applications. It contains a simple task management facility, device pin abstraction where IO expanders can be treated like pins, interrupt management, button de-bouncing and rotary encoder support. There are many examples packaged with the library that cover most use cases.
For development, you can use any Arduino or mbed IDE. However, our recommendation is platformIO with Clion or VS Code. We test the library with Arduino and PlatformIO.
Need help with a commercial design, or want a customised version for your hardware? Contact us to get consultancy from the library writers.
Reference guide and code repo
- Read the reference guide
- Go to the code repo on github
- Collections - BtreeList
- Platform support and platform determination
For task management, see the Task management guide
Arduino digital and analog IO abstractions
- Arduino & mbed digital IO on Pins, IO Expanders and shift registers
- Using MultiIo - more than one IO on the same abstraction
- An example of using a PCF8574 with this library
- Using the analog abstraction for ADC/PWM/DACs
- Raising events on Analog input
Switches, keyboards and rotary encoders
- Using switches and rotary encoders for debounced input
- Using the keyboard manager for matrix style keyboards and keypads
- Tutorial: Using switches for event based button presses
- Example: Rotary encoder and buttons on PCF8574 with interrupt
- Examples of using the LiquidCrystalIO library
- LiquidCrystalIO code repo on github
- Commerical HD44780 Pro driver