DIYables LCD I2C 16x2
Click to zoom






Quick Overview
This 2-pack of 16x2 character LCD displays features I2C interface for easy connection with just 4 wires. Each display shows 2 lines of 16 characters (32 characters total) with adjustable contrast and programmable backlight control.
The I2C interface reduces wiring complexity and saves GPIO pins on your microcontroller. With I2C address 0x27, these displays are ideal for sensor readouts, menus, status displays, and data monitoring in Arduino, ESP32, and Raspberry Pi projects.
Key Features
- 2-Pack Included: Two 16x2 LCD I2C modules
- I2C Interface: Simple 4-wire connection (VCC, GND, SDA, SCL)
- 16x2 Display: 32 characters (16 columns × 2 rows)
- Adjustable Contrast: Built-in potentiometer
- Programmable Backlight: ON/OFF control via code
- Standard I2C Address: 0x27
- Compact Size: 78mm × 34mm × 13mm (L × W × H)
- 5V Power Supply: +5V operation
SPECIFICATION
| Specification | Value |
|---|---|
| Product Type | LCD Character Display with I2C |
| Quantity | 2 pieces |
| Display Size | 16x2 (16 columns, 2 rows) |
| Interface | I2C (4 wires) |
| I2C Address | 0x27 |
| Supply Voltage | +5V |
| Contrast Adjustment | Potentiometer |
| Backlight Control | Programmable ON/OFF |
| Dimensions | 78mm × 34mm × 13mm (L × W × H) |
INTERFACE
- VCC pin: the power supply for the LCD, connect this pin to VCC (5V).
- GND pin: connect this pin to GND (0V).
- SCL pin: I2C clock signal pin, connect this pin to SCL of microcontroller
- SDA pin: I2C data signal pin, connect this pin to SDA of microcontroller
Tutorials
Arduino Example Code
Arduino Example Code - backlight disabled
/*
* This code is created by DIYables.io
* This code is released in the public domain
* For more detail, visit https://diyables.io/products/lcd-i2c-16x2
*/
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27, 16 column and 2 rows
void setup() {
lcd.init(); // initialize the lcd
//lcd.backlight();
lcd.setCursor(3, 0); // move cursor to (3, 0)
lcd.print("DIYables"); // print message at (3, 0)
lcd.setCursor(0, 1); // move cursor to (0, 1)
lcd.print("www.diyables.io"); // print message at (0, 1)
}
void loop() {
}
Arduino Example Code - backlight enabled
/*
* This code is created by DIYables.io
* This code is released in the public domain
* For more detail, visit https://diyables.io/products/lcd-i2c-16x2
*/
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27, 16 column and 2 rows
void setup() {
lcd.init(); // initialize the lcd
lcd.backlight();
lcd.setCursor(3, 0); // move cursor to (3, 0)
lcd.print("DIYables"); // print message at (3, 0)
lcd.setCursor(0, 1); // move cursor to (0, 1)
lcd.print("www.diyables.io"); // print message at (0, 1)
}
void loop() {
}
COMPATIBLE HARDWARE
- Arduino boards (UNO, Mega, Nano, etc.)
- ESP32 development boards
- ESP8266 (NodeMCU, Wemos D1, etc.)
- Raspberry Pi (all models)
- Raspberry Pi Pico
- Any 5V or 3.3V microcontroller with I2C interface









