Winstar bietet eine breite Auswahl an standardisierten Character-LCD-Modulen für industrielle und Embedded-Anwendungen. Die verfügbaren Standard-Displaytypen umfassen die Serien WH0802, WH1202, WH1601, WH1602, WH1604, WH2002, WH2004, WH2402 und WH4002. Durch die Ansteuerung mit einer minimalen Anzahl an Steuerpins lässt sich das Display einfach integrieren und die Auswahl eines geeigneten MCU wird erleichtert.
Bei herkömmlichen Character-LCD-Modulen auf dem Markt wird häufig eine zusätzliche Konverterplatine zur Unterstützung der I2C-Schnittstelle eingesetzt, wie in Abbildung 1 dargestellt. Diese Lösung führt jedoch zu einer größeren LCM-Bauhöhe, zusätzlichen Fertigungsschritten und einer geringeren Produktionsausbeute.
Abbildung 1: Herkömmliches Character-LCD-Modul mit zusätzlicher Konverterplatine zur Unterstützung der I2C-Schnittstelle.
Abbildung 2: Das WH1602 Character-LCD-Modul von Winstar unterstützt I2C- und SPI-Schnittstellen ohne zusätzliche Konverterplatine.
Ohne zusätzliche Konverterplatine muss lediglich die Entwicklungsplatine Arduino Uno angeschlossen werden, um die folgenden Character-LCD-Module von Winstar direkt über verschiedene Kommunikationsschnittstellen anzusteuern.
- WINSTAR WH1602 LCM: 16 Zeichen × 2 Zeilen
- WINSTAR WH2002 LCM: 20 Zeichen × 2 Zeilen
- WINSTAR WH2004 LCM: 20 Zeichen × 4 Zeilen
Diese drei LCM-Serien verfügen über den integrierten LCD-Controller RW1063 und unterstützen sowohl serielle Schnittstellen (I2C und SPI) als auch die parallele Schnittstelle (6800).
Hinweis: Weitere Informationen zu Display-Schnittstellen finden Sie unter "Grundlagen der Display-Schnittstellen".
LCM-Pinbelegung
| Pin-Nr. |
Symbol |
Beschreibung |
| No.1 |
Vss |
Masse |
| No.2 |
Vdd |
Versorgungsspannung für die Logik |
| No.3 |
V0 |
Kontrasteinstellung |
| No.4 |
RS |
Auswahl von Befehl/Daten |
| No.5 |
RW |
Lese-/Schreibauswahlsignal nur für 6800 8/4-Bit-Schnittstelle |
| No.6 |
E |
Enable-Signal nur für 6800 8/4-Bit-Schnittstelle |
| No.7 |
DB0/SA0 |
Datenbusleitung 0 nur für 6800 8-Bit-Schnittstelle
SA0 Adress-Einstellleitung für I2C-Schnittstelle |
| No.8 |
DB1/SA1 |
Datenbusleitung 1 nur für 6800 8-Bit-Schnittstelle
SA1 Adress-Einstellleitung für I2C-Schnittstelle |
| No.9 |
DB2 |
Datenbusleitung 2 nur für 6800 8-Bit-Schnittstelle |
| No.10 |
DB3 |
Datenbusleitung 3 nur für 6800 8-Bit-Schnittstelle |
| No.11 |
DB4 |
Datenbusleitung 4 nur für 6800 8/4-Bit-Schnittstelle |
| No.12 |
DB5/CSB/CSB |
Datenbusleitung 5 nur für 6800 8/4-Bit-Schnittstelle
CSB Enable-Auswahlsignal für I2C- und SPI-Schnittstelle |
| No.13 |
DB6/SDA/SCLK |
Datenbusleitung 6 nur für 6800 8/4-Bit-Schnittstelle
SDA-Datenleitung für I2C-Schnittstelle
SCLK-Taktsignal für SPI-Schnittstelle |
| No.14 |
DB7/SCL/SID |
Datenbusleitung 7 nur für 6800 8/4-Bit-Schnittstelle
SCL-Taktleitung für I2C-Schnittstelle
SID-Datenleitung für SPI-Schnittstelle |
| No.15 |
A+ |
Versorgung für Hintergrundbeleuchtung (B/L) + |
| No.16 |
K- |
Versorgung für Hintergrundbeleuchtung (B/L) - |
Tabelle 1:LCM-Pinbelegung
Für den in der obigen Tabelle angegebenen V0-Anschluss wird ein 20-kΩ-Potentiometer zur Einstellung des Zeichenkontrasts verwendet. Falls während des Tests keine Zeichen sichtbar sind oder weiterhin nur das Hintergrundbild angezeigt wird, kann der Kontrast durch Drehen des Potentiometers angepasst werden.
Die Anschlussmethode des V0-Potentiometers ist in Abbildung 3 dargestellt:
Abbildung 3:Anschlussmethode des V0-Potentiometers
Anschluss des LCM an die Entwicklungsplatine Arduino Uno
Abbildung 4 zeigt die Anschlussmethoden der vier LCM-Kommunikationsschnittstellen (I2C, SPI, 6800 8-Bit/4-Bit) an Arduino Uno. Dabei ist zu erkennen, dass die I2C- und SPI-Schnittstellen nur eine geringe Anzahl an GPIO-Pins benötigen, um Character-LCD-Module anzusteuern.
Bei der I2C-Schnittstelle verfügt Arduino Uno über interne Pull-up-Widerstände an den I2C-Pins, sodass keine zusätzlichen Pull-up-Widerstände an den SDA- und SCL-Pins erforderlich sind. Wird der interne Pull-up-Widerstand im Programm deaktiviert, muss ein externer Pull-up-Widerstand angeschlossen werden.
(a) Anschluss der I2C-Schnittstelle

(b) Anschluss der SPI-Schnittstelle

(c) Anschluss der 6800-4-Bit-Schnittstelle

(d) Anschluss der 6800-8-Bit-Schnittstelle

Abbildung 4: Anschlussmethoden der vier LCM-Kommunikationsschnittstellen an Arduino Uno.
LCM-Befehle
Nicht jede Kommunikationsschnittstelle unterstützt den vollständigen Befehlssatz des LCM. Bei der SPI-Schnittstelle sind keine RW-Steuerleitung und keine MISO-Pins vorhanden, daher wird der Lesebefehl nicht unterstützt. Beim Schreiben bestimmt die RS-Steuerleitung, ob Befehlsdaten oder Anzeigedaten übertragen werden.
Auch bei der I2C-Schnittstelle ist keine RW-Steuerleitung vorhanden, daher werden Lesebefehle ebenfalls nicht unterstützt. Vor dem Schreiben von Befehlsdaten oder Anzeigedaten muss zunächst der Befehlssteuercode (A0=0) oder der Datensteuercode (A0=1) übertragen werden, um festzulegen, ob das nächste gesendete Byte Befehlsdaten oder Anzeigedaten enthält.
Timing der SPI- und I2C-Schnittstellen
Die Abbildungen 5 und 6 zeigen die Timing-Diagramme zur Steuerung des LCM über die SPI-Schnittstelle. Dabei ist zu erkennen, dass die vom LCM verwendete SPI-Schnittstelle nicht der typischen SPI-Schnittstelle entspricht, die üblicherweise von einem MCU bereitgestellt wird. Es ist ein zusätzliches RS-Signal erforderlich, um zu bestimmen, ob das aktuell übertragene Byte ein Befehl oder ein Datenwert ist. Die Bitdaten (BIT7~BIT0) auf der Datenleitung (SID) ändern sich, wenn sich die Taktleitung (SCLK) auf Low-Pegel befindet. Die Bitdaten (BIT7~BIT0) werden erfasst, wenn sich die Taktleitung (SCLK) auf High-Pegel befindet.

Abbildung 5:Timing der SPI-Befehlsübertragung

Abbildung 6:Timing der SPI-Datenübertragung
Die Abbildungen 7 und 8 zeigen die Timing-Diagramme zur Steuerung des LCM über die I2C-Schnittstelle. Abgesehen vom Chip-Select-Signal (CSB) erfolgt die I2C-Steuerung durch die Übertragung von jeweils drei Bytes, um Befehlsdaten oder Anzeigedaten zu schreiben. Dabei bestimmt das A0-Bit des zweiten Bytes, ob das dritte Byte Befehlsdaten oder Anzeigedaten enthält.

Abbildung 7:Timing der I2C-Befehlsübertragung

Abbildung 8:Timing der I2C-Datenübertragung
Code
Durch Anpassung der Programmeinstellungen kann der Code für das LCM direkt kompiliert und verwendet werden.
Step1: Festlegen der maximalen Anzahl an Zeichen pro Zeile des LCM.
Beispielsweise wird mit der folgenden Einstellung eine maximale Anzahl von 16 Zeichen pro Zeile definiert.

Step2: Festlegen der maximalen Anzahl an Zeilen des LCM.
Beispielsweise wird mit der folgenden Einstellung das LCM auf 2 Zeilen konfiguriert.

Step3: Festlegen der LCM-Schnittstelle.
Beispielsweise wird mit der folgenden Einstellung die I2C-Schnittstelle ausgewählt.

Step4: Kompilieren Sie das Programm und laden Sie es auf die Arduino Uno Entwicklungsplatine.
Abbildung 9 zeigt eine schematische Darstellung der Anzeigen von drei LCMs.
Wenn der Displaykontrast zu hell oder zu dunkel ist, kann der am V0-Pin angeschlossene variable Widerstand entsprechend angepasst werden, um den optimalen Kontrast einzustellen, wie in Abbildung 10 dargestellt.
(a) Heller Kontrast
Nur schwach sichtbare Zeichen sind erkennbar. |
(b) Optimaler Kontrast |
(c) Dunkler Kontrast
Jedes Zeichen weist einen deutlichen Schatten auf. |
 |
 |
 |
 |
 |
 |
 |
 |
 |
| Abbildung 9:Schematische Darstellung der Anzeigen von drei LCMs |

Abbildung 10:Einstellbarer V0-Pin
Wenn Sie den vollständigen Demo-Code benötigen, kontaktieren Sie uns.