LiquidCrystalIO is a fork of the LiquidCrystal library for HD44780 devices that works on both Arduino and mbed devices, integrating with IoAbstraction library. Further, it also works either with device pins or any IO expansion device supported by IoAbstraction, including direct pins, PCF8574, MCP23017 and shift registers. Importantly, HD44780 displays are slow, very slow in fact, running at around 270Khz. This means that there are inevitable delays involved in programming the device, in this fork those delays give some time back to task manager so that other tasks can run while waiting. The only limitation this brings is that only one task manager task must draw to the display, otherwise the code would re-enter heavily affecting the delays.
During construction there is an additional parameter; which is of type IoAbstractionRef, this represents the means of communication with the device. Out of the box it supports device pins, shift registers, and PCF8547 / MCP23017 I2C IO expanders.
DfRobot provides the simplest way to get started with LiquidCrystalIO on Uno and Mega (and other compatible boards). It has a display with an array of switches connected to A0 (up, down, left, right and select). This library works correctly with the display and even has a shorthand way of creating the LCD for this case. Connections to an Arduino Uno, Mega This board is for use with Arduino Uno and Mega devices, because they are compatible with the original wiring pin out spec.
An I2C LCD backpack based on the PCF8574 chip provides an easy way to get started with LiquidCrystalIO on most Arduino boards. It is usually in one of two configurations as listed below. This library works correctly with the display and even has a shorthand way of creating the LCD for this case. Connectivity combinations for i2c backpacks Pin Option1 Option2 0 RS EN 1 RW RW 2 EN RS 3 Backlight Backlight 4 D4 D4 5 D5 D5 6 D6 D6 7 D7 D7 Construction for Option 1 outside of any functions (global):
You can connect up a device using just about any arrangement of pins or expander, at the end of the day any device supported by IoAbstraction, including MultiIo (pins and IoExpander mix) can be used here. Examples showing these use cases MCP23017 LiquidCrystal example Shift register 74HC595 LiquidCrystal Back to the main page
LiquidCrystalIO is now also compatible with mbed boards. It supports regular mbed pins, I2C backpacks based on PCF8574 and MCP23017 based connections. You can adapt any of the Arduino examples for mbed very easily, as the API is 99% the same. Examples showing these use cases Hello Mbed I2C PCF8574 example Back to the main page