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 .

Wir freuen uns auf die Zusammenarbeit mit Ihnen!