← 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 |
|---|---|---|
| 1 | VSS (GND) | Arduino GND |
| 2 | VDD (+5V) | Arduino 5V |
| 3 | V0 (Contrast) | Middle pin of 10 kΩ pot (ends to 5V and GND) |
| 4 | RS (Register Select) | Digital pin 12 |
| 5 | RW (Read/Write) | GND (write-only mode) |
| 6 | E (Enable) | Digital pin 11 |
| 11 | D4 | Digital pin 5 |
| 12 | D5 | Digital pin 4 |
| 13 | D6 | Digital pin 3 |
| 14 | D7 | Digital pin 2 |
| 15 | A (Backlight +) | 5V via 220 Ω resistor (optional) |
| 16 | K (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.