4002A LCD-display op de Arduino

FunduinoLaatst bijgewerkt op

Zwei Zeilen mit je 40 Zeichen am Arduino

Das 4002A ist doppelt so breit wie das klassische 16×2-LCD und zeigt 40 Zeichen pro Zeile. Dafür braucht es deutlich mehr Leitungen als ein I²C-Display.

In dieser Anleitung verkabelst du das Display mit Kontrastregler und Hintergrundbeleuchtung und lässt mit der Bibliothek LiquidCrystal Text erscheinen.

Das LCD 4002A zeigt zwei Zeilen Text über die volle Breite

Das LCD 4002A

Das 4002A ist ein besonders breites LCD mit zwei Zeilen zu je 40 Zeichen. Es eignet sich gut, um Sensorwerte oder Statusmeldungen des Mikrocontrollers anzuzeigen.

In dieser Anleitung lässt du einen festgelegten Text auf dem Display erscheinen.

Das LCD 4002A zeigt zwei Zeilen Text über die volle Breite

Die Verkabelung

Der Drehregler auf dem separaten Steckbrett stellt den Kontrast ein. Die LED-Hintergrundbeleuchtung wird wie in der Skizze mit 3,3 V versorgt. Das Display im Beispiel braucht eigentlich 4,2 V – wer genau diesen Wert will, erzeugt ihn mit einem Vorwiderstand aus den 5 V.

Die Verkabelung ist anspruchsvoll, weil sehr viele Leitungen nötig sind und das Display keine Buchsen hat. Löte am besten eine abgewinkelte Buchsenleiste auf oder die Kabel direkt ans Display; ein Flachbandkabel macht das übersichtlicher. Ohne Lötverbindung sind kaum gute Ergebnisse zu erzielen.

Die Nummern der Kontakte auf dem Bild entsprechen denen im Datenblatt und im Schaltplan. Zähl die Position der Kabel am Display ab, um Fehler zu vermeiden – zum Beispiel: erstes Kabel von rechts an GND, zweites von rechts an 5V und so weiter.

Der Artikel nennt keinen Wert für den Vorwiderstand der Hintergrundbeleuchtung und keine Tabelle der Anschlüsse – die Belegung steht nur im Schaltplan.

Schaltplan: LCD 4002A am Arduino mit Potentiometer für den Kontrast
Die Nummerierung der Anschlüsse am LCD 4002A
1 / 2

Das Programm

Für das 4002A brauchst du die Bibliothek LiquidCrystal, die bereits in der Arduino IDE enthalten ist.

Im Sketch legst du fest, an welchen Pins das Display hängt, und gibst in lcd.begin() an, wie viele Zeichen und Zeilen es hat – hier 40 und 2. Danach setzt du mit setCursor() die Startposition und schreibst mit print() den Text.

Zwei Kommentare im Sketch stimmen nicht mit dem Code überein: Bei lcd.begin(40, 2) steht „Hier: 16 Zeichen in 2 Zeilen“, und bei lcd.print("Viel Erfolg") ist im Kommentar von „Viel Erfolg!!!“ die Rede.

Zwei Textzeilen auf dem 4002A
#include <LiquidCrystal.h> //LCD-Bibliothek laden LiquidCrystal
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.
}

Variation: oben und unten im Wechsel

In dieser Variation erscheint abwechselnd oben „Oben“ und unten „unten“. Nach jeweils zwei Sekunden löscht lcd.clear() das Display, bevor der nächste Text erscheint.

Der Kommentar sagt „beim fünften Zeichen“, setCursor(5, 1) setzt den Text aber an das sechste Zeichen – die Zählung beginnt bei 0.

Variation: oben und unten im Wechsel
#include <LiquidCrystal.h> // LiquidCrystal
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.
}
Handleiding beoordelen

Opmerkingen

Stel een vraag of deel je ervaring

Neem contact met ons op als iets niet werkt. Vermeld daarbij je board en de foutmelding.

We controleren elke reactie voordat deze wordt gepubliceerd. Je e-mailadres blijft bij ons.