Nr. 52 – 4002A LCD mit Arduino programmieren

Ein 4002A-V2.1 LCD Display mit 2 Zeilen und jeweils 40 Zeichen soll per Arduino angesteuert werden

Aufgabe: Ein LCD Display in der besonders breiten Form 4002A soll mit einem Arduino Mikrocontroller angesteuert werden. Auf dem Display soll ein vorher festgelegter Text wie auf folgendem Beispielfoto erscheinen.

Material: Arduino Mikrocontrollerboard (In diesem Beispiel UNO R3), ein 4002A LCD mit blauer oder grüner Hintergrundbeleuchtung, ein Drehregler (bzw. Potentiometer), 14 Jumperkabel, Breadboard  (Materialbeschaffung: www.funduinoshop.com)

Anhand des Materials und der Skizze erkennt man schnell, dass die Verkabelung anspruchsvoll ist. Das liegt daran, dass das LCD Display mit sehr vielen Kabeln verbunden werden muss. Eine weitere Schwierigkeit sind fehlende Buchsen mit denen man die Kabel anschließen könnte. Daher bietet es sich an, eine abgewinkelte Buchsenleiste aufzulöten oder die Kabel direkt an das LCD anzulöten. Im zweiten Fall bietet es sich an, ein Flachbandkabel zu verwenden (Bspw. von alten IDE-Laufwerken wie Festplatten, CD- oder DVD Laufwerken). Ohne eine gelötete Verbindung ist es nahezu ausgeschlossen, gute Ergebnisse zu erzielen.

Hier erkennt man die angelöteten Buchsenleisten (um 90° abgewinkelt).

Dieses Bild zeigt, welche Nummer die einzelnen Kontakte haben. Die Nummern entsprechen auch den angegebenen Kontakten im Datenblatt und in der Schaltskizze.

Der Drehregler auf dem separaten Breadboard ist dazu da, den Kontrast des LCD einzustellen. Die LED Hintergrundbeleuchtung wird wie in der Skizze dargestellt mit 3,3V versorgt. Dieser Wert kann je nach Hersteller etwas abweichen. Das LCD in unserem Beispiel benötigt für die Hintergrundbeleuchtung eigentlich 4,2V. Wenn man die exakte Spannung verwenden möchte, kann man diese mit Hilfe eines Widerstandes und einer 5V Spannung realisieren.

Um keine Fehler bei der Verkabelung zu machen, sollte man die Position der Kabel am LCD Abzählen (Beispiel: Am LCD wird das erste Kabel von rechts mit GND verbunden. Das zweite Kabel von rechts wird mit 5V verbunden usw…).

Skizze zur Verkabelung:

Wenn man die Verkabelung erfolgreich hergestellt hat, kann man sich mit der Software befassen. Wie bei vielen anderen Bauteilen, wird auch hier auf eine „Library“ zurückgegriffen. Die Library für das LCD Display ist Bestandteil der Arduino-Software und muss nicht zusätzlich installiert werden.

#include <LiquidCrystal.h> //LCD-Bibliothek laden

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //In dieser Zeile wird festgelegt, welche Pins des Mikrocontrollerboards für das LCD verwendet wird (Am besten erstmal nicht verändern).

void setup() 
{
lcd.begin(40, 2); //Im Setup wird angegeben, wie viele Zeichen und Zeilen verwendet werden. Hier: 16 Zeichen in 2 Zeilen.
}

void loop() 
{
lcd.setCursor(0, 0); //Startposition der Darstellung auf dem LCD festlegen. lcd.setCursor(0,0) bedeutet: Erstes Zeichen in der ersten Zeile.
lcd.print("www.funduino.de"); //Dort soll der Text „www.funduino.de“ erscheinen. Der Befehl lcd.setCursor ist dem Mikrocontrollerboard durch das Aufrufen der Bibliothek bekannt.
lcd.setCursor(0, 1); // lcd.setCursor(0,1) bedeutet: Erstes Zeichen in der zweiten Zeile.
lcd.print("Viel Erfolg"); //Dort soll dann der Text „Viel Erfolg!!!“ auftauchen.
}

Eine Variation: Im Display soll abwechselnd erst oben und dann unten ein Text erscheinen. In diesem Beispiel der Text „Oben“ und „Unten“.

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() 
{
lcd.begin(40, 2);
}

void loop() 
{
lcd.setCursor(0, 0);
lcd.print("Oben"); //Beginn beim ersten Zeichen in der ersten Zeile mit dem Text „Oben“.
delay (2000); //Zwei Sekunden warten.
lcd.clear(); //Display löschen.
lcd.setCursor(5, 1);
lcd.print("unten"); //Erneuter Beginn beim fünften Zeichen in der zweiten Zeile mit dem Text „Unten“.
delay (2000); //Zwei Sekunden warten.
lcd.clear(); //Display löschen.
}

Ein LCD eignet sich besonders gut, um Sensorwerte und Informationen des Mikrocontrollerboards anzuzeigen.