Nokia 5110 LCD
The Nokia 5110 LCD is very popular among the Arduino tinkerers. These modules are used on wide variety of applications that require some sort of interface or display data to the user.
These modules are very cheap and you can use them with any microcontroller (MCU).
Specifications:
- 84*48 dot matrix LCD (shows 4 lines of characters)
- Voltage: 3.3V
- Module size: 45.2mm x 43.1mm
- Model: Nokia 5510
- Controller: PCD8544

Pinout
1) RST – Reset
2) CE – Chip Enable
3) D/C – Data/Command Selection
4) DIN – Serial Input
5) CLK – Clock Input
6) VCC – 3.3V
7) LIGHT – Backlight Control
8) GND – Ground
Arduino with Nokia 5110 LCD

CODE:
/*
* PCD8544 – Interface with Philips PCD8544 (or compatible) LCDs.
*
* Copyright (c) 2010 Carlos Rodrigues <cefrodrigues@gmail.com>
*
* To use this sketch, connect the eight pins from your LCD like this:
*
* Pin 1 -> +3.3V (rightmost, when facing the display head-on)
* Pin 2 -> Arduino digital pin 3
* Pin 3 -> Arduino digital pin 4
* Pin 4 -> Arduino digital pin 5
* Pin 5 -> Arduino digital pin 7
* Pin 6 -> Ground
* Pin 7 -> 10uF capacitor -> Ground
* Pin 8 -> Arduino digital pin 6
*
* Since these LCDs are +3.3V devices, you have to add extra components to
* connect it to the digital pins of the Arduino (not necessary if you are
* using a 3.3V variant of the Arduino, such as Sparkfun’s Arduino Pro).
*/
#include <PCD8544.h>
// A custom glyph (a smiley)…
static const byte glyph[] = { B00010000, B00110100, B00110000, B00110100, B00010000 };
static PCD8544 lcd;
void setup() {
// PCD8544-compatible displays may have a different resolution…
lcd.begin(84, 48);
// Add the smiley to position “0” of the ASCII table…
lcd.createChar(0, glyph);
}
void loop() {
// Just to show the program is alive…
static int counter = 0;
// Write a piece of text on the first line…
lcd.setCursor(0, 0);
lcd.print(“Hello, World!”);
// Write the counter on the second line…
lcd.setCursor(0, 1);
lcd.print(counter, DEC);
lcd.write(‘ ‘);
lcd.write(0); // write the smiley
// Use a potentiometer to set the LCD contrast…
// short level = map(analogRead(A0), 0, 1023, 0, 127);
// lcd.setContrast(level);
delay(200);
counter++;
}
Application:
- Can be used to display alphanumeric characters and bitmap images
- Used in application where fancy graphics are required
- Requires only a maximum of 5 pins to operate hence I/O friendly
- Comes with a backlight and hence can be used even in darker environment
- Can be used to create retro games using microcontrollers
- Graphics are decent enough to create a basic UI
Reference:
https://components101.com/nokia-5110-lcd
https://lastminuteengineers.com/nokia-5110-lcd-arduino-tutorial/
https://randomnerdtutorials.com/complete-guide-for-nokia-5110-lcd-with-arduino/
https://www.instructables.com/id/Getting-Started-With-NOKIA-5110-LCD-Screen-Using-A/