Arduino - LCD
In diesem Arduino-LCD-Tutorial lernen wir, wie man ein LCD (Flüssigkristallanzeige) mit dem Arduino-Board verbindet. LCDs sind sehr beliebt und werden in Elektronikprojekten häufig verwendet, um Informationen anzuzeigen. Es gibt viele Arten von LCDs. Dieses Tutorial verwendet als Beispiel das LCD 16x2 (16 Spalten und 2 Zeilen). Die anderen LCDs sind ähnlich.
※ Notiz:
Wenn Sie die Verkabelung vereinfachen möchten, können Sie stattdessen LCD I2C verwenden. Siehe LCD I2C Tutorial
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables STEM V3 Starter-Kit (Arduino enthalten) | |
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über LCD 16x2
Pinbelegung

LCD hat bis zu 16 Pins. In den häufigsten Anwendungen verwenden wir nicht alle Pins.
Mit der Unterstützung der LiquidCrystal-Bibliothek können wir LCDs sogar verwenden, ohne die Bedeutung dieser Pins zu kennen. Wenn Sie jedoch neugierig sind oder tiefergehende Informationen wünschen, schauen wir uns diese Pins und deren Funktionalität an:
- GND-Pin: muss mit GND (0 V) verbunden werden.
- VCC-Pin: die Stromversorgung für das LCD; muss mit VCC (5 V) verbunden werden.
- Vo (LCD-Kontrast)-Pin: steuert den Kontrast und die Helligkeit des LCDs; kann mit 5 V verbunden werden (höchster Kontrast und Helligkeit) oder mit einem Potentiometer verbunden werden (um Kontrast und Helligkeit anzupassen)
- RS (Registerauswahl)-Pin: Es gibt zwei Arten von Daten, die an das LCD gesendet werden müssen: Befehle (zur Steuerung des LCD) und Daten. Diese beiden werden über denselben Datenbus gesendet. Der RS-Pin teilt dem LCD mit, ob die Daten auf dem Datenbus Befehle oder Daten sind.
- Wenn wir den Befehl zur Steuerung des LCD senden möchten, muss der RS-Pin auf LOW gesetzt werden (z. B. den Cursor an eine bestimmte Position setzen, das Display löschen ...).
- Wenn wir die Daten zum Anzeigen auf dem LCD senden möchten, muss der RS-Pin auf HIGH gesetzt werden.
- R/W (Read/Write)-Pin: dient zur Auswahl des Lese- oder Schreibmodus.
- Wenn wir Daten vom LCD lesen möchten, muss dieser Pin auf HIGH gesetzt werden.
- Wenn wir Daten an das LCD senden möchten, muss dieser Pin auf LOW gesetzt werden. Da wir dieses LCD-Gerät nur als Ausgabegerät verwenden, belassen wir diesen Pin auf LOW.
- EN (Enable)-Pin: wird verwendet, um das LCD zu aktivieren. HIGH, um das LCD zu aktivieren; LOW, um das LCD zu deaktivieren.
- D0-D7 (Datenbus)-Pins: Übertragen Daten und Befehle zwischen dem Arduino und dem LCD. Es gibt zwei Modi, um Daten zu senden: 4-Bit-Modus und 8-Bit-Modus.
- A-K (Anode & Kathode)-Pins: dienen dazu, die Hintergrundbeleuchtung des LCD mit Strom zu versorgen. Der A-Pin muss mit VCC verbunden werden. Der K-Pin muss mit GND verbunden werden.
4-Bit-Modus und 8-Bit-Modus
- 8-Bit-Modus: 8 Bits eines Bytes werden gleichzeitig über die Pins D0 bis D7 gesendet.
- 4-Bit-Modus: 8 Bits eines Bytes werden zweimal gesendet, jeweils 4 Bits über die Pins D4 bis D7.
Der 8-Bit-Modus ist schneller als der 4-Bit-Modus, verwendet aber mehr Pins als der 4-Bit-Modus. Die Modusauswahl erfolgt im Initialisierungsprozess durch das Senden eines Befehls an das LCD.
Dieses Tutorial verwendet den 4-Bit-Modus, der am häufigsten verwendet wird.
In diesem Modus sind die Pins des LCDs:
- 6 Pins (RS, EN, D4, D5, D6 und D7) sind mit dem Arduino-Pin verbunden.
- 4 Pins (D0, D1, D2 und D3) sind nicht verbunden.
- 6 verbleibende Pins sind mit GND/VCC oder Potentiometer verbunden.
LCD-Pinbelegung im 4-Bit-Modus
LCD PIN | CONNECTED TO | |
---|---|---|
01 | GND | GND |
02 | VCC | 5V |
03 | Vo | 5V or potentiometer's pin |
04 | RS | An Arduino's pin |
05 | R/W | GND |
06 | EN | An Arduino's pin |
07 | D0 | NOT connected |
08 | D1 | NOT connected |
09 | D2 | NOT connected |
10 | D3 | NOT connected |
11 | D4 | An Arduino's pin |
12 | D5 | An Arduino's pin |
13 | D6 | An Arduino's pin |
14 | D7 | An Arduino's pin |
15 | A | 5V |
16 | K | GND |
LCD-Koordinate
LCD 16x2 umfasst 16 Spalten und 2 Zeilen. Die Spalten und Zeilen beginnen bei 0.

Wie es funktioniert
Der Prozess des Sendens von Daten (zur Anzeige) an das LCD:
- Arduino setzt den RS-Pin auf HIGH (um das Datenregister auszuwählen)
- Arduino schreibt Daten an die D4 bis D7 Pins (Datenbus).
- LCD empfängt Daten über den Datenbus.
- LCD speichert die empfangenen Daten im Daten-Widerstand, da der RS-Pin HIGH ist. Dann zeigt das LCD die Daten auf dem Bildschirm an
Der Prozess des Sendens eines Befehls (zur Steuerung) an das LCD-Display (z. B. das LCD blinken lassen, den Cursor an eine bestimmte Position setzen, das Display löschen ...):
- Arduino setzt den RS-Pin auf LOW (um das Befehlsregister auszuwählen)
- Arduino schreibt den Befehl auf die D4 bis D7-Pins (Datenbus).
- Das LCD empfängt die Daten über den Datenbus.
- Das LCD speichert die empfangenen Daten im Befehlsregister, da der RS-Pin LOW ist. Dann führt das LCD basierend auf dem Wert des Befehls eine Aktion aus.
Arduino - LCD-Anzeige
Die Ansteuerung eines LCDs ist eine ziemlich komplizierte Aufgabe. Glücklicherweise erleichtert die LiquidCrystal-Bibliothek den Prozess der Ansteuerung eines LCDs für Sie, sodass Sie die Low-Level-Anweisungen nicht kennen müssen. Sie müssen lediglich den Arduino mit dem LCD verbinden und die Funktionen der Bibliothek verwenden. Die Verwendung des LCDs ist ein Kinderspiel.
Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Wie man für LCD programmiert
- Die Bibliothek einbinden:
- Definieren Sie, welcher Arduino-Pin mit den sechs LCD-Pins verbunden ist: RS, EN, D4, D4, D6, D7
Eine der Vorteile der Bibliothek besteht darin, dass der mit dem LCD verbundene Arduino-Pin einstellbar ist. Dies macht es flexibel, wenn Sie Arduino mit LCD und anderen Sensoren/Aktuatoren verbinden.
- Deklariere ein LiquidCrystal-Objekt:
- Stellen Sie die Anzahl der Spalten und Zeilen des LCD ein.
- Bewege den Cursor an die gewünschte Position (Spaltenindex, Zeilenindex)
- Eine Nachricht auf dem LCD ausgeben.
Es gibt noch viele weitere Dinge, die wir mit LCD tun können (siehe Abschnitt 'Do More with LCD').
※ Notiz:
Sie können sechs beliebige Pins des Arduino-Boards verwenden, um eine Verbindung zum LCD herzustellen, solange Sie im Arduino-Code den jeweiligen Pin angeben.
Arduino-Code
Schnelle Schritte
- Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE
- Klicken Sie auf die Schaltfläche Hochladen in der Arduino IDE, um den Code auf den Arduino hochzuladen
- Sehen Sie das Ergebnis auf dem LCD

- Versuchen Sie, Text und Position zu ändern
Video Tutorial
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.
Benutzerdefinierter Charakter
Die Funktion lcd.print() unterstützt nur ASCII-Zeichen. Wenn Sie ein Sonderzeichen oder Symbol anzeigen möchten (z. B. Herz, Angry Bird), müssen Sie den untenstehenden Zeichengenerator verwenden.
LCD 16x2 kann 32 Zeichen darstellen (2 Zeilen und 16 Spalten). Jedes Zeichen besteht aus 40 Pixeln (8 Zeilen und 5 Spalten).

Der Zeichengenerator stellt ein Zeichen dar (40 Pixel). Sie müssen nur die folgenden Schritte ausführen:
Ergebnis auf dem LCD:

Mehrere benutzerdefinierte Zeichen
Wir können bis zu acht benutzerdefinierte Zeichen erstellen (mit Indizes von 0 bis 7). Das folgende Beispiel erstellt und zeigt drei Zeichen.
Ergebnis auf dem LCD:

Zusammenfassung: Wie man ein benutzerdefiniertes Zeichen auf dem LCD verwendet.
- Verwenden Sie den oben genannten Zeichengenerator, um den Binärcode für das benutzerdefinierte Zeichen zu erstellen.
- Geben Sie den Binärcode für das benutzerdefinierte Zeichen an (kopieren Sie ihn aus dem vorherigen Schritt).
- Erstelle ein benutzerdefiniertes Zeichen und weise es einem Indexwert zu (von 0 bis 7) in der setup() Funktion
- Zeige das benutzerdefinierte Zeichen jederzeit und überall auf dem LCD (in der setup() oder loop() Funktion)
Fordere dich selbst heraus
Verwenden Sie ein LCD-Display, um eines der folgenden Projekte durchzuführen:
- Text vom PC senden (über den Serial Monitor) und auf dem LCD anzeigen. Hinweis: Siehe Wie man Daten vom PC zum Aduino sendet
- Die gedrückte Taste des Tastaturfelds auf dem LCD anzeigen. Hinweis: Siehe Arduino - Tastaturfeld