Whenever we work with embedded system we need a reliable output device with the help of which we get the required information, now this problem is solved with the introduction of 16 character by 2 i.e. 16X2 LCD Display with IIC/I2C interface - Blue. 16×2 LCD is an alphanumeric display that can show up to 32 characters on a single screen. You can display more characters by scrolling the texts one by one. We already know that to connect LCD Display directly with the Arduino using 4bit and 8bit modes will utilize many numbers of GPIO Pins of our Arduino or other boards and we would have to end up with less number of pins for other sensors and actuators.
To overcome this problem we use LCD I2C backpack with our LCD. This I2C Backpack uses PCF8574 Remote 8 bit I/O Expander. It translates the data received from the I2C Bus into Parallel data that is needed for the LCD Display.
I2C – Inter-Integrated Circuit:
Inter-integrated Circuit (in short I2C) is a two-wire short distance communication protocol. You can use multiple slave devices in the same two wires with one or more master controllers. You may wonder how does the master identifies which slave does the data to be sent. In I2C the external devices have an I2C address for different external devices like LCD Backpack, OLED Display, etc. By using the address the data is sent to the specific device connected on the same I2C Bus.
The message is broken into two frames and sent serially via the I2C Bus. The first frame contains the address, once the address matches with any device on I2C bus, that device will send an acknowledge signal to the master. After receiving the acknowledgment from the slave the data bits are sent. By this method an I2C bus works.
16×2 LCD Display:
A 16×2 LCD means it can display 16 characters per line and there are 2 such lines. In this LCD each character is displayed in the 5×7 pixel matrix.
There are totally 16 pins in an LCD Display. You can use directly all the pins in 8-bit mode with Arduino or 12 pins using 4-bit mode. In this tutorial, we use the I2C module for LCD and multiplex it into just 4 pins. This pin details might not be useful while using I2C Method but this is the actual pin details of all the pins in LCD Display.
- Vcc – Power Supply (5v)
- Vdd/GND – Ground
- V0 – Brightness Control using Potentiometer
- RS – Register select. Specify what we are sending Command or Data. Sets to 0 for Command mode like setCursor, LCD Clear, TurnOFF LCD. Set 1 for data mode like sending Data/Characters.
- R/W – Read/Write. Mostly we are writing catalog/characters to the registers.
- E – Enable writing to Registers.
- D0 to D7 – Data pins. Send 4bit/8bit data to display characters. The Arduino library provides 4bit and 8bit mode. The data will be in ASCII format.
- A/LED+ – Anode (Backlight LED)
- K/LED- – Cathode (Backlight LED)
The LCD I2C Backpack only has 4 Pins. They are
- GND – Ground
- VCC – 5V Power Supply
- SDA – Data Line
- SCK – Clock Line
The module has a contrast adjustment pot on the underside of the display. This may require adjusting for the screen to display text correctly.
- Arduino IIC/I2C interface was developed to reduce the IO port usage on Arduino board
- I2C adapter allows flexibility in connections
- I2C Reduces the overall wirings.
- 16 characters wide, 2 rows
- White text on the Blue background
- Single LED backlight included can be dimmed easily with a resistor or PWM.
- 1 x 16X2 LCD Display with IIC/I2C interface