Arduino und LCD-Display
HD44780-Treiber
1. Anzeige
LCD-Display mit HD44780 -Treiber ist eines der beliebtesten Geräte dieser Art. Seine Hauptvorteile sind: niedriger Preis, hohe Verfügbarkeit und einfache Bedienung. Das Layout ist in mehreren Versionen zu finden. Sie unterscheiden sich voneinander: die Farben der Hintergrundbeleuchtung und der Zeichen sowie die Abmessungen, d. H. Die maximale Anzahl der gleichzeitig angezeigten Zeichen.
Folgende Displays sind in unserem Shop erhältlich:
16x2 - 16 Spalten und 2 Zeilen (32 Zeichen)
8x2 - 8 Spalten und 2 Zeilen (16 Zeichen)
20x4 - 20 Spalten und 4 Zeilen (80 Zeichen)
2. HD44780 - Steuerung
Die gebräuchlichsten Displays haben sechzehn Pins. Stromversorgung (VDD, VSS) , Kontrasteinstellpin (V0), drei Steuerleitungen (RS, R/W, ENABLE), acht Datenbusleitungen (D0 ... D7) und eine separate Backlight-Versorgung (LEDA+, LEDK- ).
Die Abbildung zeigt die Abmessungen und Ausgänge des 16x2 LCD-Displays .
Nein | Name | Beschreibung |
---|---|---|
1 | VSS | Masse |
2 | VDD | Stromversorgung (+ 5V) |
3 | V0 | Kontrast |
4 | RS | Anzeigebefehlsregister (niedrig) oder Datenregister (hoch) auswählen |
5 | R/W | Lesen (niedrig) / Schreiben (hoch). Im Modus ohne Lesen des Busy-Flags kann der Ausgang mit Masse verbunden werden. |
6 | E. | Bei einer fallenden Flanke ist das Display bereit, Daten vom Bus auszulesen. |
7 | DB0 | Datenbus. Auf diesen Leitungen werden Daten und Anweisungen für die Anzeige gesendet. |
8 | DB1 | |
9 | DB2 | |
10 | DB3 | |
11 | DB4 | |
12 | DB5 | |
13 | DB6 | |
14 | DB7 | |
15 | LEDA | Stromversorgung der Hintergrundbeleuchtung. |
16 | LEDK | Hintergrundbeleuchtung Masse |
Für den Betrieb des Displays werden vier Datenleitungen verwendet: D4 D5, D6, D7 und die Ausgänge: E, RS. Der R / W wird mit Masse verbunden. Weitere Informationen zu den Steuermodi finden Sie in der Displaybeschreibung .
Dank der LiquidCrystal- Bibliothek läuft der Betrieb des Displays mit Arduino auf die folgenden Schritte hinaus:
- Initialisierung - Dazu wird die LiquidCrystal- Methode ( rs, rw, enable, d4, d5, d6, d7) verwendet, die Nummern der einzelnen Ausgänge sind in Klammern angegeben. Zum Beispiel:
LiquidCrystal-LCD (12, 11, 10, 5, 4, 3, 2); // Pin RS - verbunden mit Digitalausgang 12, R/W-11 etc.) lcd.begin (16, 2); // Anzeigetyp einstellen, in diesem Fall 16x2
- Bereitstellen von anzuzeigenden Daten:
lcd.setCursor (spaltenweise, Zeile) ; - Angabe der Stelle, ab der die Anzeige der Zeichen beginnen soll. Z.B.lcd.setCursor (0, 1) // Spalte 0, Zeile 1 (Nummerierung beginnt bei Null)
lcd.print (data) - Eingabe einer Zeichenfolge, die in " data " -Tags angezeigt werden soll. Bsp . Forts. print ( "Hallo, Welt!" ) ; - das Display zeigt hallo, Welt!
Eine ausführlichere Beschreibung der Bibliothek und Beispielprogramme finden Sie in der Arduino- Projektdokumentation .
3. Ein Beispiel
Das Programm aus der Dokumentation der Arduino-Bibliothek mit dem Titel Hallo Welt
Beschreibung:
Ein beispielhaftes Programm, um das 16x2-LCD-Display im 4-Bit-Modus zu betreiben, ohne das Busy-Flag zu lesen
Verbindung:
- LCD-RS -Pin mit Digitalausgang Nr. 12 verbunden
- LCD-Freigabe -Pin verbunden mit Digitalausgang 11
- LCD-D4 -Pin mit Digitalausgang Nr . 5 verbunden
- LCD D5 an Digitalausgang Nr . 4 angeschlossen
- LCD D6 an Digitalausgang Nr . 3 angeschlossen
- LCD D7 an Digitalausgang Nr . 2 angeschlossen
- LCD R / W -Pin mit Masse verbunden
- VO (Kontrast) verbunden mit einem Potentiometer . Das Potentiometer kann durch einen Spannungsteiler ersetzt werden. In einigen Fällen ist auch ein Widerstand von mehreren hundert Ohm wirksam, der von V0 nach Masse geschaltet wird.
- LCD LED + Stromversorgung für Hintergrundbeleuchtung (5 V)
- LCD LED - Masse der Hintergrundbeleuchtung
Obwohl einige Displays einen eingebauten Widerstand haben, der den Versorgungsstrom der Hintergrundbeleuchtungsdioden begrenzt, lohnt es sich, einen externen Begrenzer zu verwenden. An dieser Klemme wird die 5V Leitung über einen 200 Ohm Widerstand angeschlossen.
Die Abbildung zeigt die Verbindung des Displays mit dem Arduino Uno -Modul.
Code:
// Verbindungen initialisieren LiquidCrystal-LCD (12, 11, 5, 4, 3, 2); void setup () { // Wählen Sie die Art der Anzeige - 16x2 lcd.begin (16, 2); // Senden, um den String hello, world! lcd.print ("Hallo, Welt!"); } Leere Schleife () { // Bewegen Sie den Cursor in die erste Spalte der zweiten Zeile lcd.setCursor (0, 1) ;? // Lesen und Anzeigen der seit dem letzten Zurücksetzen verstrichenen Zeit in Sekunden lcd.print (millis () / 1000); }
Ebenso sollten Sie bei Geräten mit einer kleineren und größeren Anzahl angezeigter Zeichen vorgehen.
4. Zusammenfassung
Das Display ist ein wichtiges Werkzeug im Kommunikationsprozess zwischen einem elektronischen Gerät und einem Menschen. Nützlich zum Erkennen von Fehlern während des Testens oder Anzeigen von Daten, die vom Mikrocontroller gesammelt wurden. Zusammen mit den Schaltflächen bildet es die Basis der Benutzeroberfläche.
Alphanumerische Module auf Basis des HD44780-Treibers sind extrem einfach zu bedienen. Für den Fall, dass keine Notwendigkeit besteht, Grafiken anzuzeigen, leisten diese Geräte sehr gute Dienste und werden gerne von Bastlern und Profis verwendet.
Die Abbildung zeigt den Anschluss des 16x2 LCD- Displays mittels Kontaktplatte und Verbindungskabeln .