LCD Shield mit Tasten (LCD Keypad Shield)

LCD-Shields für den Arduino gibt es ja einige. Ich hab mir unter anderem dieses bestellt, da es nicht nur ein Display, sondern auch gleich 5 Tasten hat – und man somit auch gleich eine Eingabemöglichkeit hat.

Mein Shield habe ich wie üblich bei Amazon gekauft (das ist der Link hinter dem Bild links). Dokumentation ist da allerdings keine dabei, aber es ist nicht so schwierig herauszufinden, wie es funktioniert. Auch zeigt das Bild nicht genau das Shield, das ich dann bekommen habe, aber auch egal! Es geistern einige so ähnliche Shields im Internet herum, die vielleicht auch eine etwas andere Beschaltung haben – also ACHTUNG! zuerst überprüfen, ob es wirklich so funktioniert wie man denkt!

Bei manchen Anbietern steht bei diesem Shield dabei es hätte 6 frei belegbare Tasten – das ist in meinem Fall nicht der Fall! Es sind nur 5! Die 6. Taste ist eine Resettaste (und damit nicht frei belegbar!). Ich finde die Resettaste an der Position wo sie ist auch nicht besonders glücklich. Ich denke mir, dass man da leicht beim normalen Bedienen (der anderen Tasten) aus versehen draufdrückt.

Das Display hat 2 Zeilen mit je 16 Zeichen. Die Schrift ist weiß auf blauem Hintergrund.

Anzusteuern ist das Display über die Standard 4-Bit Arduino LCD-Library (es ist ein HD44780 Chip verbaut). Die Anschlüsse für die LiquidCrystal Libary des Arduino sind:

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

Pin 10 wird für die Kontrolle der Hintergrundbeleuchtung verwendet.

Die Tasten sind über ein Widerstandsnetzwerk an den Analogeingang A0 geführt. D.h. je nach gedrückter Taste liegt eine andere Spannung an A0 an. Das spart IO-Pins, ist aber etwas aufwändiger in der Programmierung.

Hier ein kleines Beispielprogramm zum Testen des Shieldes:

#include<Wire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);


void setup() {
  pinMode(10,OUTPUT);
  lcd.begin(16, 2);
  lcd.print("Hallo, Welt!");
}

void loop() {
  digitalWrite(10,HIGH);
  lcd.setCursor(0, 1);
  lcd.print(analogRead(0));
  lcd.print("     ");
  delay(1000);
  digitalWrite(10,LOW);
  delay(100);
}

Wenn alles richtig funktioniert zeigt das Display „Hallo, Welt!“ in der ersten Zeile an. In der zweiten Zeile steht der Wert, der bei A0 gelesen wird (der ändert sich, wenn man eine Taste drückt- Die taste muß länger gedrückt werden, da das Programm nur alle 1.1 s abfragt!).

  • nichts gedrückt: 1023
  • select gedrückt: 640
  • left gedrückt: 410
  • up gedrückt: 98
  • down gedrückt: 256
  • right gedrückt: 0

Ausserdem blinkt die Hintergrundbeleuchtung, sie ist 1 s hell und 0.1 s dunkel.

Bei diesem ersten Test hat sich bei meinem Shield gezeigt, dass die „down“-Taste nicht immer funktionierte. Ich führe das auf schlechte Lötverbindungen zurück und habe die Pins der Tasten nochmal nachgelötet.

Mehr gibt es dazu eigentlich nicht zu sagen. Bald werde ich das Shield in dem einen oder anderen Projekt einsetzen.

Bis bald
Euer DIYDonkey

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert