Tastenfeld¶
Überblick¶
In dieser Lektion lernen Sie, wie man ein Tastenfeld verwendet. Tastenfelder können in verschiedene Arten von Geräten eingesetzt werden, einschließlich Mobiltelefone, Faxgeräte, Mikrowellenherde und so weiter. Sie werden häufig für Benutzereingaben verwendet.
Benötigte Komponenten¶
Für dieses Projekt benötigen wir die folgenden Komponenten.
Es ist definitiv praktisch, ein ganzes Set zu kaufen, hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
---|---|---|
Elite Explorer Kit |
300+ |
Sie können sie auch einzeln über die untenstehenden Links kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
---|---|
- |
|
Verdrahtung¶
Schaltplan¶
Code¶
Bemerkung
Sie können die Datei
21-keypad.ino
direkt im Pfadelite-explorer-kit-main\basic_project\21-keypad
öffnen.Um die Bibliothek zu installieren, verwenden Sie den Arduino Library Manager und suchen nach „Adafruit Keypad“ und installieren es.
Nachdem die Codes auf das UNO-Board hochgeladen wurden, können Sie auf dem seriellen Monitor den Wert der aktuell auf dem Tastenfeld gedrückten Taste sehen.
Code-Analyse¶
Einbinden der Bibliothek
Wir beginnen mit dem Einbinden der
Adafruit_Keypad
Bibliothek, die es uns ermöglicht, einfach mit dem Tastenfeld zu interagieren.#include "Adafruit_Keypad.h"
Bemerkung
Um die Bibliothek zu installieren, verwenden Sie den Arduino Library Manager und suchen nach „Adafruit Keypad“ und installieren es.
Konfiguration des Tastenfelds
const byte ROWS = 4; const byte COLS = 4; char keys[ROWS][COLS] = { { '1', '2', '3', 'A' }, { '4', '5', '6', 'B' }, { '7', '8', '9', 'C' }, { '*', '0', '#', 'D' } }; byte rowPins[ROWS] = { 2, 3, 4, 5 }; byte colPins[COLS] = { 8, 9, 10, 11 };
Die Konstanten
ROWS
undCOLS
definieren die Abmessungen des Tastenfelds.keys
ist ein 2D-Array, das die Beschriftung jeder Taste auf dem Tastenfeld speichert.rowPins
undcolPins
sind Arrays, die die mit den Reihen und Spalten des Tastenfelds verbundenen Arduino-Pins speichern.
Initialisierung des Tastenfelds
Erstellen Sie eine Instanz von
Adafruit_Keypad
namensmyKeypad
und initialisieren Sie diese.Adafruit_Keypad myKeypad = Adafruit_Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
setup()-Funktion
Initialisieren Sie die serielle Kommunikation und das benutzerdefinierte Tastenfeld.
void setup() { Serial.begin(9600); myKeypad.begin(); }
Hauptloop
Überprüfen Sie auf Tastenereignisse und zeigen Sie diese im seriellen Monitor an.
void loop() { myKeypad.tick(); while (myKeypad.available()) { keypadEvent e = myKeypad.read(); Serial.print((char)e.bit.KEY); if (e.bit.EVENT == KEY_JUST_PRESSED) Serial.println(" pressed"); else if (e.bit.EVENT == KEY_JUST_RELEASED) Serial.println(" released"); } delay(10); }