Arduino LCD Display anschließen – Tutorial mit Code & Schaltplan

Heute zeige ich dir, wie du ein LCD-Display an deinen Arduino anschließt und Texte sowie dynamische Inhalte darauf anzeigen lässt. LCD-Displays gehören zu den wichtigsten Ausgabegeräten für Arduino-Projekte und ermöglichen die Anzeige von Sensordaten, Statusmeldungen und Benutzerinformationen. Ich nutze in diesem Tutorial HD44780-basierte Displays – der absolute Standard für Arduino LCD Display Projekte. Nach diesem Tutorial kannst du Texte anzeigen und die Anzeige dynamisch aktualisieren.

Diese Bauteile brauchst du

Was ist ein HD44780-Display?

Das HD44780 ist der Industriestandard für zeichenbasierte LCD-Displays. Du findest diese Displays in verschiedenen Größen, am häufigsten sind 16×2 und 20×4 Zeichen. Der integrierte Controller übernimmt die komplette Ansteuerung für dich, sodass du dich nur um die Inhalte kümmern musst. Das Display hat 16 Pins für Stromversorgung, Daten und Steuerung.


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


Pin-Belegung des LCD-Displays

Ich erkläre dir kurz die wichtigsten Pins:

  • VSS: Ground (GND)
  • VDD: Stromversorgung (+5V)
  • V0: Kontrasteinstellung (hier schließt du das Potentiometer an)
  • RS: Register Select (Steuerpin)
  • RW: Read/Write (legst du meist auf GND)
  • E: Enable (Steuerpin)
  • D0-D3: Datenpins (im 4-Bit-Modus nicht benötigt)
  • D4-D7: Datenpins (Hauptverbindung)
  • A: Hintergrundbeleuchtung (+5V)
  • K: Hintergrundbeleuchtung (GND)

4-Bit vs. 8-Bit Modus

Ich nutze in diesem Tutorial den 4-Bit-Modus, bei dem du nur die Pins D4-D7 verwendest. Das spart dir 4 Arduino-Pins ein. Die Performance-Einbuße ist minimal und für die meisten Projekte völlig ausreichend.

Verkabelung Schritt für Schritt

Jetzt zeige ich dir, wie du das Arduino LCD Display richtig verkabelst.

Stromversorgung

  • LCD VSS → Arduino GND
  • LCD VDD → Arduino 5V
  • LCD A (Backlight) → Arduino 5V
  • LCD K (Backlight) → Arduino GND

Kontrasteinstellung

  • Potentiometer: linker Pin → 5V
  • Potentiometer: mittlerer Pin → LCD V0
  • Potentiometer: rechter Pin → GND

Steuerpins

  • LCD RS → Arduino Pin 12
  • LCD RW → Arduino GND (ich schreibe nur auf das Display, kein Lesen erforderlich)
  • LCD E → Arduino Pin 11

Datenpins

  • LCD D4 → Arduino Pin 5
  • LCD D5 → Arduino Pin 4
  • LCD D6 → Arduino Pin 3
  • LCD D7 → Arduino Pin 2
Arduino LCD Display Schaltplan Verkabelung HD44780

Wichtige Hinweise:

  • Achte unbedingt auf die korrekte Polung bei der Stromversorgung
  • Das Potentiometer ist essentiell – ohne korrekte Einstellung siehst du möglicherweise nichts auf dem Display
  • Den RW-Pin legst du auf GND, da ich dir hier nur das Schreiben zeige

Der Code für dein Arduino LCD Display

Jetzt kommt der spannende Teil – ich zeige dir, wie du das Display programmierst.

Bibliothek einbinden

Die LiquidCrystal-Bibliothek ist standardmäßig in der Arduino IDE enthalten. Du bindest sie so ein:

#include <LiquidCrystal.h>

LCD-Objekt initialisieren

Definiere die verwendeten Pins:

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

Display konfigurieren

Gib die Größe deines Displays an (16 Spalten, 2 Zeilen):

lcd.begin(16, 2);

Text ausgeben

So gibst du einen einfachen Text aus:

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

Cursor positionieren

Setze den Cursor in die zweite Zeile (Index 0, 1) und gib dynamische Werte aus:

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

Vollständiger Beispielcode

Hier ist der komplette Code, den du einfach kopieren kannst:

#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);
}

Code-Erklärung

  • setup(): Hier initialisiere ich das Display und zeige „hello, world!“ in der ersten Zeile an
  • loop(): Diese Funktion aktualisiert kontinuierlich die zweite Zeile mit der verstrichenen Zeit in Sekunden
  • millis() / 1000: Konvertiert Millisekunden in Sekunden

Weitere nützliche Befehle

Ich zeige dir noch ein paar praktische Befehle, die du kennen solltest:

  • lcd.clear(): Löscht das Display komplett
  • lcd.home(): Setzt den Cursor auf Position (0,0)
  • lcd.setCursor(spalte, zeile): Positioniert den Cursor
  • lcd.noDisplay() / lcd.display(): Schaltet die Anzeige aus/an
  • lcd.cursor() / lcd.noCursor(): Zeigt/versteckt den Cursor

Troubleshooting – Wenn etwas nicht funktioniert

Display zeigt nichts:

  • Prüfe die Potentiometer-Einstellung und drehe langsam am Regler
  • Kontrolliere die Stromversorgung (VSS und VDD)

Unleserliche Zeichen:

  • Du hast wahrscheinlich die Datenpins falsch verkabelt
  • Überprüfe die Verbindungen D4-D7

Nur erste Zeile funktioniert:

  • Überprüfe die Displaygröße in lcd.begin() – passt die Angabe zu deinem Display?

Fazit

Du hast jetzt gelernt, wie du ein HD44780-LCD-Display im 4-Bit-Modus an deinen Arduino anschließt. Die LiquidCrystal-Bibliothek macht die Ansteuerung wirklich einfach. Mit nur wenigen Befehlen kannst du statische und dynamische Inhalte anzeigen. Das Display ist perfekt für alle Projekte, bei denen du Informationen ausgeben möchtest.

Nächste Schritte

Ich empfehle dir, jetzt mit verschiedenen Textpositionen und Formatierungen zu experimentieren. Kombiniere das Display mit Sensoren wie Temperatur- oder Abstandssensoren. Du kannst auch ein Menüsystem mit mehreren Seiten erstellen. Wenn du noch weniger Kabel möchtest, teste ein I2C-LCD-Display – damit brauchst du nur 2 Datenpins!

Viel Erfolg mit deinem LCD-Display-Projekt!


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


2 3 votes
Article Rating
8 Comments
Newest
Oldest Most Voted
Inline Feedbacks
Alle Kommentare anzeigen
5 Monate zuvor

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

pascal
8 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

11 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
12 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.

Datenschutz
Stefan Hermann, Inhaber: Stefan Hermann (Firmensitz: Deutschland), würde gerne mit externen Diensten personenbezogene Daten verarbeiten. Dies ist für die Nutzung der Website nicht notwendig, ermöglicht aber eine noch engere Interaktion mit Ihnen. Falls gewünscht, treffen Sie bitte eine Auswahl:
Datenschutz
Stefan Hermann, Inhaber: Stefan Hermann (Firmensitz: Deutschland), würde gerne mit externen Diensten personenbezogene Daten verarbeiten. Dies ist für die Nutzung der Website nicht notwendig, ermöglicht aber eine noch engere Interaktion mit Ihnen. Falls gewünscht, treffen Sie bitte eine Auswahl: