Arduino und das LCD Display

So steuert man ein LCD Display mit Arduino

Ein LCD Display, oder auch Liquid Crystal Display, basiert auf so genannten Flüssigkristallen, die beim Anlegen einer elektrischen Spannung ihre Polarisationsrichtung ändern. Sie werden undurchsichtig.

Natürlich steht das D in LCD für Display, aber die Leute nennen es trotzdem LCD Display und das mache ich hier auch so. Ich hoffe, es stört nicht allzu sehr.

Im LCD Display sind diese Flüssigkristalle in Segmenten angeordnet und können unabhängig von einander die Transparenz ändern. Sie finden z. B. Anwendung in digitalen Armbanduhren, Drucker-Displays, Thermometern oder im Auto.

LCD Displays gibt es in unterschiedlichen Formen und mit allen möglichen unterschiedlichen Segmentanordnungen, z. B. als Pixelraster.

Im Arduino-Bereich sind mehrzeilige alphanumerische LCD Displays mit 16 Pin Connector beliebt. Sie basieren oft auf dem HD44780 Chip von Hitachi und werden mit der Arduino-Library LiquidCrystal angesprochen. Sie sind relativ einfach anzuschließen und leicht zu programmieren.

Arduino Liquid Crystal Display (LCD)
Arduino Liquid Crystal Display (LCD) – Schaltung mit Fritzing erzeugt

Solch ein LCD Display kann im 4 oder 8 Bit Modus angesprochen werden. Im 4 Bit Modus benötigt man 4, im 8 Bit Modus 8 Datenkabel aus eben so vielen digitalen Pins des Arduino-Boards. Es wird wie im Schaltbild gezeigt angeschlossen.

Je nach Display-Typ gibt es einen Anschluss für die Hintergrundbeleuchtung und ein Potentiometer, um den Anzeigekontrast zu regeln.

LCD Display Programm-Code

Im Programm wird zunächst die Library ,die übrigens mit der Arduino-Software geliefert wird, eingebunden:

#include <LiquidCrystal.h>

Nun wird das LiquidCrystal-Objekt mit dem Namen lcd angelegt. Die digitalen Output-Pins, die man verwendet hat, werden als Parameter angegeben:

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

Im Setup wird die Displaykonfiguration übergeben. Die beiden Parameter stehen für die Zeichenanzahl einer Zeile und die Zeilenanzahl. In diesem Beispiel 16 Zeichen und 2 Zeilen:

lcd.begin(16, 2);

Mit print lassen sich Nachrichten auf das Display schreiben.

lcd.print("hello, world!");

Will man etwas an eine bestimmt Position schreiben, muss man erst den Cursor verschieben. Hier auf das erste Zeichen der zweiten Zeile (es wird ab der 0 gezählt). Im Beispiel werden die aktuellen Millisekunden/1000 ausgegeben. Es sind also Sekunden seit Einschalten.:

lcd.setCursor(0, 1);
lcd.print(millis() / 1000);

Der gesamte Code des Arduino-Beispiels (von D. Mellis und T. Igoe), dass unter Datei>Beispiele>LiquidCrystal>HelloWorld zu finden ist, sieht dann so aus:

#include <LiquidCrystal.h>

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  lcd.begin(16, 2);
  lcd.print("hello, world!");
}

void loop() {
  lcd.setCursor(0, 1);
  lcd.print(millis() / 1000);
}

LCD Display mit I2C Ansteuerung

LCD Display mit Arduino und I2C

Bleibt noch zu erwähnen, dass es auch andere Displays gibt, die mit wesentlich weniger Pins auskommen. Sie verfügen über einen zusätzlichen Controller und lassen sich einfach per I2C Schnittstelle vom Arduino aus steuern. (Bei I2C handelt es sich um eine Datenverbindung, die Steuersignale zwischen verschiedenen elektronischen Komponenten ermöglicht.)

Link zum Produkt mit I2C Schnittstelle*

Produktlinks

Zwei-Zeilen-Display 20×2, blau/weiß*
Vier-Zeilen-Display 20×4, blau/weiß I2C*
Display-Arduino-Shield mit Navigationstasten*


Wenn dir das Projekt gefallen hat und du von weiteren interessanten Projekten inspiriert werden willst, sieh dir doch mal mein neues E-Book »Arduino Projekte Volume 1« an!

  • Die beliebtesten Arduino-Projekte von StartHardware
  • Inklusive Schaltplan, Beschreibung und Code
  • Arduino-Schnellstart-Kapitel
  • Kompakter Programmierkurs