Unit I2CLCD

From Ultibo.org
Jump to: navigation, search

Return to Unit Reference


Description


Generic I2C LCD Driver unit

Generic 16x2 or 20x4 LCD displays with an I2C interface are available from many suppliers and commonly include a Hitachi HD44780 LCD and NXP PCF8574 I/O expander to convert the I2C data into GPIO inputs for the display.

This unit combines the drivers for the HD44780 and PCF8574 to create a console device which can be used with the standard console and console window API.

Only text mode is supported as the HD44780 does not support setting individual pixels.

Some examples of generic displays that will work with the unit include the following:

https://www.amazon.com/SunFounder-Serial-Module-Display-Arduino/dp/B019K5X53O

https://www.auselectronicsdirect.com.au/2-x-16-lcd-display-module-with-i2c-interface-for-a

But you can find these units from many suppliers worldwide.

Constants



[Expand]
I2CLCD specific constants I2CLCD_*


[Expand]
I2CLCD GPIO I2CLCD_PIN_*


Type definitions



I2CLCD display

[Expand]

PI2CLCDDisplay = ^TI2CLCDDisplay;

TI2CLCDDisplay = record


Public variables



I2CLCD specific variables

I2CLCD_AUTOSTART:LongBool = True; If True then auto start the I2CLCD device on boot
I2CLCD_I2C_ADDRESS:Word = $27;
I2CLCD_I2C_DEVICE:String = 'I2C0';
I2CLCD_LCD_WIDTH:LongWord = 16;
I2CLCD_LCD_HEIGHT:LongWord = 2;


Function declarations



Initialization functions

[Expand]
procedure I2CLCDInit;
Description: Initialize the I2CLCD unit and parameters


[Expand]
function I2CLCDStart(const Device:String; Address:Word; Width,Height:LongWord):THandle;
Description: Start the I2CLCD driver and register the GPIO and Console devices associated with the display


[Expand]
function I2CLCDStop(Handle:THandle):Boolean;
Description: Stop the I2CLCD driver and deregister the GPIO and Console devices associated with the display


I2CLCD functions

[Expand]
function I2CLCDBacklightOn(Handle:THandle):Boolean;
Description: Turn on the backlight on the I2CLCD display


[Expand]
function I2CLCDBacklightOff(Handle:THandle):Boolean;
Description: Turn off the backlight on the I2CLCD display


Return to Unit Reference