← Back to guides

Arduino Uno Pinout for LCD 1602

The LCD 1602 module with HD44780 controller is the most common display in Arduino starter kits. This guide covers the standard 4-bit parallel connection to an Arduino Uno — fewer pins than 8-bit mode, same performance for hobby projects.

What You Need

  • Arduino Uno (or compatible)
  • LCD 1602 with HD44780 (16×2 characters)
  • 10 kΩ potentiometer (contrast adjustment)
  • Breadboard and jumper wires

Pin Connection Table

LCD Pin Label Connect to
1VSS (GND)Arduino GND
2VDD (+5V)Arduino 5V
3V0 (Contrast)Middle pin of 10 kΩ pot (ends to 5V and GND)
4RS (Register Select)Digital pin 12
5RW (Read/Write)GND (write-only mode)
6E (Enable)Digital pin 11
11D4Digital pin 5
12D5Digital pin 4
13D6Digital pin 3
14D7Digital pin 2
15A (Backlight +)5V via 220 Ω resistor (optional)
16K (Backlight −)GND

Starter Sketch

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  lcd.begin(16, 2);
  lcd.print("Hello, Arduino!");
}

void loop() {}

I2C Backpack Alternative

Many modules ship with an I2C backpack (PCF8574) — only 4 wires: VCC, GND, SDA (A4), SCL (A5). Use the LiquidCrystal_I2C library instead. Pinout tables above apply to raw parallel modules.

Troubleshooting

  • Blank screen, backlight on: Adjust contrast potentiometer slowly while powered
  • White blocks on row 0: Normal before lcd.begin() — check wiring if it persists
  • Garbled text: Swap D4–D7 pins or verify RS/E connections

Ready for custom icons? Open the character generator or read how to display custom icons.