HD44780 LCD’s

So beliebt diese Displays auch sind- sie haben ihre Tücken!
Ich selbst verzweifel in regelmäßigen Abständen an HD44780 und Konsorten. Damit das nicht so bleibt, dokumentiere ich jetzt mal die erfolgreiche Inbetriebname – und lasse euch daran teilhaben.

1) Datenblatt eines beliebigen (idealerweise aber des vorhandenen) HD44780-Displays herunterladen und die Pin-Belegung vergleichen.

2) Display an die Spannungsversorgung (5V) hängen und Kontrastpin suchen. Oft wird nun beschrieben, dass man ein Poti anschließen soll – bei mir hat sich aber ein 1-KOhm-Widerstand gegen Masse als Alternative bewehrt.
Es sollte jetzt in mindestens einer Zeile ein schwarzer Balken zu sehen sein. Dieser eignet sich ideal um den Kontrast einzustellen – er sollte so eingestellt werden, dass die Balken gerade so schwarz sind.

3) Display an einen Mikrocontroller der Wahl anschließen (bei mir war es zum testen ein Arduino). Im 4-Bit-Modus bleiben die Pins D0..D3 unbeschaltet (nicht zwangsläufig gegen Masse) – nur D4..D7 werden genutzt. Falls eine Pin-Beschreibung auf dem Display aufgedruckt ist und an einer Stelle D0..D7 steht, dann sind D4..D7 rechts (war bei mir zumindest so).
Die Hintergrundbeleuchtung darf nicht direkt per Controller gesteuert werden sondern muss über einen Transistor benutzt werden – außerdem darf man daran keine 5V anschließen (siehe Datenblatt), da dann der Strom zu groß wird.

Am besten jetzt eine LCD-Bibliothek benutzen oder ein Beispielprogramm suchen – wenn auf dem Display nach dem Programmstart die Balken verschwinden ist das schon einmal ein gutes Zeichen.

4) Entscheiden, ob man eine LCD-Bibliothek nutzen will und wenn ja, welche:
Es gibt solche Bibliotheken, die wie die AVR-LCD-Bibliothek von Peter Fleury den RW-Pin des Displays benutzen um zu erkennen, ob das Display bereit ist neue Daten/Befehle zu empfangen – und es gibt Bibliotheken die ein fest eingebautes Timing haben und den RW-Pin (der in dem Fall auf Masse gelötet wird) nicht nutzen.
Falls es nicht funktioniert kann man nun entweder wild herumprobieren und die Timings verändern oder sich etwas eigenes bauen:
In dem Fall sind die Dokumentation von sprut und der Online-Simulator hier deine Freunde.
Man sollte zunächst prüfen, ob man die Initialisierung im Simulator hinbekommt. Danach kann man sich an die eigene Implementierung machen und sollte am Anfang nicht zu sparsam mit den Wartezeiten nach dem EN-Pin-Togglen umgehen. Beim Implementieren kann man sein Wissen über Bitmanipulationen wieder auffrischen.

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s