Inhaltsverzeichnis
Für dieses Projekt benötigst du
Das Keypadshield für den Arduino UNO
Ein Keypadshield hat den Vorteil, dass man das LCD-Display nicht in komplizierter Weise verkabeln muss und man zusätzlich sechs Taster hat, die man verwenden kann. Das Besondere liegt bei den Tasten darin, dass sie im Programmcode alle über einen analogen Pin ausgelesen werden können. Denn die Taster sind über unterschiedliche Widerstände alle mit einem analogen Pin (A0) verbunden. Der Pin A0 kann daher nur eingeschränkt für andere Dinge verwendet werden. Deswegen befindet sich auf dem Shield auch kein Steckplatz für den A0-Pin.
Die freien digitalen Pins sind 13, 12, 11, 3, 2, 1 und 0. Diese können auf dem Shield oben rechts in der Ecke angeschlossen werden. Dazu sollte eine Buchsenleiste aufgelötet werden. Die freien analogen Pins befinden sich unterhalb des LCD und sind einzeln beschriftet.
Das Keypadshield kann u.a. auf das UNO, das MEGA Board aufgesteckt werden. Es wird so platziert, dass die Pins für die Spannungsversorgung genau in die Pins der Spannungsversorgung auf dem Arduino Board passt (auf dem Bild unten in der Mitte sieht man die Pins für die Spannungsversorgung. Ein Anhaltspunkt kann der Pin mit der Aufschrift „VIN“ sein). Die oberen Steckplätze des Arduinoboards werden ebenfalls durch das Shield verdeckt (Pin 0-13). Einige können ohnehin nicht mehr verwendet werden, da das LCD-Display sie verwendet. Die nicht mehr benötigten Pins wurden in einer Reihe von Steckplätzen zusammengefasst (Siehe Foto oben rechts).
Wenn man diese Steckplätze verwenden möchte, sollte man dort Kabelbuchsen auflöten.
Der Programmcode
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); //Angabe der erforderlichen Pins
// erstellen einiger Variablen
int Taster = 0;
int Analogwert = 0;
#define Tasterrechts 0
#define Tasteroben 1
#define Tasterunten 2
#define Tasterlinks 3
#define Tasterselect 4
#define KeinTaster 5
// Ab hier wird ein neuer Programmblock mit dem Namen "Tasterstatus" erstellt. Hier wird ausschließlich geprüft, welcher Taster gedrückt ist.
int Tasterstatus()
{
Analogwert = analogRead(A0); // Auslesen der Taster am Analogen Pin A0.
if (Analogwert > 1000) return KeinTaster;
if (Analogwert < 50) return Tasterrechts;
if (Analogwert < 195) return Tasteroben;
if (Analogwert < 380) return Tasterunten;
if (Analogwert < 555) return Tasterlinks;
if (Analogwert < 790) return Tasterselect;
return KeinTaster; // Ausgabe wenn kein Taster gedrückt wurde.
}
// Hier wird der Programmblock "Tasterstatus" abeschlossen.
void setup()
{
lcd.begin(16, 2); // Starten der Programmbibliothek.
lcd.setCursor(0,0); // Angabe des Cursorstartpunktes oben links.
lcd.print("Funduino GmbH"); // Ausgabe des Textes "Nachricht".
}
void loop()
{
lcd.setCursor(12,1); // Bewegt den Cursor in Zeile 2 (Line0=Zeile1 und Line1=Zeile2) and die Stelle "12".
lcd.print(millis()/1000); // Zeigt die Sekunden seit Start des Programms in Sekunden an.
lcd.setCursor(0,1); // Bewegt den Cursor and die Stelle "0" in Zeile 2.
Taster = Tasterstatus(); //Hier springt der Loop in den oben angegebenen Programmabschnitt "Tasterstatus" und liest dort den gedrückten Taster aus.
switch (Taster) // Abhängig von der gedrückten Taste wird in dem folgenden switch-case Befehl entschieden, was auf dem LCD angezeigt wird.
{
case Tasterrechts: // Wenn die rechte Taste gedrückt wurde...
{
lcd.print("Rechts "); //Erscheint diese Zeile. Die Leerzeichen hinter dem Text sorgen dafür, dass der vorherige Text in der Zeile gelöscht wird.
break;
}
case Tasterlinks: // Wenn die linke Taste gedrückt wurde...
{
lcd.print("Links "); //Erscheint diese Zeile... usw...
break;
}
case Tasteroben:
{
lcd.print("Oben ");
break;
}
case Tasterunten:
{
lcd.print("Unten ");
break;
}
case Tasterselect:
{
lcd.print("SELECT ");
break;
}
case KeinTaster:
{
lcd.print("Keine Taste ");
break;
}
} //switch-case Befehl beenden
} //Loop beenden
Cover und Cases aus dem 3D-Drucker
Für das Keypadshield gibt es bei Thingiverse diverse Cover und Case zum ausdrucken:
https://www.thingiverse.com/thing:845415
https://www.thingiverse.com/thing:2134481
Funduino - Dein Onlineshop für Mikroelektronik
-
Dauerhaft bis zu 10% Rabatt für Schüler, Studenten und Lehrkräfte
-
Mehr als 3.500 Artikel sofort verfügbar!
-
Über 8 Jahre Erfahrung mit Arduino, 3D-Druck und co.