The most common controller of multi-line character displays is the HD44780. There are several Raspberry Pi LCD display sizes (8×2, 16×2, 20×4, etc.) that run with it. In this tutorial, I will show how to use a 16×2 character display and also run a test script.
A few words said in advance: In this tutorial, all pins are addressed directly, which occupies quite a few GPIOs. Another method is the connection via I2C.
Required Hardware Parts
The following parts are required:
- Display with a HD44780 controller
- Jumper Cable
- A resistor or alternatively a potentiometer (to control the backlight)
- Breadboard
Setup
In this case, I refer to the pin numbering (GPIO.BOARD), not to the GPIO numbers:
LCD Pin | to RPi GPIO | Description |
---|---|---|
1. VSS | Pin 6 (GND) | Supply Voltage (ground) |
2. VDD | Pin 2 (5V) | Supply Voltage 5V |
3. V0 | Pin 6 (GND) | Contrast Voltage |
4. RS | Pin 7 (GPIO4) | Register Selection (0: Command Register, 1: Data Register) |
5. RW | Pin 6 (GND) | Read/Write (0: Write Modus, 1: Read Modus) |
6. E | Pin 11 (GPIO17) | Clock Edge |
7. D0 | – | Data Line 0 |
8. D1 | – | Data Line 1 |
9. D2 | – | Data Line 2 |
10. D3 | – | Data Line 3 |
11. D4 | Pin 12 (GPIO18) | Data Line 4 |
12. D5 | Pin 15 (GPIO22) | Data Line 5 |
13. D6 | Pin 16 (GPIO23) | Data Line 6 |
14. D7 | Pin 18 (GPIO24) | Data Line 7 |
15. A | Pin 2 (5V) (mit Poti) | Backlight Anode |
16. K | Pin 6 (GND) | Backlight Cathode |
Schematically, the whole thing looks like this:
The backlight can be adjusted by turning the potentiometer. Some displays cannot stand 5V for the backlight, so you should either look at the datasheet or at least always connect a 470Ω – 510Ω resistor.
Testing the Raspberry Pi LCD Display
You can either view the script I used here or just download it and try.
wget http://www.tutorials-raspberrypi.de/wp-content/uploads/scripts/hd44780_test.py chmod +x hd44780_test.py python hd44780_test.py
If you have chosen a different display or pin assignment, do not forget to adapt the script.
Through the simple control, you can create different scripts, which, for example, show the status of the Pi.
3 Comments
I would lik to follow these raspberry pi tutorials but there’s just too much advertising !!
Peter,
I used an ad-blocker I have NO ads on this page at if they stop me form looking at them via ad-blocker detection I just will not look at them I white list no site at all.
If you have contrast issues or need to edit the code for a 20×4 screen i’ve made a youtube clip to fix some issues i had after following the tutorial. https://www.youtube.com/watch?v=geEA-5f74Gk