I2C TWI LCD2004 (SKU:DFR0154)

From DFRobot Electronic Product Wiki and Tutorial: Arduino and Robot Wiki-DFRobot.com
I2C 20x4 Arduino LCD Display Module


I2C/TWI LCD2004 module is a cool lcd with a high speed I2C serial bus from DFRobot. With the limited pin resources, your project may be out of resources using normal LCD shield. The LCD display is a 4x20 character STN white display with a blue LED backlight.

With this I2C interface LCD module, you only need 2 lines (I2C) to display the information.If you already have I2C devices in your project, this LCD module actually cost no more resources at all. Fantastic for Arduino based project.


I2C Address: 0x20-0x27(0x20 default)
Number of Characters: 20 characters x 4 Lines
Blue LED backlight with white char color
Adjustable contrast
Supply voltage: 5V
Interface: IIC/TWI
View direction: Wide viewing angle
Dot size: 0.55 x 0.55 mm
Dot pitch: 0.60 x 0.60 mm
Character size: 2.96 x 4.75 mm
Character pitch: 3.55 x 5.35 mm
Size: 98x60x24mm
Weight: 75g

Connection Diagram

I2C LCD Connection Diagram

Sample code

//Please download the Arduino library!
//The link:http://www.dfrobot.com/image/data/DFR0154/LiquidCrystal_I2Cv1-1.rar
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

#if defined(ARDUINO) && ARDUINO >= 100
#define printByte(args)  write(args);
#define printByte(args)  print(args,BYTE);

uint8_t bell[8]  = {0x4,0xe,0xe,0xe,0x1f,0x0,0x4};
uint8_t note[8]  = {0x2,0x3,0x2,0xe,0x1e,0xc,0x0};
uint8_t clock[8] = {0x0,0xe,0x15,0x17,0x11,0xe,0x0};
uint8_t heart[8] = {0x0,0xa,0x1f,0x1f,0xe,0x4,0x0};
uint8_t duck[8]  = {0x0,0xc,0x1d,0xf,0xf,0x6,0x0};
uint8_t check[8] = {0x0,0x1,0x3,0x16,0x1c,0x8,0x0};
uint8_t cross[8] = {0x0,0x1b,0xe,0x4,0xe,0x1b,0x0};
uint8_t retarrow[8] = {	0x1,0x1,0x5,0x9,0x1f,0x8,0x4};
LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 20 chars and 4 line display(All jumpers should be connected!)

void setup()
//  Serial.begin(57600);
  lcd.init();                      // initialize the lcd 
  lcd.createChar(0, bell);
  lcd.createChar(1, note);
  lcd.createChar(2, clock);
  lcd.createChar(3, heart);
  lcd.createChar(4, duck);
  lcd.createChar(5, check);
  lcd.createChar(6, cross);
  lcd.createChar(7, retarrow);
  lcd.setCursor(0, 0);
  for(int i = 0;i < 20; i++)  lcd.printByte(6);
  lcd.setCursor(0, 1);
  lcd.print("   Hello world    ");
  lcd.setCursor(0, 2);
  lcd.print("  i ");
  lcd.print(" arduinos!   ");
  lcd.setCursor(0, 3);
  for(int i = 0;i < 20; i++)  lcd.printByte(6);
//  lcd.clear();


void loop()



Arduino Sample code
Arduino Library(compatible with IDE V1.0 and earlier)
hd44780 Datasheet.pdf LCD datasheet
Datasheet.pdf PCA8574 Datasheet

Nextredirectltr.pngGo Shopping I2C 20x4 Arduino LCD Display Module