www

ein Webangebot von rotering-net.de

Arduino-Grundlagen: LCD ansteuern

Dieses Tutorial zeigt Ihnen die Grundlagen, um ein LCD mit Parallelbus (14 oder 16 Pins) an den Arduino anzuschließen, um darauf Text ausgeben zu können.

Das Liquid Crystal Display

Eine Flüssigkristallanzeige (englisch: Liquid Crystal Display oder kurz: LCD) besitzt kleine Segmente, in denen Flüssigkristalle im ungeordneten Zustand nahezu kein Licht passieren lassen. Legt man dagegen eine Spannung an, richten sie sich so aus, dass sie lichtdurchlässig werden. Die einzelnen Segmente können bliebig gestaltet werden. Für den Arduino werden vor allem Universal-LCD angeboten, die für die Darstellung von beliebigen Zeichen oder Symbolen eine Punktmatrix verwenden. Es gibt sie in verschiedenen Größen, die sich durch Anzahl der Zeichen pro Zeile und die Anzahl der Zeilen unterscheiden.

Da es aufgrund der ungeheuren Zahl schier unmöglich ist, jeden einzelnen Punkt des LCD separat anzusteuern, besitzen marktübliche LCD bereits eine Ansteuerungselektronik. Es gibt sie entweder mit parallelem Bus (in der Regel 14 oder 16 Anschlusspins) oder seriellem Bus (meist I²C).

Die Anschlussbelegung der Pins

Da fast alle Universal-LCD mit Parallelbus den HD44780-Chip oder einen vergleichbaren Nachbau zur Ansteuerung des Displays verwenden, hat sich für die Pinbelegungen ein Quasi-Standard herausgebildet. Bitte beachten Sie: in seltenen Fällen sind schon mal einzelne Pins vertauscht. Insbesondere bei der Stromversorgung kann es schon einmal vorkommen, dass +5 V und Masse vertauscht sind. Vorher also sicherheitshalber bei jedem LCD die Beschriftung der Pins überprüfen oder die Dokumentation konsultieren.

Anschlussbelegung eines LCD mit Parallelbus

LCD-Ansteuerung mit analoger Kontrastregelung

Steckbrettansicht

Die relevaten Pins des LCD werden mit dem Arduino verbunden. In die Spannungszuführung der Hintergrundbeleuchtung (so denn überhaupt vorhanden) wurde vorsichtshalber der oben erwähnte Vorwiderstand eingesetzt. Der analoge Eingang der Kontrastregelung (VEE) wird mit dem Schleifkontakt eines Trimmpotentiometers verbunden, welches auf der einen Seite mit +5 V, auf der anderen Seite mit Masse (0 V) verbunden wird. Hierüber lässt sich der Kontrast manuell regeln.

Zur Ansteuerung des LCD wird die LiquidCrystal-Bibliothek von Adafruit genutzt. Der Beispielcode gibt einen Standardtext aus und zählt anschließend die Sekunden seit dem Start des Programms hoch.

lcd-ansteuern.ino

LCD-Ansteuerung mit PWM-Kontrastregelung

Steckbrettansicht

Im Normalfall stellt man den Kontrast des LCD einmalig ein und belässt ihn dann in dieser Einstellung. Damit ist das Trimmpotentiometer eigentlich überflüssig und nimmt nur Platz auf dem Breadboard weg. Einen passenden Widerstand (mit festem Wert) zu finden, kann sich aber unter Umständen als schwierig erweisen. Eine Alternative stellt die Kontrastregelung über einen PWM-Ausgang des Arduinos dar. Dazu wird auch der Pin 3 (VEE) an den Arduino angeschlossen und das Trimmpotentiometer kann entfallen. Dafür verliert man natürlich wiederum einen digitalen Ausgang. Man muss von Schaltung zu Schaltung abwägen, was einem lieber ist.

Im Gegensatz zum obigen Beispiel wird bei der Initialisierung mittels der Funktion analogWrite() per PWM der Kontrast des LCD auf einen festen Wert eingestellt. Der optimale Wert muss von Ihnen einmalig auf Ihr LCD angepasst werden.

lcd-ansteuern-pwm.ino