The LCD class constructs an object that represents an LCD Display. Controllers are generally named for the chip used or component model number. Most LCD's use the HD44780 screen (or similar), so be sure to check the model number or chip name for the right controller (valid controllers are listed below).

Parameters

  • General Options

    PropertyTypeValue/DescriptionDefaultRequired
    rowsNumberThe number of rows on the device2No
    colsNumberThe number of columns on the device16No

  • I2C Options

    PropertyTypeValue/DescriptionDefaultRequired
    controllerString"PCF8574", "PCF8574A", "JHD1313M1" (Grove). The name of the controller to use.Yes

  • Parallel Options (Default Controller)

    PropertyTypeValue/DescriptionDefaultRequired
    pinsObject{ rs, en, d4, d5, d6, d7 }. Sets the values of the rs, en, d4, d5, d6 and d7 pins.Yes (Either)
    pinsArray[ rs, en, d4, d5, d6, d7 ]. Sets the values of the rs, en, d4, d5, d6 and d7 pins.Yes (Either)

Shape

Property NameDescriptionRead Only
idA user definable id value. Defaults to nullNo
rowsThe number of rows that the LCD display supports. Defaults to 2.No
colsThe number of columns that the LCD display contains. Defaults to 16.No

Component Initialization

Parallel

// Parallel LCD
new five.LCD({ 
  pins: [7, 8, 9, 10, 11, 12]
});

// Parallel LCD w/ Backlight
new five.LCD({ 
  pins: [7, 8, 9, 10, 11, 12],
  backlight: 13,
});

// Parallel LCD w/ Backlight & Explicit Rows and Columns (20 cols, 2 rows)
new five.LCD({ 
  pins: [7, 8, 9, 10, 11, 12],
  backlight: 13,
  rows: 2,
  cols: 16
});

LCD

I2C, PCF8574 (Generic)

/* I2C LCD Controllers PCF8574X Series have SDA and SCL pins which need to be connected to respective i/o ports on Arduino boards e.g
* Arduino UNO SDA = A4  and SCL = A5
* Arduino MEGA 2560 SDA = 20  and SCL = 21   
* + To Adjust the LCD text Brightness use blue color variable resistor on I2C board. turn it around with screw driver.
*/

// I2C LCD, PCF8574
new five.LCD({ 
  controller: "PCF8574"
});

// I2C LCD, PCF8574A
new five.LCD({ 
  controller: "PCF8574A"
});

// I2C LCD, PCF8574T
new five.LCD({ 
  controller: "PCF8574T"
});

// I2C LCD, PCF8574AT
new five.LCD({ 
  controller: "PCF8574AT"
});

LCD I2C

I2C, JHD1313M1 (Grove)

new five.LCD({ 
  controller: "JHD1313M1"
});

LCD Grove

Usage

var five = require("johnny-five");
var board = new five.Board();

board.on("ready", function() {

  var lcd = new five.LCD({ pins: [7, 8, 9, 10, 11, 12] });

  lcd.print("Hello");
});

API

  • print(message, opts) prints the string 'message' to the LCD display at the cursor's current position

    • if opts.dontProcessSpecials is set to true, it will not print out any special characters created by the useChar(charCode|name) function.
    
    // No special characters
    lcd.print("Bleep bloop");
    
    // With special characters.
    // This will print a heart character in 1 character space.
    lcd.useChar("heart");
    lcd.print(":heart:");
    
    // With special characters, unprocessed.
    // This will print the literal string ":heart:" in 7 character spaces.
    lcd.useChar("heart");
    lcd.print(":heart:", { dontProcessSpecials: true });
    
  • useChar(charCode|name) Creates the character in LCD memory and adds character to current LCD character map. LCD memory is limited to 8 special characters at a time (see predefined characters here).

    lcd.useChar("heart");
    lcd.print("Hello :heart:");
    
  • createChar(name, charMap) Creates a custom character in LCD memory and adds character to current LCD character map. LCD memory is limited to 8 special characters at a time.

    lcd.createChar("openheart", [0x00, 0x0a, 0x15, 0x11, 0x11, 0x0a, 0x04, 0x00]);
    lcd.print("Hello :openheart:");
    
  • clear() Clears all text on the LCD.

    lcd.print("Bleep bloop");
    lcd.clear();
    
  • cursor(row, column) Sets the cursor position.

    // The starting position of the LCD display
    lcd.cursor(0, 0).print("Bleep");
    
    // The second line, first character of the LCD display
    lcd.cursor(0, 1).print("Bloop");
    
    
  • home() Sets the cursor position to row 0, column 0.

    // The second line, first character of the LCD display
    lcd.cursor(1, 0).print("Bloop");
    
    // The first line, first character of the LCD display
    lcd.home().print("Bleep");
    
  • on() Turn the display on.

  • off() Turn the display off.

  • blink() This causes the cursor to show and blink

    lcd.blink().print("Bleep Bloop");
    
  • noBlink() This causes the cursor to stop blinking

    lcd.noBlink().print("Bleep Bloop");
    
  • autoscroll() Turns on automatic scrolling of the LCD. This causes each character output to the display to push previous characters over by one space.

    lcd.autoscroll().print("Bloop").print("Bleep");
    
  • noAutoscroll() Turns off automatic scrolling of the LCD.

    lcd.noAutoscroll().print("Bloop").print("Bleep");
    
  • bgColor(color) Set the background color for LCDs that support this capability.

    // R, G, B bytes
    lcd.bgColor(red, green, blue);
    // R, G, B byte array 
    lcd.bgColor([red, green, blue]);
    // Keyword 
    lcd.bgColor("red");
    // Hex Code 
    lcd.bgColor("#ff0000");
    // Hex Code, no #
    lcd.bgColor("ff0000");
    

Predefined Characters


0:
  ■ ■ ■   
■ ■   ■ ■ 
■ ■   ■ ■ 
■ ■   ■ ■ 
■ ■   ■ ■ 
■ ■   ■ ■ 
  ■ ■ ■   

1:
      ■   
    ■ ■   
  ■ ■ ■   
    ■ ■   
    ■ ■   
    ■ ■   
    ■ ■   

2:
  ■ ■ ■   
■ ■   ■ ■ 
      ■ ■ 
    ■ ■   
  ■ ■     
■ ■       
■ ■ ■ ■ ■ 

3:
  ■ ■ ■   
■ ■   ■ ■ 
      ■ ■ 
  ■ ■ ■   
      ■ ■ 
■ ■   ■ ■ 
  ■ ■ ■   

4:
      ■ ■ 
    ■ ■ ■ 
  ■ ■ ■ ■ 
■ ■   ■ ■ 
■ ■ ■ ■ ■ 
      ■ ■ 
      ■ ■ 

5:
■ ■ ■ ■ ■ 
■ ■       
■ ■ ■ ■   
      ■ ■ 
      ■ ■ 
■ ■   ■ ■ 
  ■ ■ ■   

6:
  ■ ■ ■   
■ ■   ■ ■ 
■ ■       
■ ■ ■ ■   
■ ■   ■ ■ 
■ ■   ■ ■ 
  ■ ■ ■   

7:
■ ■ ■ ■ ■ 
      ■ ■ 
    ■ ■   
  ■ ■     
  ■ ■     
  ■ ■     
  ■ ■     

8:
  ■ ■ ■   
■ ■   ■ ■ 
■ ■   ■ ■ 
  ■ ■ ■   
■ ■   ■ ■ 
■ ■   ■ ■ 
  ■ ■ ■   

9:
  ■ ■ ■   
■ ■   ■ ■ 
■ ■   ■ ■ 
  ■ ■ ■ ■ 
      ■ ■ 
■ ■   ■ ■ 
  ■ ■ ■   

10:
■   ■ ■ ■ 
■   ■   ■ 
■   ■   ■ 
■   ■   ■ 
■   ■ ■ ■ 
          
■ ■ ■ ■ ■ 

11:
  ■   ■   
  ■   ■   
  ■   ■   
  ■   ■   
  ■   ■   
          
■ ■ ■ ■ ■ 

12:
■   ■ ■ ■ 
■       ■ 
■   ■ ■ ■ 
■   ■     
■   ■ ■ ■ 
          
■ ■ ■ ■ ■ 

13:
■   ■ ■ ■ 
■       ■ 
■     ■ ■ 
■       ■ 
■   ■ ■ ■ 
          
■ ■ ■ ■ ■ 

14:
■   ■   ■ 
■   ■   ■ 
■   ■ ■ ■ 
■       ■ 
■       ■ 
          
■ ■ ■ ■ ■ 

15:
■   ■ ■ ■ 
■   ■     
■   ■ ■ ■ 
■       ■ 
■   ■ ■ ■ 
          
■ ■ ■ ■ ■ 

16:
■   ■ ■ ■ 
■   ■     
■   ■ ■ ■ 
■   ■   ■ 
■   ■ ■ ■ 
          
■ ■ ■ ■ ■ 

17:
■   ■ ■ ■ 
■       ■ 
■     ■   
■     ■   
■     ■   
          
■ ■ ■ ■ ■ 

18:
■   ■ ■ ■ 
■   ■   ■ 
■   ■ ■ ■ 
■   ■   ■ 
■   ■ ■ ■ 
          
■ ■ ■ ■ ■ 

19:
■   ■ ■ ■ 
■   ■   ■ 
■   ■ ■ ■ 
■       ■ 
■   ■ ■ ■ 
          
■ ■ ■ ■ ■ 

circle:
          
  ■ ■ ■   
■       ■ 
■       ■ 
■       ■ 
  ■ ■ ■   
          

cdot:
          
  ■ ■ ■   
■       ■ 
■   ■   ■ 
■       ■ 
  ■ ■ ■   
          

donut:
          
  ■ ■ ■   
■ ■ ■ ■ ■ 
■ ■   ■ ■ 
■ ■ ■ ■ ■ 
  ■ ■ ■   
          

ball:
          
  ■ ■ ■   
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
  ■ ■ ■   
          

square:
          
■ ■ ■ ■ ■ 
■       ■ 
■       ■ 
■       ■ 
■ ■ ■ ■ ■ 
          

sdot:
          
■ ■ ■ ■ ■ 
■       ■ 
■   ■   ■ 
■       ■ 
■ ■ ■ ■ ■ 
          

fbox:
          
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
          

sbox:
          
          
  ■ ■ ■   
  ■   ■   
  ■ ■ ■   
          
          

sfbox:
          
          
  ■ ■ ■   
  ■ ■ ■   
  ■ ■ ■   
          
          

bigpointerright:
  ■       
  ■ ■     
  ■   ■   
  ■     ■ 
  ■   ■   
  ■ ■     
  ■       

bigpointerleft:
      ■   
    ■ ■   
  ■   ■   
■     ■   
  ■   ■   
    ■ ■   
      ■   

arrowright:
  ■       
  ■ ■     
  ■   ■   
  ■     ■ 
  ■   ■   
  ■ ■     
  ■       

arrowleft:
      ■   
    ■ ■   
  ■   ■   
■     ■   
  ■   ■   
    ■ ■   
      ■   

ascprogress1:
■         
■         
■         
■         
■         
■         
■         
■         

ascprogress2:
■ ■       
■ ■       
■ ■       
■ ■       
■ ■       
■ ■       
■ ■       
■ ■       

ascprogress3:
■ ■ ■     
■ ■ ■     
■ ■ ■     
■ ■ ■     
■ ■ ■     
■ ■ ■     
■ ■ ■     
■ ■ ■     

ascprogress4:
■ ■ ■ ■   
■ ■ ■ ■   
■ ■ ■ ■   
■ ■ ■ ■   
■ ■ ■ ■   
■ ■ ■ ■   
■ ■ ■ ■   
■ ■ ■ ■   

fullprogress:
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 

descprogress1:
        ■ 
        ■ 
        ■ 
        ■ 
        ■ 
        ■ 
        ■ 
        ■ 

descprogress2:
      ■ ■ 
      ■ ■ 
      ■ ■ 
      ■ ■ 
      ■ ■ 
      ■ ■ 
      ■ ■ 
      ■ ■ 

descprogress3:
    ■ ■ ■ 
    ■ ■ ■ 
    ■ ■ ■ 
    ■ ■ ■ 
    ■ ■ ■ 
    ■ ■ ■ 
    ■ ■ ■ 
    ■ ■ ■ 

descprogress4:
  ■ ■ ■ ■ 
  ■ ■ ■ ■ 
  ■ ■ ■ ■ 
  ■ ■ ■ ■ 
  ■ ■ ■ ■ 
  ■ ■ ■ ■ 
  ■ ■ ■ ■ 
  ■ ■ ■ ■ 

ascchart1:
■ ■ ■ ■ ■ 
          
          
          
          
          
          
          

ascchart2:
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
          
          
          
          
          
          

ascchart3:
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
          
          
          
          
          

ascchart4:
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
          
          
          
          

ascchart5:
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
          
          
          

ascchart6:
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
          
          

ascchart7:
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
          

descchart1:
          
          
          
          
          
          
          
■ ■ ■ ■ ■ 

descchart2:
          
          
          
          
          
          
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 

descchart3:
          
          
          
          
          
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 

descchart4:
          
          
          
          
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 

descchart5:
          
          
          
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 

descchart6:
          
          
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 

descchart7:
          
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 

borderleft1:
        ■ 
        ■ 
        ■ 
        ■ 
        ■ 
        ■ 
        ■ 
        ■ 

borderleft2:
      ■ ■ 
      ■   
      ■   
      ■   
      ■   
      ■   
      ■   
      ■ ■ 

borderleft3:
    ■ ■ ■ 
    ■     
    ■     
    ■     
    ■     
    ■     
    ■     
    ■ ■ ■ 

borderleft4:
  ■ ■ ■ ■ 
  ■       
  ■       
  ■       
  ■       
  ■       
  ■       
  ■ ■ ■ ■ 

borderleft5:
■ ■ ■ ■ ■ 
■         
■         
■         
■         
■         
■         
■ ■ ■ ■ ■ 

bordertopbottom5:
■ ■ ■ ■ ■ 
          
          
          
          
          
          
■ ■ ■ ■ ■ 

borderright1:
■         
■         
■         
■         
■         
■         
■         
■         

borderright2:
■ ■       
  ■       
  ■       
  ■       
  ■       
  ■       
  ■       
■ ■       

borderright3:
■ ■ ■     
    ■     
    ■     
    ■     
    ■     
    ■     
    ■     
■ ■ ■     

borderright4:
■ ■ ■ ■   
      ■   
      ■   
      ■   
      ■   
      ■   
      ■   
■ ■ ■ ■   

borderright5:
■ ■ ■ ■ ■ 
        ■ 
        ■ 
        ■ 
        ■ 
        ■ 
        ■ 
■ ■ ■ ■ ■ 

box1:
      ■ ■ 
      ■ ■ 
      ■ ■ 
          
          
          
          

box2:
■ ■       
■ ■       
■ ■       
          
          
          
          

box3:
■ ■   ■ ■ 
■ ■   ■ ■ 
■ ■   ■ ■ 
          
          
          
          

box4:
          
          
          
          
      ■ ■ 
      ■ ■ 
      ■ ■ 

box5:
      ■ ■ 
      ■ ■ 
      ■ ■ 
          
      ■ ■ 
      ■ ■ 
      ■ ■ 

box6:
■ ■       
■ ■       
■ ■       
          
      ■ ■ 
      ■ ■ 
      ■ ■ 

box7:
■ ■   ■ ■ 
■ ■   ■ ■ 
■ ■   ■ ■ 
          
      ■ ■ 
      ■ ■ 
      ■ ■ 

box8:
          
          
          
          
■ ■       
■ ■       
■ ■       

box9:
      ■ ■ 
      ■ ■ 
      ■ ■ 
          
■ ■       
■ ■       
■ ■       

box10:
■ ■       
■ ■       
■ ■       
          
■ ■       
■ ■       
■ ■       

box11:
■ ■   ■ ■ 
■ ■   ■ ■ 
■ ■   ■ ■ 
          
■ ■       
■ ■       
■ ■       

box12:
          
          
          
          
■ ■   ■ ■ 
■ ■   ■ ■ 
■ ■   ■ ■ 

box13:
      ■ ■ 
      ■ ■ 
      ■ ■ 
          
■ ■   ■ ■ 
■ ■   ■ ■ 
■ ■   ■ ■ 

box14:
■ ■       
■ ■       
■ ■       
          
■ ■   ■ ■ 
■ ■   ■ ■ 
■ ■   ■ ■ 

box15:
■ ■   ■ ■ 
■ ■   ■ ■ 
■ ■   ■ ■ 
          
■ ■   ■ ■ 
■ ■   ■ ■ 
■ ■   ■ ■ 

euro:
      ■ ■ 
    ■     
■ ■ ■ ■   
  ■       
■ ■ ■ ■   
  ■       
    ■ ■ ■ 

cent:
          
          
  ■ ■ ■   
■       ■ 
■         
■   ■   ■ 
  ■ ■ ■   
  ■       

speaker:
        ■ 
      ■ ■ 
  ■ ■ ■ ■ 
  ■ ■ ■ ■ 
  ■ ■ ■ ■ 
      ■ ■ 
        ■ 

sound:
  ■       
■         
          
■ ■       
          
■         
  ■       

x:
          
■ ■   ■ ■ 
  ■ ■ ■   
    ■     
  ■ ■ ■   
■ ■   ■ ■ 
          

target:
          
  ■   ■   
■       ■ 
■   ■   ■ 
■       ■ 
  ■   ■   
          

pointerright:
          
  ■       
  ■ ■     
  ■ ■ ■   
  ■ ■     
  ■       
          

pointerup:
          
          
    ■     
  ■ ■ ■   
■ ■ ■ ■ ■ 
          
          

pointerleft:
          
      ■   
    ■ ■   
  ■ ■ ■   
    ■ ■   
      ■   
          

pointerdown:
          
          
■ ■ ■ ■ ■ 
  ■ ■ ■   
    ■     
          
          

arrowne:
          
  ■ ■ ■ ■ 
      ■ ■ 
    ■   ■ 
  ■     ■ 
■         
          

arrownw:
          
■ ■ ■ ■   
■ ■       
■   ■     
■     ■   
        ■ 
          

arrowsw:
          
        ■ 
■     ■   
■   ■     
■ ■       
■ ■ ■ ■   
          

arrowse:
          
■         
  ■     ■ 
    ■   ■ 
      ■ ■ 
  ■ ■ ■ ■ 
          

dice1:
          
          
          
    ■     
          
          
          

dice2:
          
■         
          
          
          
        ■ 
          

dice3:
          
■         
          
    ■     
          
        ■ 
          

dice4:
          
■       ■ 
          
          
          
■       ■ 
          

dice5:
          
■       ■ 
          
    ■     
          
■       ■ 
          

dice6:
          
■       ■ 
          
■       ■ 
          
■       ■ 
          

bell:
    ■     
  ■ ■ ■   
  ■ ■ ■   
  ■ ■ ■   
■ ■ ■ ■ ■ 
          
    ■     

smile:
          
  ■   ■   
          
■       ■ 
  ■ ■ ■   
          
          

note:
      ■   
      ■ ■ 
      ■   
  ■ ■ ■   
■ ■ ■ ■   
  ■ ■     
          

clock:
          
  ■ ■ ■   
■   ■   ■ 
■   ■ ■ ■ 
■       ■ 
  ■ ■ ■   
          

heart:
          
  ■   ■   
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
■ ■ ■ ■ ■ 
  ■ ■ ■   
    ■     
          

duck:
          
  ■ ■     
■ ■ ■   ■ 
  ■ ■ ■ ■ 
  ■ ■ ■ ■ 
    ■ ■   
          

check:
          
        ■ 
      ■ ■ 
■   ■ ■   
■ ■ ■     
  ■       
          

retarrow:
        ■ 
        ■ 
    ■   ■ 
  ■     ■ 
■ ■ ■ ■ ■ 
  ■       
    ■     

runninga:
    ■ ■   
    ■ ■   
    ■   ■ 
  ■ ■ ■   
■   ■     
    ■     
  ■   ■   
■       ■ 

runningb:
    ■ ■   
    ■ ■   
    ■     
  ■ ■ ■   
  ■ ■ ■   
    ■     
  ■   ■   
  ■   ■   

Examples

Hi! The Johnny-Five community is building new projects every day. We made this newsletter to tell you about what's new, what's good, and what's next for Open Source robotics. Join us in exploring what we can make together.

Fork me on GitHub