The CharLCDPlate Class is designed to work with the Adafruit Character LCD Plate. This page documents the public API of the GPS Class.

Note: the CharLCDPlate Class is dependent on the MCP23017 Class.

Top down view of a Adafruit RGB Positive 16x2 LCD+Keypad Kit for Raspberry Pi with Purple background.
This new Adafruit Pi Plate makes it easy to use an RGB 16x2 Character LCD. We really like the RGB Character LCDs we stock in the shop. (For RGB we have
Out of Stock
Top down view of a Adafruit RGB Negative 16x2 LCD+Keypad Kit for Raspberry Pi with Red background.
This new Adafruit Pi Plate makes it easy to use an RGB 16x2 Character LCD. We really like the RGB Character LCDs we stock in the shop. (For RGB we have
In Stock


The class has a single constructor, CharLCDPlate(), which takes no arguments.

The constructor creates an instance of the MCP23017 class.

public CharLCDPlate()



This is an asynchronous method that initializes the MCP23017 and the Character LCD.

The method takes three integer arguments (the third argument is optional): cols, which specifies the number of columns on the LCD, lines, which specifies the number of lines on the LCD, and the optional argument dotsize, which specifies the dor matrix size of each character. Default is 5x8.

Constant values for the third argument are defined:

  • public const byte LCD_5x10DOTS = 0x04;
  • public const byte LCD_5x8DOTS = 0x00;


public async Task BeginAsync(int cols, int lines, int dotsize = LCD_5x8DOTS)


This method takes no arguments and clears the LCD display

public void clear()


This method takes no arguments and moves the cursor to the 0,0 (home) position

public void home()


This methof positions the cursor at the specified column and line. It takes two integer arguments, col and line. 

public void setCursor(byte col, byte line)


The createChar method allows the host program to define a custom character. Up to 8 custom characters can be defined.

The method takes as arguments a location and an array of bytes. The location is the number of the custom character (0 through 7). The array is a set of bfitmapped bytes representing the dots of the character. For more information on defining custom characters, please see this page

public void createChar(byte location, byte[] charmap)


This method reads the state of the 5 buttons on the plate. It retutns a byte containing a bitmap of the button states (1=pressed/0=unpressed).

The class contains bitmask definitions for the 5 buttons:

  • public const byte BUTTON_UP = 0x08;
  • public const byte BUTTON_DOWN = 0x04;
  • public const byte BUTTON_LEFT = 0x10;
  • public const byte BUTTON_RIGHT = 0x02;
  • public const byte BUTTON_SELECT = 0x01;
public byte readButtons()


This method controls the color of the RGB backlight on LCDs with a color backlight. It takes a single integer argument, color, which is a bitmap of the three colors.

  • Red : 0x04
  • Green : 0x02
  • Blue : 0x01

Backlights are either on or off. There is no shading.

public void setBacklight(int color)


There are three overloads of the print method. The first overload takes a string as an argument, the second overload takes an integer as an argument, and the third overload takes a double as an argument.

All three overloads write characters to the display beginning at the current cursor location.

public void print(string str)
public void print(int number)
public void print(double number)

Additional methods

The following methods are also available:

  • noDisplay : turn display off
  • display : turn display on
  • noCursor : turn underline cursor off
  • cursor : turn underline cursor on
  • noBlink : turn cursor blink off
  • blink : turn cursor blink on
  • scrollDisplayLeft : scroll display left
  • scrollDisplayRight : scroll display right
  • leftToRight : sets text to flow from left to right
  • rightToLeft : sets text to flow from right to left
  • autoscroll : when printing, characters fill from right (right justify)
  • noAutoscroll: when printing, characters fill from left (left justify)
        public void noDisplay()
        public void display()
        public void noCursor()
        public void cursor()
        public void noBlink()
        public void blink()
        public void scrollDisplayLeft()
        public void scrollDisplayRight()
        public void leftToRight()
        public void rightToLeft()
        public void autoscroll()
        public void noAutoscroll()

This guide was first published on Nov 22, 2016. It was last updated on Dec 04, 2016.

This page (CharLCDPlate Class) was last updated on Sep 15, 2016.

Text editor powered by tinymce.