Keypad-Shield für den Arduino UNO
FunduinoZuletzt aktualisiert am
Display und sechs Taster ohne eine einzige Kabelverbindung
Material
Was das Keypad-Shield kann
Shield aufstecken
Welche Pins frei bleiben
Der Programmcode
Sketch: Tasten des Keypad-Shields auslesen
#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 ausschliesslich geprueft, welcher Taster gedrueckt 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 gedrueckt wurde.
}
// Hier wird der Programmblock "Tasterstatus" abgeschlossen.
void setup()
{
lcd.begin(16, 2); // Starten der Programmbibliothek.
lcd.setCursor(0, 0); // Cursor oben links setzen.
lcd.print("Funduino GmbH"); // Ausgabe des Textes in der ersten Zeile.
}
void loop()
{
lcd.setCursor(12, 1); // Bewegt den Cursor in Zeile 2 (0 = Zeile 1, 1 = Zeile 2) an die Stelle 12.
lcd.print(millis() / 1000); // Zeigt die Sekunden seit dem Start des Programms an.
lcd.setCursor(0, 1); // Bewegt den Cursor an die Stelle 0 in Zeile 2.
Taster = Tasterstatus(); // Hier springt der Loop in den oben angegebenen Programmabschnitt "Tasterstatus" und liest dort den gedrueckten Taster aus.
switch (Taster) // Abhaengig von der gedrueckten Taste wird im folgenden switch-case-Befehl entschieden, was auf dem LCD angezeigt wird.
{
case Tasterrechts: // Wenn die rechte Taste gedrueckt wurde ...
{
lcd.print("Rechts "); // ... erscheint diese Zeile. Die Leerzeichen hinter dem Text sorgen dafuer, dass der vorherige Text in der Zeile geloescht wird.
break;
}
case Tasterlinks: // Wenn die linke Taste gedrueckt 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 beendenGehäuse aus dem 3D-Drucker
Anleitung bewerten