0
0
AutocadHow-ToBeginner · 4 min read

How to Use 16x2 LCD with Arduino: Simple Guide and Example

To use a 16x2 LCD with Arduino, connect the LCD pins to Arduino digital pins and use the LiquidCrystal library to control it. Initialize the LCD with the correct pins in your code, then use commands like lcd.print() to display text on the screen.
📐

Syntax

The basic syntax to use a 16x2 LCD with Arduino involves including the LiquidCrystal library, creating an LCD object with the pin numbers, initializing the LCD size, and then printing text.

  • #include <LiquidCrystal.h>: Includes the library to control the LCD.
  • LiquidCrystal lcd(rs, enable, d4, d5, d6, d7);: Creates an LCD object with Arduino pins connected to the LCD.
  • lcd.begin(16, 2);: Sets the LCD size to 16 columns and 2 rows.
  • lcd.print("text");: Displays text on the LCD.
arduino
#include <LiquidCrystal.h>

// Initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  lcd.begin(16, 2); // Set up the LCD's number of columns and rows
  lcd.print("Hello, World!"); // Print a message to the LCD
}

void loop() {
  // Nothing here
}
💻

Example

This example shows how to connect a 16x2 LCD to Arduino pins 12, 11, 5, 4, 3, and 2, initialize it, and display a message on the screen.

arduino
#include <LiquidCrystal.h>

// LCD pin connections: RS=12, Enable=11, D4=5, D5=4, D6=3, D7=2
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  lcd.begin(16, 2); // Initialize 16 columns and 2 rows
  lcd.print("Hello, Arduino!"); // Display message
}

void loop() {
  // No repeated actions needed
}
Output
Hello, Arduino!
⚠️

Common Pitfalls

Common mistakes when using a 16x2 LCD with Arduino include:

  • Incorrect wiring of LCD pins to Arduino pins.
  • Not initializing the LCD with lcd.begin(16, 2).
  • Forgetting to include the LiquidCrystal library.
  • Trying to print text before the LCD is initialized.
  • Not connecting the LCD contrast pin (usually pin 3) properly, causing no visible text.

Always double-check wiring and code order.

arduino
// Wrong: Missing lcd.begin()
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  lcd.print("No init"); // This won't show anything
}

void loop() {}

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

void setup() {
  lcd.begin(16, 2);
  lcd.print("Initialized");
}

void loop() {}
📊

Quick Reference

Here is a quick reference for the main LCD pins and their Arduino connections:

LCD PinFunctionArduino Pin (Example)
1 (VSS)GroundGND
2 (VDD)Power +5V5V
3 (VO)Contrast (connect to potentiometer middle pin)Potentiometer
4 (RS)Register Select12
5 (RW)Read/Write (usually grounded)GND
6 (E)Enable11
11 (D4)Data pin 45
12 (D5)Data pin 54
13 (D6)Data pin 63
14 (D7)Data pin 72

Key Takeaways

Always include and initialize the LiquidCrystal library before printing to the LCD.
Connect the LCD pins correctly to Arduino digital pins and power pins.
Use lcd.begin(16, 2) to set the LCD size before printing.
Check the LCD contrast pin connection to see the text clearly.
Avoid printing text before initializing the LCD to prevent no display.