Arduino: LCD mit SPLC780D1 Treiber IC (Liquid Crystal Library)
Ich habe einen gute Variante von LCDs mit dem SPLC780D1 Treiber IC gefunden. Der SPLC780D1 ist weitgehend kompatibel zum HD44780, hat aber einen erweiterten Zeichensatz der fast alle europäischen Sprachen abdeckt und somit die bei uns üblichen Sonderzeichen einfach darstellen kann.
Der Zeichensatz des SPLC780D1 LCD
SPLC780D1 LCDs sind in verschiedenen Varainten erhältlich. Für Europäische Sprachen benötigst du den Zeichensatz 003A. Die Displays werden üblicherweise als "European" verkauft. Am Ende dieser Seite findest du einen Link wo diese Displays erhätlich sind. Das SPLC780D1 003A ROM beinhaltet mehr Zeichen als das HD44780 A00 ROM. Insgesamt sind 240 Zeichen definiert:
Dabei enteckt man einige interessante Sachen:
- In Spalte 0x01 finden sich auch mathematische Symbole.
- Die Spalten 0011 - 0111 entsprechen ASCII. Im Unterschied zum üblichen HD44780 sind auch der Backslash (\) und die Tile (~) korrekt verfügbar.
- In den Spalten 0x08 - 0x0A befinden sich Zeichen von Latin-1 und Latin-2 die für "Western European" (ISO/IEC 8859-1), "Scandinavian" und "Southern European" Sprachen benötigt werden.
- In den Spalten 0x0B - 0x0C befinden sich mehr mathematische Symbole.
- In den Spalten 0x0D - 0x0F findet man weitere griechische Buchstaben.
Arduino Library für das SPLC780D1 LCD
Das SPLC780D1 soll mit allen Liquid Crystal Bibliotheken funtionieren. Aber erst meine "Noiasca Liquid Crystal" macht die Verwendung der Sonderzeichen einfach.
Abhängig von der Anschlussart deines Displays musst du nur den entsprechenden Converter für ein SPLC780D1 LCD dem Konstruktor übergeben. Beispielhaft für einen I2C Expander Chip:
LiquidCrystal_I2C lcd(addr, cols, rows, convert_SPLC780D1_003A);
Damit wird die Übersetzungseinheit für Latin-1 (Western European languages) and Latin-2 aktiviert. Damit werden die Sprachen Deutsch, Norwegisch, Schwedisch, Spanisch, Italienisch abgedeckt. Sprachen die Latin-2 benötigen sind gut - aber nicht vollständig unterstützt. Dazu zählen Französisch, Ungarisch, Tschechisch, Slowakisch, Slowenisch, Kroatisch, Polnisch.
Die Library enthält ein Beispiel, das viele der europäischen Sonderzeichen zeigt. Für einige Sprachen (Dänsich, Englisch, Schwedisch) können alle Zeichen dargestellt werden:
Im Deutschen verwenden wir das griechische Beta als Ersatz für das Scharfe-S:
Einige Sprachen verwenden mehr Diaktriische Zeichen (Punkte, Striche, Akut...) als im Zeichensatz verfügar sind. Diese Zeichen werden durch die jeweiligen Standardzeichen ersetzt:
Die Beispiele von Französisch und Italiensich zeigen sehr gut, dass die Kleinbuchstaben besser unterstützt werden als die Großbuchstaben:
And auch wenn gar keine Sonderzeichen verfügbar sind, dann werden zumindest die Standard-Zeichen dargestellt, so wie man es für Polnisch und Slowenisch benötigt:
Übrigens: wenn du Kyrillisch für Russisch, Ukrainisch oder Bulgarisch benötigst, es gibt diese LCDs auch mit der Erweiterung um Kyrillische Zeichen. Meistens werden diese Displays als "Russian" verkauft. Bisher habe ich keine Implementierung für derartige Displays vorgenommen, aber die Bibliothek enthält auch ein Beispiel wie man sich seinen eigenen Converter für derartige Displays programmieren kann.
Zusammenfassung
Das SPLC780D1 LCD ist derzeit DIE Lösung wenn du möglichst viele europäische Sonderzeichen auf einem LCD darstellen möchtest. Das SPLC780D1 unterstützt den Latin-1 und Latin-2 Zeichensatz sowie einige Zeichen aus Latin-3. Wenn du eine Arduino Library für diese Displays benötigst, emfpehle ich den die "Noiasca Liquid Crystal" mit dem entsprechenden Konverter für die SPLC780D1 chips