Bemerkung
Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.
Warum beitreten?
Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.
Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.
Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.
👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [ hier ] und treten Sie heute bei!
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.inodirekt 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.
1/*
2 The code use an Adafruit Keypad and display keypress events via the Serial Monitor.
3 It initializes the keypad with a 4x4 layout, where each key is represented by a
4 specific character. It continuously checks for keypad events (key press or release)
5 and prints the corresponding key and event status to the Serial Monitor.
6
7 Board: Arduino Uno R4
8 Component: Keypad
9 Library: https://github.com/adafruit/Adafruit_Keypad (Adafruit Keypad by Adafruit)
10*/
11
12// Include the Adafruit_Keypad library
13#include "Adafruit_Keypad.h"
14
15// Define the number of rows and columns for the keypad
16const byte ROWS = 4;
17const byte COLS = 4;
18
19// Define the characters mapped to each button on the 4x4 keypad
20char keys[ROWS][COLS] = {
21 { '1', '2', '3', 'A' },
22 { '4', '5', '6', 'B' },
23 { '7', '8', '9', 'C' },
24 { '*', '0', '#', 'D' }
25};
26
27// Define the Arduino pins connected to the row pinouts of the keypad
28byte rowPins[ROWS] = { 2, 3, 4, 5 };
29// Define the Arduino pins connected to the column pinouts of the keypad
30byte colPins[COLS] = { 8, 9, 10, 11 };
31
32// Initialize a custom keypad instance
33Adafruit_Keypad myKeypad = Adafruit_Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
34
35// Setup function
36void setup() {
37 // Initialize Serial communication at 9600 baud rate
38 Serial.begin(9600);
39 // Initialize the custom keypad
40 myKeypad.begin();
41}
42
43// Main loop function
44void loop() {
45 // Update the state of keys
46 myKeypad.tick();
47
48 // Check if there are new keypad events
49 while (myKeypad.available()) {
50 // Read the keypad event
51 keypadEvent e = myKeypad.read();
52 // Print the key that triggered the event
53 Serial.print((char)e.bit.KEY);
54 // Print the type of event: pressed or released
55 if (e.bit.EVENT == KEY_JUST_PRESSED) Serial.println(" pressed");
56 else if (e.bit.EVENT == KEY_JUST_RELEASED) Serial.println(" released");
57 }
58
59 delay(10);
60}
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_KeypadBibliothek, 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
ROWSundCOLSdefinieren die Abmessungen des Tastenfelds.keysist ein 2D-Array, das die Beschriftung jeder Taste auf dem Tastenfeld speichert.rowPinsundcolPinssind Arrays, die die mit den Reihen und Spalten des Tastenfelds verbundenen Arduino-Pins speichern.
Initialisierung des Tastenfelds
Erstellen Sie eine Instanz von
Adafruit_KeypadnamensmyKeypadund 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); }