Zum Inhalt springen
Arduino und das LCD Display

So steuert man ein LCD-Display mit Arduino

Ein LCD-Display, oder auch Liquid Crystal Display, basiert auf sogenannten 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 voneinander 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.


Sieh dir jetzt meinen neuen Arduino-Videokurs an: Jetzt ansehen!


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 ebenso 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 bestimmte 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


1 1 vote
Article Rating
8 Comments
Newest
Oldest Most Voted
Inline Feedbacks
Alle Kommentare anzeigen
6 Tage zuvor

[…] Einsatz von LCD-Displays statt LEDs […]

pascal
7 Jahre zuvor

Hallo Stefan,
Ich habe ein Problem: Wenn ich den Sketch hochlade, kommen auf dem Display irgendwelche komischen Zeichen. Danke schon mal für die Hilfe.

8 Jahre zuvor

hilft mir die als anfänger

10 Jahre zuvor

Each new age brought the criminal element forward with
it. Today, lots of websites and blogs bring
in unheard of income for their owners merely by promoting
another’s company on their web pages. To report stolen email addresses
at Yahoo, click Yahoo.

Steven
11 Jahre zuvor

Hallo, ich bin ebenfalls blutiger Anfänger und auch noch Elektronik-Trottel.. :(
Ich habe im Netz eine ähnliche Schaltung gefunden, da war an Pin 15 und 16 zusätzlich noch einmal 5V und GND.. ist das notwendig?
Danke und viele Grüße
Steven

Bernte
11 Jahre zuvor

Hallo Stefan,
danke für das Tutorial. Ich fang grad mit Arduino daher sehr hilfreich wenn bestimmte Befehle auch ausreichend erklärt werden.
Mach bitte weiter so
Gruß

Nico
11 Jahre zuvor

Im Programmcode des finalen Programms fehlt eine Zeilenschaltung, nachdem man die Library importiert. In der ersten Zeile der Tutorial Erklärung ist es im Code auch falsch.

LG
Nico ;)

Antworte an  Nico
11 Jahre zuvor

@Nico: Ja, stimmt. Danke für den Hinweis. Alles geändert.