Inhaltsverzeichnis
Für dieses Projekt benötigst du
Ein 4x4 Tastenfeld am Arduino verwenden
Aufgabe: Mit dem Arduino soll ein Keypad (Tastenfeld) ausgelesen und die gedrückte Taste am seriellen Monitor angezeigt werden.

Um mit dem Keypad arbeiten zu können, benötigt man eine Library, welche noch nicht im Arduino Programm vorinstalliert ist. Für diese Anleitung verwenden wir die Library „Keypad“ von Mark Stanley und Alexander Brevig. Die Library kann über die Bibliotheksverwaltung der Arduino-Software hinzugefügt werden. Als Suchbegriff verwendet man den Namen „Keypad“. Eine detaillierte Beschreibung, wie Bibliotheken eingefügt werden, findet man im Theorieteil zu dieser Anleitung im Unterpunkt „Bibliotheken zur Arduino-Software hinzufügen“.
Das Tastenfeld besteht aus einem 3 × 4 Tasten großem Feld mit 12 Tasten, oder einem 4 × 4 Tasten großem Feld mit 16 Tasten. Um die Funktionsweise zu verstehen, muss man sich das Keypad wie ein Koordinatensystem vorstellen. Jede Taste ist mit zwei Pins verbunden; ein Pin für die Spalten (COLS) und einer für die Zeilen (ROWS). Wird eine Taste gedrückt, werden die entsprechenden Pins miteinander verbunden. Diese Pins werden vom Arduino-Mikrocontroller mit der digitalRead() Funktion ausgelesen, jedoch findet diese Abfrage durch die Nutzung der Library versteckt statt und muss nicht separat vorgenommen werden. Wie auch bei der Nutzung anderer Libraries, bleibt der Sketch dadurch übersichtlicher.
Der Schaltplan

Der Programmcode
#include <Keypad.h> //Hier wird die größe des Keypads definiert
const byte COLS = 4; //4 Spalten
const byte ROWS = 4; //4 Zeilen //Die Ziffern und Zeichen des Keypads werden eingegeben:
char hexaKeys[ROWS][COLS] = {
{ ‚D‘, ‚#‘, ‚0‘, ‚*‘ },
{ ‚C‘, ‚9‘, ‚8‘, ‚7‘ },
{ ‚B‘, ‚6‘, ‚5‘, ‚4‘ },
{ ‚A‘, ‚3‘, ‚2‘, ‚1‘ }
};
byte colPins[COLS] = { 2, 3, 4, 5 }; //Definition der Pins für die 4 Spalten
byte rowPins[ROWS] = { 6, 7, 8, 9 }; //Definition der Pins für die 4 Zeilen
char Taste; //Taste ist die Variable für die jeweils gedrückte Taste.
Keypad Tastenfeld = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); //Das
Keypad kann absofort mit „Tastenfeld“ angesprochen werden.void setup() {
Serial.begin(9600);
}
void loop() {
Taste = Tastenfeld.getKey(); //Unter der Variablen „Taste“ wird die gedrückte Taste
gespeichert.if (Taste) { //Wenn eine Taste gedrückt wurde Serial.print(„Die Taste „);
Serial.print(Taste);
Serial.print(“ wurde gedrueckt“);
Serial.println(); //Teile uns am Seriellen Monitor die gedrückte Taste mit
delay(200); // Kurze Pause, damit eine Taste nicht mehrfach angezeigt wird
}
}
Verwendung eines 3×4 Tastenfeldes
const byte COLS = 3; //3 Spalten
byte colPins[COLS] = { 8, 7, 6 }; //Definition der Pins für die 3 Spalten
char hexaKeys[ROWS][COLS] = {
{‚#‘,’0′,’*‘},
{‚9‘,’8′,’7′},
{‚6‘,’5′,’4′},
{‚3‘,’2′,’1′}
};
Der Programmcode
So sollte es aussehen, wenn alles gelungen ist:

Funduino - Dein Onlineshop für Mikroelektronik
-
Dauerhaft bis zu 10 % Rabatt für Schüler, Studenten und Lehrkräfte
-
Mehr als 4.000 Artikel sofort verfügbar!
-
Mehr als 10 Jahre Erfahrung mit Arduino, 3D-Druck und co.