Testbericht Color LCD Shield

Das Color LCD Shield von ElecFreaks ist ein Display Shield für Arduino mit Farbdisplay. Der Arduino-Lieferant Boxtec hat mir freundlicherweise ein LCD Shield zum Test zur Verfügung gestellt. Besten Dank dafür.

Wie der Name sagt, ist das Color LCD Shield eine Erweiterung für Arduino-Boards und wird wie alle Shields direkt auf das Board aufgestellt. Auf der Leiterplatte des Color LCD Shield ist neben dem Display ein Joystick mit Taster und eine Schaltung zur Steuerung der Hintergrundbeleuchtung vorhanden.

Color LCD Shield

Das Display des LCD Shields stammt vom Nokia 6100. Das Handy-Display hat eine Auflösung von 128×128 Pixeln bei 12 Bit Farben (4 Bit rot, 4 Bit grün, 4 Bit blau). Das Display wird mittels SPI-Kommunikation (Serial Peripheral Interface) angesteuert. Auf dem Display wird dazu ein Display-Controller vom Typ PCF8833 von Philips eingesetzt. Der Joystick mit Taster kann über die Analog-Pins A0-A4 als digitale Eingänge (A14-A18) abgefragt und als Bedienelement genutzt werden.

Color LCD Shield

Ansteuerung
Die Ansteuerung über die SPI-Schnittstelle verwendet die digitalen Pins 8 (Reset), 9 (CS), 11 (DIO) und 13 (SCK). Mittels Arduino-Library ist die Ansteuerung des Display recht einfach. Die einzelnen Methoden der Bibliothek sind auf der Download-Seite beschrieben. Für Einsteiger sind die Beschreibungen aber zu wenig detailiert. Zusätzliche Informationen zum Shield findet man im Wiki von ElecFreaks.

Auf dem Nokia-Display des Color LCD Shield wird ein PCF8833 Display Controller verwendet. Der verwendete Controller muss in der Initialisierung des Displays angegeben werden, da die verwendete Library auch Displays mit einem EPSON-Controller ansteuern kann.

Darstellung von Daten
Nach dem Laden der Bibliothek

#include <ColorLCDShield.h>

wird ein Display-Objekt erstellt

LCDShield lcd;

In der Setup-Routine wird anschliessend das Display initialisiert, die Hintergrundbeleuchtung mittels PWM definiert, der Contrast eingestelllt und der Displaytyp angegeben. Nach dem Löschen des Display-Inhaltes kann nun Text oder Graphik auf der Bildschirm dargestellt werden

void setup()
{
  lcd.init(PHILLIPS);
  pinMode(10, OUTPUT);
  analogWrite(10, 1023); //PWM control blacklight
  lcd.contrast(40);
  lcd.clear(BACKGROUND);

  // Darstellung Daten
  // ...
}

Das PWM-Signal für die Hintergrundbeleuchtung wird an Pin10 ausgegeben. Mit einem Wert von 1023 ist die volle Hintergrundbeleuchtung aktiviert.

Für die ersten Schritte mit dem Display-Shield testet man idealerweise die einzelnen Beispiele die mit der Bibliothek mitgeliefert werden. Die Beispiele zeigen eindrucksvoll die Möglichkeiten des Color LCD Shield. Das Display erlaubt die Darstellung von Text, Linien, Rechtecken und Kreisen sowie Graphiken. Die Schriftgrösse der Texte ist in der Bibliothek fix hinterlegt und kann im Code nicht verändert werden.

Sehr cool ist die farbige Uhr aus dem Beispiel ChronoLCD_Color.

Color LCD Shield

Mit den vorhandenen Display-Methoden und Fantasie kann man eigene Anwendungen realisieren.

Wireless Display
Für mein drahtloses Sensornetzwerk bin ich immer noch auf der Suche nach der optimalen Darstellungslösung. Das Color LCD Shield nutze ich nun als Einzeldisplay und stelle Daten von einzelnen Sensor-Nodes dar.
Ein serielles Empfangsmodul empfängt die drahtlosen Daten und gibt diese über den seriellen Port aus. Das Arduino-Board mit dem Color LCD Shield liest die seriellen Daten mittels der TextFinder-Library ein und gibt diese auf dem Display aus. In der ersten Zeile wird die NodeID ausgegeben, die zweite Zeile zeigt den Sensorwert an und in der dritten Zeile wird die Batterie-Spannung des Sensor-Nodes dargestellt. In einer Balkengraphik aus einem blauen Rechteck als Rahmen und einem roten, gefüllten Rechteck wird die Batteriespannung optisch dargestellt.

Sensor Node Display

Fazit
Das Color LCD Shield von ElecFreaks ist ein praktisches Miniatur-Display um mehrzeilige Texte oder kleine Graphiken oder Graphik-Elemente darzustellen. Durch die Möglichkeit der Darstellung von farbigen Elementen kann man mit Fantasie gut lesbare Anzeigen realisieren. Die Darstellung von Bildgraphiken oder Logos ist mit diesem Display möglich. Um eine Graphik darzustellen, müssen die Binärdaten der Graphik im Sketch hinterlegt werden. Im Beispielsketch TestPattern steht dazu ein Beispiel mit der Methode printLogo() zur Verfügung. Für einen Arduino-Anwender mit etwas Erfahrung sollte es kein Problem sein die Methode für eigene Anwendungen anzupassen. Mit dem zusätzlichen Joystick steht ein praktisches Eingabeelement zur Verfügung welches man für Tasteneingaben oder als Bedienelement für ein Menu benutzen kann. Durch die kompakte Form des Color LCD Shields fehlen auf der Platine Montagebohrungen. Eine Montage der Displaylösung hinter einer Frontplatte ist somit auf einfache Art nicht möglich. In meinem Anwendungfall werde ich zwischen dem Arduino-Board und dem LCD Shield ein Screw Shield mit Montagebohrungen dazwischenstecken.


3 Responses to “Testbericht Color LCD Shield”  

  1. 1 mad

    Hallo

    Habe dieses Display auch und bin mehr oder weniger zufrieden damit. Funktioniert bei Dir die Serielle Ausgabe noch, wenn du die colorLCD Lib verwendest? Sobald ich ein lcd.setStr ausführe, kommt nichts mehr mit Serial.print an. Ist für Fehlersuche im Code nicht wirklich brauchbar. Bin aus diesem Grund auf die gLCD-Library umgestiegen – https://github.com/TCWORLD/gLCD-Library. Hier schlag ich mich jedoch seit mehren Tagen damit herum ein ° darzustellen …

  2. 2 arduino-praxis

    Hallo Mad,

    ja, die serielle Schnittstelle arbeitet einwandfrei. Ich lese in meinem Projekt die seriellen Daten vom Empfangsmodul ein und gebe Daten mit Serial.print aus.

    Danke für den Tip mit der gLCD-Library. Schaue ich mir gerne an.

    Gruss
    Thomas

  3. 3 Mathias Wilhelm

    Salut,
    ich habe diese Shield mit der UTFT library ans Laufen gebracht: http://www.mathias-wilhelm.de/arduino/beispiele/lcd-graphic-displays/#15tftelec

    Ciao, Mathias

Leave a Reply



Kategorien