Arduino Playground is read-only starting December 31st, 2018. For more info please look at this Forum Post

LCDi2c Library

This is the home of the i2c character based LCD libraries

  • Background:
    After looking at the display choices I decided I wanted to use a display that ran on the i2c buss. This takes up only two pins and is very fast. As there was no current library I decided to write one, and in turn am making it available to the Arduino community.

  • API Compliance:
    I have also put together a recommended API for use when developing libraries for character based LCD displays.

    The character based LCD API documentation can be found here.
    Info on using keypads with the library can be found here.

  • Connecting your display
    Not done yet!

  • Currently Supported displays:

DisplayCompliantLibraryBL-EN-RW-RS-D4-D5-D6-D7
web4robot.comF ELCDi2cWi2c
robot-electronicsF ELCDi2cRi2c
newhaven displayF ELCDi2cNHDi2c
Matrix Orbital LK162-12F ELCDi2c-LK162-12i2c
Generic CN type 1 PCF8574 (mjkdz)F ELiquidCrystal_I2C.zip7-4-5-6-0-1-2-3
Generic ST7036 driver - NHD-C0220BiZF EST7036i2c
Generic CN type 2 PCF8574 EBay (Photo)F ELiquidCrystal_I2C3-2-1-0-4-5-6-7
PCF8574/MCP23008 driving hd44780P Ehd44780: Install using Library managerauto-detects pins

F = Fully Supported P = Partially Supported D = Being Developed E = Extended Library Support

Click on the library name to download the latest version of the library for your display

  • Notes:
    The libraries as installed include the extended functions of each display. To disable the extended functions comment the #define _LCDEXPANDED out of the library. This will keep the extended functions from being compiled in, and thus save on available memory.

    Every effort has been made to keep the libraries slim on memory usage, and as fast as possible. They have been tested with 0013 and 0015 of the arduino compiler on my mac.

  • Participation:
    There has been much discussion via the forums and e-mail with other Arduino users. I would like to thank Ran Talbott for his advise, and contributions to the library, as well as petersson49 for positing his code for the robot-electronics LCD03.

  • News:
    Initial Library and API created by Dale Wentz

    09-14-2009 Mario added support for using a standard HD44780 compatible LCD using the PCF8574 . The new library named “LiquidCrystal_I2C” and can be found here https://playground.arduino.cc/Code/LCDAPI

    09-13-2010 Brian Brumfield Added support for the Matrix Orbital LK162-12 Display

    22.08.2011 Added support for the ST7036 LCD controller driving LCDs such as the Newhaven - NHD‐C0220BiZ, it can be downloaded from https://bitbucket.org/fmalpartida/st7036-display-driver/downloads.