- تكلفه فاتورة الكهرباء
- Electrical Energy Consumption
- Parallel and Series Resistor Calculator
- LED Resistor Calculator
- UPS Battery Backup Calculator
- Voltage Divider Calculator
- Resistor Color Code Calculator
- Ohm’s Law Calculator
- Current Divider Calculator
- Number System Conversion Calculator
- Boost Converter Calculator
- MOSFET Threshold Voltage Calculator
- Apparent Power Calculator (kVA & VA)
- 555 Timer Calculator
- Buck Converter Calculator
- Capacitors in Series or Parallel Calculator
- Low Pass Filter Calculator
- RMS Voltage Calculator
- Universal Data Converter
- RMS Voltage Calculator
- Capacitor Code Converter
- Series Inductors Calculator
LCD1602 Parallel LCD Display with Blue Backlight

LCD1602 Parallel LCD Display with Blue Backlight
16×2 Character Display for Arduino and Microcontroller Projects
Introduction
The LCD1602 display module is a classic parallel interface character LCD featuring a 16×2 character display with blue backlight. These displays use the HD44780 controller or compatible chips and are widely supported in the maker community.
Key Features
Blue Backlight
High-contrast display with adjustable blue backlight
Character Grid
16 columns × 2 rows (32 characters total)
Parallel Interface
4-bit or 8-bit parallel communication
Custom Characters
Supports 8 user-defined characters
Technical Specifications
Display Type | Character LCD |
---|---|
Display Format | 16 columns × 2 rows |
Controller | HD44780 or compatible |
Interface | Parallel (4-bit or 8-bit) |
Operating Voltage | 5V (typically) |
Backlight | Blue with adjustable brightness |
Pin Configuration

Pin | Symbol | Description | Arduino Connection |
---|---|---|---|
1 | VSS | Ground | GND |
2 | VDD | Power (+5V) | 5V |
3 | VO | Contrast adjustment | Potentiometer |
4 | RS | Register Select | Digital Pin |
5 | RW | Read/Write | GND (for write only) |
6 | E | Enable | Digital Pin |
7-14 | DB0-DB7 | Data Bus | Digital Pins (4-bit: DB4-DB7) |
15 | A | Backlight Anode (+) | 5V via resistor |
16 | K | Backlight Cathode (-) | GND |
Note: For 4-bit mode, only DB4-DB7 need to be connected
Wiring with Arduino
4-Bit Mode Connection

// Typical 4-bit connections: // LCD RS → Arduino D12 // LCD E → Arduino D11 // LCD D4 → Arduino D5 // LCD D5 → Arduino D4 // LCD D6 → Arduino D3 // LCD D7 → Arduino D2 // LCD R/W → GND // LCD VSS → GND // LCD VDD → 5V // LCD VO → Potentiometer center pin // LCD A → 5V (with resistor) // LCD K → GND
Contrast Adjustment
Connect pin 3 (VO) to a 10K potentiometer between VCC and GND for contrast control.
Arduino Library Setup
- Install the LiquidCrystal library (included with Arduino IDE)
- Include the library in your sketch:
#include <LiquidCrystal.h>
- Initialize the display with your pin configuration:
// Initialize with (RS, E, D4, D5, D6, D7) LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
Basic Display Example
#include <LiquidCrystal.h> // Initialize the library with pin numbers LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { // Set up the LCD's number of columns and rows lcd.begin(16, 2); // Print a message to the LCD lcd.print("Hello, World!"); } void loop() { // Set the cursor to column 0, line 1 lcd.setCursor(0, 1); // Print the number of seconds since reset lcd.print(millis() / 1000); }
Advanced Features
Custom Characters
// Create custom character byte heart[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 }; void setup() { lcd.createChar(0, heart); lcd.write(byte(0)); }
Scrolling Text
void scrollText(String message) { for (int i=0; i < message.length(); i++) { lcd.scrollDisplayLeft(); lcd.print(message[i]); delay(300); } }
Backlight Control
// Connect backlight through transistor // or MOSFET for PWM control void setBacklight(int brightness) { analogWrite(backlightPin, brightness); }
Multiple Displays
// Use different enable pins LiquidCrystal lcd1(12, 11, 5, 4, 3, 2); LiquidCrystal lcd2(12, 10, 5, 4, 3, 2);
Troubleshooting
Blank Display
- Adjust contrast potentiometer
- Check power connections (5V and GND)
- Verify backlight is connected properly
Garbled Characters
- Check data pin connections
- Ensure proper initialization (lcd.begin(16, 2))
- Verify RW pin is grounded
Missing Characters
- Check timing (add small delays if needed)
- Verify correct column/row in setCursor()
- Ensure proper contrast setting