budo's Web
Hier findet ihr einiges zu meinen Hobbies

LCD-Displays

Nachdem ich gerade mal wieder ein LCD-Display zum Laufen gebracht habe, will ich hier meine LCD-Display Themen zusammen fassen. Eine gute Übersicht über Pollin LCD-Display, die ich häufig verwende, da sie preisgünstig sind, gibt es inkl. Pin-Belegungen bei Spurtikus. Die preisgünstigen Pollin-LCDs haben natürlich auch ihren "Preis", da man hier immer mit Problemen rechnen kann.

LCD-Displays lassen sich in die Kategorien Textdisplays (z.B. 2 Zeilen mit 16 Zeichen) und Grafikdisplays (z.B. 140 x 32 Pixel) unterteilen. Für die Software ist relevant welcher Display-Controller verbaut wurde. Für die Hardware ist entscheidend, welche Hintergrundbeleuchtung das Display beinhaltet. LED Hintergrundbeleuchtungen sind problemlos, allerdings muss bei einigen Displays die Spannung separat erzeugt werden. EL (Elektrolumineszenz-) Hintergrundbeleuchtungen benötigen einen sogenannten EL Inverter, da EL Hintergrundbeleuchtungen eine hohe Wechselspannung benötigen.

Im nachfolgenden ein paar Hinweise / Erläuterungen zu den von mir verwendeten LCD-Displays.

Pollin TC1602A

Das Pollin TC1602A ist ein 16 x 2 Textdisplay mit HD44780 kompatiblem Controller. Für HD44780 kompatible Coontroller kann direkt die Arduino Library LiquidCrystal verwendet werden. Der Controller unterstützt einen 4bit und 8 bit Mode, so dass mit den üblichen 3 Steuerleitungen und der Steuerung der Hintergrundbeleuchtung 8 oder 12 bit Daten erforderlich sind. Ich benutze hierzu generell einen I2C Remote I/O Expander PCF8574 oder PCF8574A (Unterschied in der Adresse !), so dass ich mit 2 Datenleitungen auskomme, die man auch für andere I2C Komponenten nutzen kann. Verwendet wird dann die LiquidCrystal_I2C Library.

lcd

Stromlaufplan für Standard HH44780 kompatible LCD-Displays für I2C Ansteuerung

lcd

TC1602A auf einem I2C Konverterboard (Lochrasterplatte)

DFRobot LCD-Shield

Das DFRobot LCD-Shield kann direkt auf einen Arduino aufgesetzt werden und beinhaltet zusätzlich ein paar Taster. Das Shield beinhaltet das LCD TC1602A, jedoch keinen I2C-Wandler.

lcd

DFRobot LCD-Shield auf einem I2C Konverterboard (Lochrasterplatte)

Pollin TC1604A

Das Pollin TC1604A ist der große Bruder des TC1602A als 16 x 4 Textdisplay mit HD44780 kompatiblem Controller. Überraschender Weise hat das Display aber eine fehlerhafte Anzeige gehabt, so dass ich mich näher mit dem Display beschäftigen musste. Beschreibt man das Display normal, d.h. zuerst die Positionierung auf den jeweiligen Zeilenanfang und dann die Ausgabe der Zeile, dann werden in Zeile 3 und 4 die ersten 4 Zeichen der Zeile nicht beschrieben. D.h. die Zeichen werden nicht in den richtigen Speicherbereich des Displays geschrieben. Den Speicherbereich testet man am besten mit der Ausgabe eines langen Strings, ab der Anfangsposition für die 1. Zeile. Der String sollte dabei lauter unterschiedliche Zeichen beinhalten, damit man bewerten kann, welches Zeichen an welcher Stelle dargestellt wird und welches Zeichen nicht auf dem Display erscheint. Im Falle des TC1604A wurden die ersten 16 Zeichen in die 1. Zeile geschrieben, die nächsten Zeichen wurden in der 3. Zeile ab der 5. Position geschrieben. Die Anzeige für die 2. und 4. Zeile war analog. Einige Zeichen wurden nicht dargestellt.

Ein Blick in die Library löste das Problem ziemlich rasch. In der Funktion "setCursor" wird ein Array verwendet, das die Speicherbereichs-Startadressen der einzelnen Zeilen beinhaltet. Die verwendeten Offsetwerte waren "int row_offsets[] = { 0x00, 0x40, 0x14, 0x54 };". Eine Korrektur der Offsetwerte auf "int row_offsets[] = { 0x00, 0x40, 0x10, 0x50 };" löste das Problem. D.h., die 1. Zeile beginnt bei 0x00, die 2. Zeile bei 0x40, die 3. Zeile bei 0x10 und die 4. Zeile bei 0x50. Das heißt wiederum, dass die Reihenfolge im Speicher nicht zur Reihenfolge der Displayzeilen selber passen muss. Die Speicherzellen 0x20 .. 0x3F und sind wahrscheinlich frei und können als Speicher für Sonderzeichen etc. verwendet werden. Ein HD44780 Controller hat einen Speicherbereich von 0x00 .. 0x4F, d.h. für 80 Zeichen und die 2. Zeile beginnt bei 0x40.

Pollin DG-12234

Das DG-12232 von Pollin ist ein Grafikdisplay mit 122x32 Pixel, mit SED1520 Controller, ohne internen Zeichensatz. Die EL- (Elektrolumineszenz-) Hintergrundbeleuchtung erfordert eine Wechselspannung von etwa 100VAC. Diese wird über einen so genannten EL-Inverter erzeugt. Zusätzlich benötigt das Display eine negative Spannung für das LCD, die über eine Ladepumpe erzeugt wird. Die Anpassung der Spannung erfolgt durch den nachgeschalteten Widerstand. Die Ansteuerung des Displays erfolgt über 2 SED1520 für die linke und rechte Display-Hälfte. Zusätzlich benötigt das Display einen 2 kHz Takt, der über einen NE555 erzeugt wird, aber auch direkt durch den Arduino erzeugt werden könnte.

lcd

LCD DG-12232 Verdrahtung mit Taktgenerator und Ladepumpe

lcd

LCD DG-12232 grafische Anzeige

lcd

LCD DG-12232 gemischte Anzeige, Text & Grafik

Bei der Software wurde die c-Library von en.radzio.dxp.pl verwendet. Die Library wurde etwas zur Verwendung in Arduino angepasst und 2 Fehler korrigiert. Ein Demo-Programm von Redlabs zeigt die Anwendung von Text und Grafik. Mit einem Zeichensatz von 5x7 Punkten lassen sich Texte in 4 Zeilen mit je 20 Zeichen darstellen.

Pollin DG 14032

Das DG-14032 von Pollin ist ein Grafikdisplay mit 140x32 Pixel, mit ST7920 Controller, und internem chinesischen und alphanumerischen Zeichensatz. Das Display kann im Mixed-Mode Grafik und Text kombinieren. Im Textmode ist die Anzeige 2x20 Zeichen. Die LED-Hintergrundbeleuchtung erfordert eine Spannung von 5.7 Volt, und kann somit nicht direkt von der Versorgungsspannung abgeleitet werden.

Die Tests mit DG-14032 auf Basis LiquidCrystal und auch auf Basis von GDLC verliefen alle negativ. Da das Display in keinster Weise auf die Kontrastspannung reagiert, gehe ich davon aus dass das Display leider kaputt ist. Dies hat sich bestätigt, da das eigentliche Display bei einer Demontage auf Berührungen reagiert hat. D.h., entweder ist die Ansteuerungsplatine defekt oder die elektrische Verbindung zum Display über Leitgummi funktioniert nicht.

Das DG-14032 ist leider nicht mehr lieferbar.

Bilder


Nach Oben