Home > Tutorials > Raspberry Pi – LCD Display ansteuern

Raspberry Pi – LCD Display ansteuern

In meinem Hardware-Fundus hatte ich noch ein 16×2 Zeichen LCD Display wiederentdeckt, das wollte ich schon länger mal am Raspberry Pi testen und in Betrieb nehmen. Was liegt da näher, um für einen Funktionstest, die aktuelle Uhrzeit und die IP-Adresse meines Mini-Rechners auf dem Display auszugeben. In diesem kleinen Raspberry Pi Projekt zeige ich euch wie ihr ein 16×2 Zeichen LCD an den RasPi anschließt und via Python Script ansteuert.

Material

Folgendes Material habe ich verwendet

  • QC1602a 16×2 Zeichen LCD Display
  • Drehpotentiometer 50k Ohm
  • Breadboard
  • Steckbrettkabel Male-Male
  • GPIO Breakout

Falls ihr noch kein Breadboard und Kabel besitzt, das Ganze gibt es auch als Set inkl LCD und Poti.

Verkabelung des LCD Display

Die Verkabelung des Display scheint auf den ersten Blick recht komplex, habt ihr allerdings die die Funktion einmal verstanden ist das Setup recht einfach.

LCD-Display

Das LCD-Display hat 16 Pins. In der unten stehenden Tabelle habe ich die Verkabelung des Display dargestellt. Da ich, wie ihr auf den Bild erkennen könnt, ein GPIO Breakout verwende habe ich in der letzten Spalte die Verkabelung mit meinem Breakout dokumentiert.

Falls ihr das Display über ein anderes Breakout oder direkt am RasPi bzw. via Breadboard verkabeln wollt habe ich die RasPi GPIO Pins aufgeführt, wie immer ist es die Nummer des Pins auf der Leiste P1. Falls ihr euch unsicher bei der Zuordnung der Pins seit könnt ihr einen Blick auf mein GPIO Pin Worksheet werfen dort die Verbindungen eintragen.

LCD Pin LCD Funktion RasPi Funktion RasPi GPIO-Pin Mein Breakout (T-Cobbler)
01 GND GND GPIO Pin 6 GND
02 +5V +5V GPIO Pin 2 5V0
03 Contrast GND GPIO Pin 6 Potentiometer (mittlerer Pin)
04 RS GPIO7 GPIO Pin 26 CE1
05 RW GND GPIO Pin 6 GND
06 E GPIO8 GPIO Pin 24 CE0
07 Data 0    
08 Data 1    
09 Data 2    
10 Data 3    
11 Data 4 GPIO25 GPIO Pin 22 GPIO6
12 Data 5 GPIO24 GPIO Pin 18 GPIO5
13 Data 6 GPIO23 GPIO Pin 16 GPIO4
14 Data 7 GPIO18 GPIO Pin 12 GPIO1
15 +5V   GPIO Pin 2 5V0
16 GND   GPIO Pin 6 GND

Alternativ gibt es auf der Adafruit Seite ein passendes Verkabelungsdiagramm, allerdings verwenden die wieder eine anderes Breakout.

LCD Display am Raspberry Pi einrichten

Wir steuern das LCD Display via Python an, daher installieren wir als erstes die notwendigen Python Programme und Abhängigkeiten nachdem wir unser System aktualisiert via apt aktualisiert haben.

Dann können wir direkt loslegen, das Python Script, welches ich vorbereitet haben laden wir uns via wget ins Home und machen es via chmod ausführbar.

Zum Testen eures LCD-Display können wir das Script nun direkt ausführen und uns die Ausgabe auf dem Display ansehen.

Eventuell müsst ihr noch über den Drehpoti den Kontrast eures LCDs einstellen, erhaltet ihr keine oder eine falsche Ausgabe liegt dies vermutlich an der falschen Verkabelung. Falls die angezeigte Uhrzeit nicht stimmt müsst ihr eure Zeitzone via Raspi-config auf die Deutsche (GMT +1) umstellen.

Wer möchte kann mit den unten aufgeführten Script die Ausgabe nach jedem Neustart des RasPi aktivieren. Hierzu müsst ihr den Code in die Datei /etc/init.d/lcd kopieren und dann folgende Befehle ausführen um /etc/init.d/lcd zum automatischen Start hinzuzufügen (via rc).

 LCD Python Code

Autostart Script

 

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (1 votes, durchschnittlich: 5,00 von 5)
Loading...

Über raspberry.tips

13 Kommentare

  1. Sehr interessante Anleitung.

    Da ich noch ein Anfänger bin, bin ich noch etwas verunsichert.
    Meine frage die noch aufkommt ist, Ich muss doch die Pin´s vom GPIO verschalten? Welche werden wie freigeschalten? Und wie mach ich das?

    LG Dirk

  2. @DirkS du musst garnichts freischalten, daß macht das pythonscript von selber.
    Man muss nur auf die korrekte Verkabelung achten. Es gibt verschiedene RasPI Modelle die zum teil abweichende Belegungen der GPIO Pins haben weil die Stiftleisten unterschiedlich sind.
    Die angegebene dürfte sich noch auf den RasPI Modell A,B oder B+ beziehen. DIe neueren haben mehr GPIOs und damit mehr Pins und ein anderes Layout während etwa ein BanaPI 1 zu ersteren Pinkompatibel ist.
    Unter Berücksichtigung davon läuft bei mir grad ein Pollin 16×2 LCD am RasPi2 …

  3. Hallo, im Python-Code sind die Backslashes abhanden gekommen.

    Falsch:
    if char == ‘n’:
    Richtig:
    if char == ‘\n’:

    Falsch:
    lcd.message(datetime.now().strftime(‘%b %d %H:%M:%Sn’))
    Richtig:
    lcd.message(datetime.now().strftime(‘%b %d %H:%M:%S\n’))

    Gruß,

    Frank

  4. Hallo, wenn ich das script probiere zu lade,
    bekomme ich folgende Fehlermeldung
    /wp-content/uploads/2014/12/raspberry.tips_.lcd_.py_.txt: Scheme missing.

    Hat jemand ne Idee ?
    Lg Rob

  5. ..die downloadfnktion für das Skript scheint nicht mehr zu funktionieren. Auch nicht mit http:// vornedran. Ich weiß, dass dieser Text schon etwas älter ist, aber weiß jemand wie ich mir das abtippen trotzdem sparen kann?

  6. Hallo,
    das Downloaden funktioniert bei mir nicht. Daher habe ich den Skript einfach manuell in eine Datei eingefügt. Beim testweise ausführen kommt folgende Fehlermeldung:
    File “raspberry.tips.lcd.py”, line 426
    cmd = “ip addr show eth0 | grep inet | awk ‘{print $2}’ | cut -d/ -f1”
    ^
    IndentationError: unindent does not match any outer indentation level

    Was soll ich machen?
    Bitte eine schnelle Antwort, gerne auch per Email

  7. Kann ich auch nur einen Text anzeigen lassen? Habt ihr einen Skript womit ich aktuelle Nachrichten auf dem Display anzeigen lassen kann?

  8. Hallo,
    bitte aufpassen, Pin 15 und 16 des LCD Moduls sind in der Regel die Anode (A) und Kathode (K) der LED Hintergrundbeleuchtung des Displays. Wie bei jede LED braucht es hier in der Regel einen seperaten Vorwiderstand wenn man lange Freude am LCD Modul haben möchte.
    Des Weiteren kann mit dem Widerstand auch die Helligkeit der Displaybeleuchtung noch weiter reduziert werden. Dazu einfach einen entsprechend höheren Widerstandswert wählen.
    VG, Peter

  9. Ergänzung zum vorherigen Post: Es gibt natürlich auch LCD Module mit integriertem Vorwiederstand für die Hintergrundbeleuchtung. Aber auch hier kann man mit einem weiteren Widerstand die Helligkeit begrenzen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.