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.
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.
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.
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.
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”
Leave a Reply
Suchen
Aktuelles
- Arduino Praxiseinstieg, 5. Auflage erschienen
- Arduino UNO R4 offiziell vorgestellt
- Review: PCB Service von WellPCB
- Review: SMD-Bestückungs-Service von JLCPCB
- Portable Power Supply – VoltBot
- Leiterplatten-Panel bei JLCPCB
- Arduino Praxiseinstieg, 4. Auflage erscheint am 29.04.2019
- Klein, kleiner, ganz klein – ATtiny10
- Review – Leiterplatten (PCB) von JLCPCB
- Arduino Day 2018
Kommentare
- Review: PCB Service von WellPCB 2
ArduinoPraxis [...] - Arduino UNO R4 offiziell vorgestellt 2
ArduinoPraxis [...] - Review - Leiterplatten (PCB) von JLCPCB 4
Werner Smidt [...] - Review: SMD-Bestückungs-Service von JLCPCB 2
ArduinoPraxis [...] - Projekt: drahtloses Display für Oregon Scientific Wetterstation 3
Oliver [...]
Kategorien
Archive
- Dezember 2023
- Juni 2023
- Juli 2020
- Dezember 2019
- Oktober 2019
- Juni 2019
- April 2019
- Juli 2018
- Mai 2018
- November 2017
- Oktober 2017
- September 2017
- Juli 2017
- April 2017
- März 2017
- Februar 2017
- Dezember 2016
- November 2016
- September 2016
- Mai 2016
- Januar 2016
- Dezember 2015
- August 2015
- Mai 2015
- März 2015
- Januar 2015
- Dezember 2014
- September 2014
- August 2014
- Juli 2014
- Juni 2014
- Mai 2014
- April 2014
- März 2014
- Februar 2014
- Januar 2014
- Dezember 2013
- Oktober 2013
- September 2013
- August 2013
- Juni 2013
- Mai 2013
- April 2013
- März 2013
- Februar 2013
- Januar 2013
- Dezember 2012
- November 2012
- Oktober 2012
- September 2012
- August 2012
- Juli 2012
- Juni 2012
- Mai 2012
- April 2012
- Februar 2012
- Januar 2012
- Dezember 2011
- November 2011
- Oktober 2011
- September 2011
- August 2011
- Juli 2011
- Juni 2011
- Mai 2011
- April 2011
- März 2011
- Januar 2011
- Dezember 2010
- November 2010
- Oktober 2010
- September 2010
- August 2010
- Juli 2010
- Juni 2010
- Mai 2010
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 …
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
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