

The 16x2 I2C LCD (Manufacturer: FREENOVE, Part ID: GJD 1602IIC) is a liquid crystal display capable of displaying 16 characters per line across 2 lines. It utilizes the I2C (Inter-Integrated Circuit) communication protocol, which significantly reduces the number of pins required for interfacing with microcontrollers. This makes it an ideal choice for projects where pin availability is limited.








The following table outlines the key technical details of the 16x2 I2C LCD:
| Parameter | Specification |
|---|---|
| Manufacturer | FREENOVE |
| Part ID | GJD 1602IIC |
| Display Type | 16x2 Character LCD |
| Communication Protocol | I2C (Inter-Integrated Circuit) |
| Operating Voltage | 5V DC |
| Backlight | LED Backlight (controllable) |
| Contrast Adjustment | Potentiometer on the I2C module |
| I2C Address (Default) | 0x27 (modifiable via solder pads) |
| Operating Temperature | -20°C to 70°C |
| Dimensions | 80mm x 36mm x 12mm |
The 16x2 I2C LCD has a 4-pin interface for I2C communication. The pin configuration is as follows:
| Pin | Name | Description |
|---|---|---|
| 1 | GND | Ground connection |
| 2 | VCC | Power supply (5V DC) |
| 3 | SDA | Serial Data Line for I2C communication |
| 4 | SCL | Serial Clock Line for I2C communication |
Connect the Pins:
GND pin to the ground of your microcontroller.VCC pin to the 5V power supply of your microcontroller.SDA pin to the I2C data pin of your microcontroller (e.g., A4 on Arduino UNO).SCL pin to the I2C clock pin of your microcontroller (e.g., A5 on Arduino UNO).Install Required Libraries:
LiquidCrystal_I2C library via the Arduino IDE Library Manager.Write and Upload Code:
#include <Wire.h> // Include the Wire library for I2C communication
#include <LiquidCrystal_I2C.h> // Include the LiquidCrystal_I2C library
// Initialize the LCD with I2C address 0x27 and dimensions 16x2
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.begin(); // Initialize the LCD
lcd.backlight(); // Turn on the backlight
lcd.setCursor(0, 0); // Set cursor to the first column, first row
lcd.print("Hello, World!"); // Print text on the first row
lcd.setCursor(0, 1); // Set cursor to the first column, second row
lcd.print("16x2 I2C LCD"); // Print text on the second row
}
void loop() {
// No actions in the loop for this example
}
0x27) matches the address of your LCD module. If not, check the module's documentation or adjust the solder pads to modify the address.No Text Displayed on the LCD:
Backlight Not Turning On:
lcd.backlight() function is called in your code.Garbled or Incorrect Characters:
LiquidCrystal_I2C) is installed and used.I2C Communication Errors:
Q: Can I use this LCD with a 3.3V microcontroller?
A: The module is designed for 5V operation. If using a 3.3V microcontroller, a logic level shifter is required for the SDA and SCL lines.
Q: How do I change the I2C address of the LCD?
A: The I2C address can be modified by adjusting the solder pads on the back of the I2C module. Refer to the module's datasheet for details.
Q: Can I turn off the backlight programmatically?
A: Yes, use the lcd.noBacklight() function to turn off the backlight.
Q: What is the maximum cable length for I2C communication?
A: The maximum length depends on the pull-up resistor values and the I2C clock speed. For standard setups, keep the cable length under 1 meter to ensure reliable communication.
This concludes the documentation for the 16x2 I2C LCD.