LCD 1602 I²C

A 16x2 character display driven over I²C, so a full HD44780 text screen runs on just two signal wires instead of the usual six or more parallel data lines.

LCD 1602 I²C: 16×2 character display

What is the LCD 1602 I²C?

The LCD 1602 I²C is a monochrome character display that shows 16 characters across 2 lines (32 cells total), built on an HD44780-compatible controller. A PCF8574 I²C I/O expander is soldered to the back as a 'backpack', converting the LCD's parallel interface into a two-wire I²C bus. That drops the wiring down to four connections: VCC, GND, SDA, and SCL.

Each cell renders a glyph on a 5x8 dot matrix pulled from the controller's built-in character ROM, and up to eight custom glyphs can be defined in the controller's CGRAM. It cannot draw arbitrary pixels or graphics: it is a text-and-symbol display only. The module runs on 5V, which the HD44780 controller needs to produce readable contrast.

The backpack answers at a fixed I²C address (0x27 on the common PCF8574T version; some units built on the PCF8574A variant answer at 0x3F). A small trimpot on the back sets display contrast, and a jumper controls the backlight. Because it lives on the shared I²C bus, it coexists with other I²C peripherals on the same SDA and SCL lines. The board measures roughly 80 x 36 x 12 mm.

LCD 1602 I²C pinout

PinFunctionType
GND GNDPowerPower in
VCC VCC (5V)PowerPower in
SDA SDAI²C SDABidirectional (GPIO)
SCL SCLI²C SCLBidirectional (GPIO)

Specifications

Operating voltage
5 V
Interface
I²C
I²C address
0x27
I²C pull-ups
On-board (no external resistors)
Dimensions
80 × 36 × 12 mm

Verified from the Tinkered component library.

Circuit requirements

  • Four-wire hookup: VCC to 5V, GND to ground, SDA to the controller's I²C data pin, SCL to the I²C clock pin. No parallel data or contrast wiring is needed beyond that.
  • Power VCC from 5V. At 3.3V the HD44780 contrast is too weak to read even when the logic works, so use the 5V rail even on 3.3V boards.
  • The backpack has its own I²C pull-up resistors, so external pull-ups are usually unnecessary. Those pull-ups tie SDA and SCL toward VCC (5V), which matters when driving from a 3.3V microcontroller whose I/O may not be 5V tolerant.
  • Default I²C address is 0x27; PCF8574A-based boards use 0x3F. The A0/A1/A2 solder pads let you shift the address to run more than one module on the same bus.
  • Contrast is set by the on-board trimpot, not by a wire. The backlight is switched by an on-board jumper, not by a data pin.

Board compatibility

The LCD 1602 I²C connects to any of the microcontrollers supported in Tinkered. Mind the 5 V logic level on 3.3 V boards.

Simulate the LCD 1602 I²C in your browser

The LCD 1602 I²C is fully simulated in Tinkered. Wire it into a circuit, write your firmware, and read real values back with no physical hardware. Test your logic before you touch a breadboard.

Open it in the simulator

Common LCD 1602 I²C mistakes

Wrong I²C address in the sketch

The display stays blank when the code targets an address the module does not use. A 0x27 board addressed as 0x3F (or vice versa) shows nothing. Run an I²C scanner sketch first and use the address it reports.

Contrast trimpot left un-adjusted

Fresh modules often ship with contrast at an extreme, so you see two rows of solid blocks, faint ghost text, or a completely blank panel even though the code is correct. Turn the small potentiometer on the back until characters appear.

Powering the module at 3.3V

The HD44780 controller needs 5V for usable contrast. Wired to a 3.3V rail the backlight may glow but the text is invisible or extremely dim. Feed VCC from 5V and only the logic lines from the 3.3V microcontroller.

Ignoring the 5V pull-ups on a 3.3V board

The backpack pulls SDA and SCL up to VCC. If VCC is 5V and the microcontroller (ESP32, STM32, etc.) is not 5V tolerant, the I²C lines can exceed the safe input voltage. Use a level shifter or power the backpack pull-ups appropriately in that case.

Blaming a dark backlight jumper

The backlight is controlled by a removable jumper on the backpack. If that jumper is missing or the transistor pins are shorted, the backlight stays off and the module looks dead even when it is running fine.

LCD 1602 I²C datasheet

Official LCD 1602 I²C datasheet

Popular LCD 1602 I²C projects

Sensor readout panel

Display live temperature, humidity, or distance from a sensor like a DHT22 or HC-SR04 on line 1 and 2, refreshed in the loop.

Digital clock and calendar

Pair with an RTC module on the same I²C bus to show time and date without the LCD hogging extra pins.

Menu and status interface

Combine with a rotary encoder or push buttons to build a scrollable menu, using the eight custom CGRAM characters for arrows and icons.

Multi-device I²C dashboard

Share SDA and SCL with other I²C peripherals so one two-wire bus feeds the display plus sensors, expanders, or an RTC at once.

Build with the LCD 1602 I²C.

Drop the LCD 1602 I²C into a circuit, write firmware, and simulate it in your browser, then deploy to real hardware. All in one editable Tinkered project.