Arduino Nano ESP32 - Tastenfeld

Dieses Tutorial gibt Anleitungen dazu, wie man den Arduino Nano ESP32 mit einem Tastenfeld verwendet. Im Detail lernen wir:

Erforderliche Hardware

1×Arduino Nano ESP32
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×Tastenfeld 3x4 and 4x4 Kit
1×(Alternativ) Tastenfeld 3x4
1×(Alternativ) Tastenfeld 4x4
1×(Optional) DC-Stromanschluss
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über das Keypad

Ziffernblock

Das Tastenfeld besteht aus einer Gruppe von Tasten, die in einer Matrix angeordnet sind (Zeilen und Spalten). Eine Taste entspricht einem Schlüssel. Es gibt viele Arten von Tastenfeldern. Das 3×4-Tastenfeld (12 Tasten) und das 4×4-Tastenfeld (16 Tasten) gehören zu den am häufigsten verwendeten Typen in DIY-Projekten.

Pinbelegung des Keypads

Die Pins des Tastenfelds werden in zwei Gruppen eingeteilt: Zeilen und Spalten.

  • Das Tastenfeld 3x4 hat 7 Pins:
    • R1, R2, R3, R4: Zeilenpins
    • C1, C2, C3: Spaltenpins
  • Das Tastenfeld 4x4 hat 8 Pins:
    • R1, R2, R3, R4: Zeilenpins
    • C1, C2, C3, C4: Spaltenpins
    Pinbelegung des Keypads

    Wie das Keypad funktioniert

    Siehe wie das Keypad funktioniert

Verdrahtungsdiagramm zwischen Tastaturfeld und Arduino Nano ESP32

Arduino Nano ESP32 Keypad-Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Arduino Nano ESP32-Code

Tastenfeld 3×4

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano ESP32 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-nano-esp32/arduino-nano-esp32-keypad */ #include <Keypad.h> #define ROW_NUM 4 // four rows #define COLUMN_NUM 3 // three columns char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; const byte pin_rows[ROW_NUM] = {D9, D8, D7, D6}; // The Arduino Nano ESP32 pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {D5, D4, D3}; // The Arduino Nano ESP32 pin connected to the column pins of the keypad Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); void setup() { Serial.begin(9600); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); } }

4×4-Tastatur

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano ESP32 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-nano-esp32/arduino-nano-esp32-keypad */ #include <Keypad.h> #define ROW_NUM 4 // four rows #define COLUMN_NUM 4 // four columns char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; const byte pin_rows[ROW_NUM] = {D9, D8, D7, D6}; // The Arduino Nano ESP32 pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {D5, D4, D3, D2}; // The Arduino Nano ESP32 pin connected to the column pins of the keypad Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); void setup() { Serial.begin(9600); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); } }

Schnelle Schritte

  • Wenn dies das erste Mal ist, dass Sie Arduino Nano ESP32 verwenden, siehe wie man die Umgebung für Arduino Nano ESP32 in der Arduino IDE einrichtet.
  • Öffnen Sie den Bibliotheks-Manager, indem Sie auf das Bibliotheks-Manager-Symbol in der linken Navigationsleiste der Arduino IDE klicken.
  • Geben Sie keypad in das Suchfeld ein, und suchen Sie dann nach der keypad-Bibliothek von Mark Stanley, Alexander Brevig.
  • Klicken Sie auf die Installieren-Schaltfläche, um die keypad-Bibliothek zu installieren.
Arduino Nano ESP32 Keypad-Bibliothek
  • Kopiere den obigen Code und füge ihn in die Arduino IDE ein.
  • Kompiliere und lade den Code auf das Arduino Nano ESP32-Board hoch, indem du in der Arduino IDE auf die Schaltfläche Upload klickst.
  • Öffne den seriellen Monitor in der Arduino IDE.
Wie öffnet man den seriellen Monitor in der Arduino-IDE?
  • Drücke einige Tasten auf dem Tastenfeld
  • Sieh dir das Ergebnis im Serial Monitor an
COM6
Send
1 2 3 4 * #
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Ziffernblock und Passwort

Die Tastatur wird häufig verwendet, um jemanden anhand eines Passworts zu authentifizieren. In diesem Tutorial ist ein gültiges Passwort im Code vordefiniert. Wenn ein Benutzer das Passwort von der Tastatur eingibt, wird es mit dem vordefinierten Passwort verglichen:

  • Bei Übereinstimmung wird der Zugriff gewährt.
  • Andernfalls wird der Zugriff festgelegt.

Um das Passwort mit dem Ziffernblock zu verwenden, legen wir zwei Sondertasten fest:

  • Eine Taste zum Starten der Eingabe des Passworts. Zum Beispiel die Taste "*"
  • Eine Taste zum Beenden der Eingabe des Passworts. Zum Beispiel die Taste "#"

Das vom Benutzer eingegebene Passwort wird in einer Zeichenkette gespeichert, die als eingegebene Passwortzeichenfolge bezeichnet wird. Wenn eine Taste gedrückt wird:

  • Wenn eine eingegebene Taste '*' ist, lösche die eingegebene Passwortzeichenfolge, um ein neues Passwort zu beginnen
  • Wenn eine eingegebene Taste weder '*' noch '#' ist, füge die Taste zur eingegebenen Passwortzeichenfolge hinzu.
  • Wenn eine eingegebene Taste '#' ist, vergleiche die eingegebene Passwortzeichenfolge mit dem vordefinierten Passwort.

Ziffernblock - Passwortcode

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano ESP32 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-nano-esp32/arduino-nano-esp32-keypad */ #include <Keypad.h> #define ROW_NUM 4 // four rows #define COLUMN_NUM 3 // three columns char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; const byte pin_rows[ROW_NUM] = {D9, D8, D7, D6}; // The Arduino Nano ESP32 pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {D5, D4, D3}; // The Arduino Nano ESP32 pin connected to the column pins of the keypad Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password = "7890"; // change your password here String input_password; void setup() { Serial.begin(9600); input_password.reserve(32); // maximum input characters is 33, change if needed } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); if (key == '*') { input_password = ""; // clear input password } else if (key == '#') { if (password == input_password) { Serial.println("The password is correct, ACCESS GRANTED!"); // DO YOUR WORK HERE } else { Serial.println("The password is incorrect, ACCESS DENIED!"); } input_password = ""; // clear input password } else { input_password += key; // append new character to input password string } } }
  • Führe den obigen Code aus
  • Öffne den seriellen Monitor in der Arduino-IDE
Wie öffnet man den seriellen Monitor in der Arduino IDE?
  • Drücken Sie die Tasten „123456“ und drücken Sie „#“.
  • Drücken Sie die Tasten „7890“ und drücken Sie „#“.
  • Schauen Sie sich das Ergebnis im seriellen Monitor an. Es sieht wie folgt aus:
COM6
Send
The password is incorrect, ACCESS DENIED! The password is correct, ACCESS GRANTED!
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!