Raspberry Pi: 16×2 LCD display aansluiten via GPIO’s

Eerder hebben we op raspberrytips beschreven hoe je een LCD display via een I2C backpack kunt aansluiten op een Raspberry Pi. Je kunt echter ook een LCD display zonder I2C backpack aansluiten, het enige nadeel hiervan is dat je zes GPIO aansluitingen moet gebruiken.

Om het display aan te sluiten op de Raspberry Pi is het handing om een zogenaamd ‘breadboard’ te gebruiken. Hierdoor kun je met dupont-kabeltjes de verbindingen maken. We gebruiken een potmeter om het contrast van het scherm aan te passen. Nadat dat het display is aangesloten kun je deze aansturen met behulp van een Python script.

Gebruikte componenten

LCD1602 module groen scherm 16×2 karakters
10K Verstelbare precisie potentiometer 3362P
Breadboard minimaal 400 punten
Dupont kabels 8xMale/Female en 7xMale/Male

Raspberry Pi Zero, Raspberry Pi 2, Raspberry Pi 3
Raspbian Jessie (2016-05-27 kernel 4.4.13)

Aansluitschema

Het aansluiten van het LCD display is redelijk eenvoudig als je het onderstaand schema gebruikt, zorg ervoor dat de Raspberry Pi spanningloos is en dubbel check de verbindingen voordat je de stroom weer aansluit. De potmeter gebruik je om het contrast van het LCD display aan te passen.

LCD RPI FUNCTIE RPI GPIO PIN
#1 GND GND RPI PIN #6
#2 VCC/5v 5v RPI PIN #1
#3 VO Potmeter 10 kΩ pin #2
#4 RS GPIO 25 RPI PIN #22
#5 RW GND RPI PIN #6
#6 EN GPIO 24 RPI PIN #18
#11 D4 GPIO 23 RPI PIN #16
#12 D5 GPIO 17 RPI PIN #11
#13 D6 GPIO 18 RPI PIN #12
#14 D7 GPIO 22 RPI PIN #15
#15 LED+ 5v RPI PIN #1
#16 LED- GND RPI PIN #6

lcd1602 raspberry pi

Python library installeren

Om via Python te kunnen communiceren met het LCD display maken we gebruik van een speciale Adafruit library waarmee je een set van functies krijgt voor het aansturen van het display.

Clone de Adafruit CharLCD library vanaf GitHub:

git clone https://github.com/adafruit/Adafruit_Python_CharLCD.git

Open de map met de library:

cd ./Adafruit_Python_CharLCD 

Installeer de Python library:

sudo python setup.py install

Hierna is de library geinstalleerd onder Python en kan je deze in ieder script importeren met behulp van de import functie:

import Adafruit_CharLCD as LCD

Test script LCD display

LCD display

Nu het display is aangesloten en de Python library is geinstalleerd kunnen we een testbericht op het display plaatsen. Dit kun je doen met behulp van het onderstaande script. De pin configuratie is geheel volgens het aansluitschema.

#!/usr/bin/python

import Adafruit_CharLCD as LCD

# Raspberry Pi pin configuration:
lcd_rs        = 25
lcd_en        = 24
lcd_d4        = 23
lcd_d5        = 17
lcd_d6        = 18
lcd_d7        = 22
lcd_backlight = 1

# Define LCD column and row size for 16x2 LCD.
lcd_columns = 16
lcd_rows    = 2

# Initialize the LCD using the pins above.
lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7,
                           lcd_columns, lcd_rows, lcd_backlight)

# Print a two line message
lcd.message('Hello!\nraspberrytips.nl')

Kopieer of download het Python script:

wget https://raspberrytips.nl/files/lcd16x4gpio.py

Activeer het script:

sudo python lcd16x4gpio.py

Na het activeren verschijnt de tekst “Hello! raspberrytips.nl” op venster, je kunt ‘\n’ gebruiken om de huidige regel af te breken en op de volgende regel verder te gaan. Mocht er geen tekst verschijnen, dan is waarschijnlijk het contrast te laag, je kunt deze aanpassen met behulp van de potmeter.

In de map Adafruit_Python_CharLCD/examples/ vind je een demo script terug met de naam ‘char_lcd.py’. Deze kun je gebruiken om alle functies van script te bekijken, wanneer je aan de slag gaat met dit script moet je wel eerst de pin configuratie aanpassen zoals in het script hierboven.

8 gedachten over “Raspberry Pi: 16×2 LCD display aansluiten via GPIO’s”

  1. Hallo!

    Ik heb alles volgens de stappen gedaan en mijn lcd display geeft licht
    maar helaas als ik jullie python script uitvoeren komt er geen tekst op te staan.

    Ik krijg geen errors en heb de libary geïnstalleerd

    Beantwoorden
  2. Zelfde verhaal hier. Alleen achtergrond licht, als ik de potmeter draai veranderd wel de intensiteit (valt me op dat laatste stukje ineens veel meer licht geeft).

    Geen tekst dus.

    Beantwoorden
    • Opgelost, even de multimeter ertegenaan, blijkt dat mijn breadboard 2 verschillende paden voor stroom heeft. Ik had de VDD aangesloten op 1 stroomcircuit wat geen stroom kreeg, vandaar alleen de background lighting aan.

      Beantwoorden

Plaats een reactie