Features:
- LCD Screen: 16x2 layout (32 characters).
- HD44780 Controller: Widely-used LCD control interface.
- Blue Backlight: Enhances readability in dim environments.
- Versatile: Displays text, numbers, or characters.
- User-Friendly: Easy to interface and program.
Description:
This user-friendly display is ideal for projects ranging from basic to industrial-level applications. Controlled by the HD44780, it's easy to integrate into most microcontroller-based systems. The blue backlight ensures visibility in various lighting conditions.
Principle of Work:
The LCD uses liquid crystals that shift orientation when voltage is applied, modulating light from the backlight to display characters. The HD44780 sends commands to activate specific display segments, illuminating selected areas through an LED backlight.
Pinout of the Module:

- Pin 1 (GND): Connect to ground.
- Pin 2 (VCC): Supply voltage.
- Pin 3 (V0/VEE): Contrast control via potentiometer (0-5V).
- Pin 4 (RS): Register Select (0=Command, 1=Data).
- Pin 5 (RW): Read/Write control (0=Write, 1=Read).
- Pin 6 (E): Enable signal for operations.
- Pin 7-14 (D0-D7): Data/Command lines (4 or 8-bit mode).
- Pin 15 (LED+): Connect to +5V for backlight.
- Pin 16 (LED-): Connect to GND for backlight.
Applications:
- Embedded Systems: Real-time data display.
- Instrumentation & Control: Displays critical system info.
- Home Automation: Shows environmental data.
- Consumer Electronics: Used in portable gadgets for status display.
- Robotics: Real-time sensor or control display.
- Educational & Hobby Projects: Ideal for learners and makers.
Circuit:
- Connect GND to MCU ground.
- Connect VCC to power supply.
- V0/VEE to POT for contrast adjustment.
- RS, RW, E to MCU digital pins.
- Data pins D0-D7 to MCU (4 or 8-bit mode).
- LED+ to 5V, LED- to GND for backlight.

Library:
No installation required. Already included in the Arduino IDE.
Example Code:
#include "LiquidCrystal.h"
// For 8-bit mode
LiquidCrystal lcd(13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3);
// For 4-bit mode (uncomment if using this mode)
// LiquidCrystal lcd(13, 12, 11, 6, 5, 4, 3);
unsigned char Character1[8] = {
0x04, 0x1F, 0x11, 0x11, 0x1F, 0x1F, 0x1F, 0x1F
}; // Custom Character 1
unsigned char Character2[8] = {
0x01, 0x03, 0x07, 0x1F, 0x1F, 0x07, 0x03, 0x01
}; // Custom Character 2
void setup() {
lcd.begin(16,2); // Initialize 16x2 LCD
lcd.clear(); // Clear the display
lcd.createChar(0, Character1); // Create custom char
lcd.createChar(1, Character2);
}
void loop() {
lcd.setCursor(0,0); // First line
lcd.print("Hello!!!!"); // Print text
lcd.setCursor(0,1); // Second line
lcd.write(byte(0)); // Print custom char 1
lcd.write(1); // Print custom char 2
}
Connection Note: In the 8-bit mode, RS = D13, RW = D12, E = D11, and data pins D0-D7 = D10 to D3 respectively. Modify pins for other configurations as needed.
Technical Details:
- Voltage: 4.7V – 5.3V
- Bezel: 72 x 25 mm
- Current: 1mA (w/o backlight)
- PCB Size: 80 x 36 x 10 mm
- Controller: HD44780
- Backlight: Blue
- LCD Size: 16x2
- LCD Pins: 16
- Display Characters: 32
- Mode: 4-bit / 8-bit
- Character Box: 5x8 pixels
- Font: 0.125W x 0.200H
Resources:
Comparisons:
Comparison: LCD with HD44780 vs. LCD with I2C module:
- Connection: HD44780 needs many connections; I2C needs only 2 (SDA & SCL).
- Simplicity: I2C is easier to set up and wire.
- Space Saving: I2C uses less PCB space.
- Power: I2C typically consumes less power due to efficient communication.
Features:
- LCD Screen: 16x2 layout (32 characters).
- HD44780 Controller: Widely-used LCD control interface.
- Blue Backlight: Enhances readability in dim environments.
- Versatile: Displays text, numbers, or characters.
- User-Friendly: Easy to interface and program.
Description:
This user-friendly display is ideal for projects ranging from basic to industrial-level applications. Controlled by the HD44780, it's easy to integrate into most microcontroller-based systems. The blue backlight ensures visibility in various lighting conditions.
Principle of Work:
The LCD uses liquid crystals that shift orientation when voltage is applied, modulating light from the backlight to display characters. The HD44780 sends commands to activate specific display segments, illuminating selected areas through an LED backlight.
Pinout of the Module:

- Pin 1 (GND): Connect to ground.
- Pin 2 (VCC): Supply voltage.
- Pin 3 (V0/VEE): Contrast control via potentiometer (0-5V).
- Pin 4 (RS): Register Select (0=Command, 1=Data).
- Pin 5 (RW): Read/Write control (0=Write, 1=Read).
- Pin 6 (E): Enable signal for operations.
- Pin 7-14 (D0-D7): Data/Command lines (4 or 8-bit mode).
- Pin 15 (LED+): Connect to +5V for backlight.
- Pin 16 (LED-): Connect to GND for backlight.
Applications:
- Embedded Systems: Real-time data display.
- Instrumentation & Control: Displays critical system info.
- Home Automation: Shows environmental data.
- Consumer Electronics: Used in portable gadgets for status display.
- Robotics: Real-time sensor or control display.
- Educational & Hobby Projects: Ideal for learners and makers.
Circuit:
- Connect GND to MCU ground.
- Connect VCC to power supply.
- V0/VEE to POT for contrast adjustment.
- RS, RW, E to MCU digital pins.
- Data pins D0-D7 to MCU (4 or 8-bit mode).
- LED+ to 5V, LED- to GND for backlight.

Library:
No installation required. Already included in the Arduino IDE.
Example Code:
#include "LiquidCrystal.h"
// For 8-bit mode
LiquidCrystal lcd(13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3);
// For 4-bit mode (uncomment if using this mode)
// LiquidCrystal lcd(13, 12, 11, 6, 5, 4, 3);
unsigned char Character1[8] = {
0x04, 0x1F, 0x11, 0x11, 0x1F, 0x1F, 0x1F, 0x1F
}; // Custom Character 1
unsigned char Character2[8] = {
0x01, 0x03, 0x07, 0x1F, 0x1F, 0x07, 0x03, 0x01
}; // Custom Character 2
void setup() {
lcd.begin(16,2); // Initialize 16x2 LCD
lcd.clear(); // Clear the display
lcd.createChar(0, Character1); // Create custom char
lcd.createChar(1, Character2);
}
void loop() {
lcd.setCursor(0,0); // First line
lcd.print("Hello!!!!"); // Print text
lcd.setCursor(0,1); // Second line
lcd.write(byte(0)); // Print custom char 1
lcd.write(1); // Print custom char 2
}
Connection Note: In the 8-bit mode, RS = D13, RW = D12, E = D11, and data pins D0-D7 = D10 to D3 respectively. Modify pins for other configurations as needed.
Technical Details:
- Voltage: 4.7V – 5.3V
- Bezel: 72 x 25 mm
- Current: 1mA (w/o backlight)
- PCB Size: 80 x 36 x 10 mm
- Controller: HD44780
- Backlight: Blue
- LCD Size: 16x2
- LCD Pins: 16
- Display Characters: 32
- Mode: 4-bit / 8-bit
- Character Box: 5x8 pixels
- Font: 0.125W x 0.200H
Resources:
Comparisons:
Comparison: LCD with HD44780 vs. LCD with I2C module:
- Connection: HD44780 needs many connections; I2C needs only 2 (SDA & SCL).
- Simplicity: I2C is easier to set up and wire.
- Space Saving: I2C uses less PCB space.
- Power: I2C typically consumes less power due to efficient communication.