Die Hardware
Das Tastenfeld besteht aus Reihen und Spalten, die von unten nach oben in einem ⇒zweidimensionalen Array angeordnet werden:

Der Schaltplan

Das Programm


|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
#include "Adafruit_Keypad.h" // Größe des Tastenfeldes // 3 Spalten const byte SPALTEN = 3; // 4 Zeilen const byte REIHEN = 4; // die Ziffern/Zeichen: // Array 3 x 4 char Tasten[REIHEN][SPALTEN] = { { '#', '0', '*' }, { '9', '8', '7' }, { '6', '5', '4' }, { '3', '2', '1' } }; // die Pins für die 3 Spalten byte SpaltenPins[SPALTEN] = { 3, 4, 5 }; // die Pins für die 4 Zeilen byte ReihenPins[REIHEN] = { 6, 7, 8, 9 }; // TastenFeld ⇒ Name des Keypads // -> Zuordnung der Pins zu den REIHEN und SPALTEN des Arrays Adafruit_Keypad Tastenfeld = Adafruit_Keypad(makeKeymap(Tasten), ReihenPins, SpaltenPins, REIHEN, SPALTEN); void setup() { // Tastenfeld starten Tastenfeld.begin(); Serial.begin(9600); // auf serielle Verbindung warten while (!Serial) {;} delay(500); } void loop() { // gedrückte Taste lesen Tastenfeld.tick(); while (Tastenfeld.available()) { keypadEvent Taste = Tastenfeld.read(); // wenn die Taste losgelassen wurde if (Taste.bit.EVENT == KEY_JUST_RELEASED) { // gedrückte Taste char Zeichen = (char)Taste.bit.KEY; // Zeichen anzeigen Serial.print("gedrückte Taste: "); Serial.println(Zeichen); } } } |
Letzte Aktualisierung: