Skip to content
displays / lcd-1602.md

16×2 Character LCD (HD44780)

The classic 1602 character display. Yellow-green or blue backlight. Runs in 4-bit parallel mode (D4–D7 + RS + E + RW). Or use the I²C backpack (PCF8574) to drop wiring to 4 pins (SDA, SCL, VCC, GND).

In stock Hitachi 1 files · 322 KB

Specs

Spec Value
Controller HD44780 (or compatible)
Characters 16 columns × 2 rows
Char matrix 5×8 pixels
Modes 4-bit or 8-bit parallel
Voltage 5 V (logic + backlight)
Current ~25 mA (backlight on)

Pinout (16-pin header)

Pin Symbol Function
1 VSS GND
2 VDD 5 V
3 V0 Contrast (10 kΩ pot between 5 V and GND, wiper to V0)
4 RS Register select (cmd / data)
5 RW Read / write (tie to GND for write-only)
6 E Enable strobe
7–10 D0–D3 Data bus (unused in 4-bit)
11–14 D4–D7 Data bus
15 A Backlight + (through 220 Ω)
16 K Backlight GND

Wiring (4-bit, Arduino Uno)

LCD Arduino
RS D12
E D11
D4 D5
D5 D4
D6 D3
D7 D2

Code

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  lcd.begin(16, 2);
  lcd.print("circuit.rocks");
  lcd.setCursor(0, 1);
  lcd.print("hello, hacker");
}
void loop() {}

For the I²C backpack version, use LiquidCrystal_I2C and pass the address (0x27 or 0x3F).

Schematic

HD44780 application circuit on page 12 of the datasheet PDF.

Last updated: 2026-05-13 · Source on GitHub