16 x 2 character I2C LCD display

Recently imported some Backlit LCD displays, white on blue.They are Generic 16 character by 2 line displays, showing text white on a blue background by using a white backlight.

While these displays can be linked directly to an Arduino , Raspberry Pi or similar, these use the I2C bus system.

I2C is also known as two wire, and is a serial bus that uses only two wires for transmitting data and controlling devices.

All I2C devices have an address on the bus, which must be different for each device. most of the  units I have bought so far have come with a default address 0x3F, although one had a default of 0x27. They have 3 sets of solder pads (A0-2)  that, when bridged, add 10K pull-up resistors to change the address.

They have a jumper to disable the backlight, but of course the characters are then not visible. They also have a potentiometer to adjust the backlight intensity,

This is the sketch I used to test them with an Arduino Uno:

/*—–( Declare Constants )—–*/
/*—–( Declare objects )—–*/
// set the LCD address to 0x3F for a 16 chars 2 line display
// Set the pins on the I2C chip used for LCD connections:
//                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address

/*—–( Declare Variables )—–*/
//NONE

void setup()   /*—-( SETUP: RUNS ONCE )—-*/
{
  Serial.begin(9600);  // Used to type in characters

  lcd.begin(16,2);   // initialize the lcd for 16 chars 2 lines, turn on backlight

// ——- Quick 3 blinks of backlight  ————-
  for(int i = 0; i< 3; i++)
  {
    lcd.backlight();
    delay(250);
    lcd.noBacklight();
    delay(250);
  }
  lcd.backlight(); // finish with backlight on  

//——– Write characters on the display ——————
// NOTE: Cursor Position: (CHAR, LINE) start at 0  
  lcd.setCursor(0,0); //Start at character 4 on line 0
  lcd.print(“Hello, world!”);
  delay(1000);
  lcd.setCursor(0,1);
  lcd.print(“Hello World”);
  delay(8000);  

// Wait and then tell user they can start the Serial Monitor and type in characters to
// Display. (Set Serial Monitor option to “No Line Ending”)
  lcd.clear();
  lcd.setCursor(0,0); //Start at character 0 on line 0
  lcd.print(“start typing now”);
  lcd.setCursor(0,1);
  lcd.print(“LCD display test”);  

}/*–(end setup )—*/

void loop()   /*—-( LOOP: RUNS CONSTANTLY )—-*/
{
  {
    // when characters arrive over the serial port…
    if (Serial.available()) {
      // wait a bit for the entire message to arrive
      delay(100);
      // clear the screen
      lcd.clear();
      // read all the available characters
      while (Serial.available() > 0) {
        // display each character to the LCD
        lcd.write(Serial.read());
      }
    }
  }

}/* –(end main loop )– */

/* ( THE END ) */

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s