Arduino Nano - Tastenfeld

Dieses Tutorial zeigt dir, wie man den Arduino Nano mit einer 3×4- und einer 4×4-Tastatur verbindet und wie man dafür programmiert. Die Tutorials liefern außerdem die Methode und den Arduino-Code, um das von Benutzern über das Tastaturfeld eingegebene Passwort zu überprüfen.

Erforderliche Hardware

1×Official Arduino Nano
1×Alternativ: DIYables ATMEGA328P Nano Development Board
1×USB-A-zu-Mini-B-Kabel
1×Tastenfeld 3x4 and 4x4 Kit
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano

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 Tastenfeld

Ziffernblock

Ein Tastenfeld besteht aus Tasten, die in einer Matrix angeordnet sind. Jede einzelne Taste wird als Taste bezeichnet. Tastfelder gibt es in verschiedenen Ausführungen. Zwei der am häufigsten für DIY-Projekte verwendeten Tastfelder sind das 3x4-Tastfeld (12 Tasten) und das 4x4-Tastfeld (16 Tasten).

Die Pinbelegung des Keypads

Die Pins sind in zwei Kategorien unterteilt: Zeilen und Spalten.

  • Eine 3×4-Tastatur hat sieben Pins: Vier davon sind Zeilenpins, beschriftet mit R1, R2, R3 und R4. Die anderen drei sind Spaltenpins, beschriftet mit C1, C2 und C3.
  • Eine 4×4-Tastatur hat acht Pins: Vier davon sind Zeilenpins, beschriftet mit R1, R2, R3 und R4. Die anderen vier sind Spaltenpins, beschriftet mit C1, C2, C3 und C4.
Pinbelegung des Tastenfelds

Verdrahtungsdiagramm

Arduino Nano Keypad Verdrahtungsdiagramm

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

Siehe Der beste Weg, den Arduino Nano und andere Komponenten mit Strom zu versorgen.

Arduino Nano Quellcode

Arduino Nano-Programmcode für ein 3x4-Tastenfeld

#include <Keypad.h> const int ROW_NUM = 4; // four rows const int COLUMN_NUM = 3; // three columns const byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // The Arduino Nano pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {5, 4, 3}; // The Arduino Nano pin connected to the column pins of the keypad char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; 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); } }

Arduino Nano-Code für eine 4x4-Tastatur

#include <Keypad.h> const int ROW_NUM = 4; // four rows const int COLUMN_NUM = 4; // four columns const byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // The Arduino Nano pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; // The Arduino Nano pin connected to the column pins of the keypad char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; 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

  • Klicke auf das Bibliotheken-Symbol in der linken Seitenleiste der Arduino IDE.
  • Suche nach „keypad“ und finde die von Mark Stanley und Alexander Brevig erstellte Keypad-Bibliothek.
  • Dann drückst du die Installieren-Schaltfläche, um die Installation der Keypad-Bibliothek abzuschließen.
Arduino Nano Tastenfeld-Bibliothek
  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino-IDE.
  • Klicken Sie in der Arduino-IDE auf die Hochladen-Schaltfläche, um den Code zu kompilieren und auf den Arduino Nano hochzuladen.
  • Öffnen Sie den seriellen Monitor.
  • Drücken Sie einige Tasten am Tastenfeld.
  • Überprüfen Sie das Ergebnis im seriellen Monitor.
COM6
Send
3 6 9 4 * #
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Tastenfeld und Passwort

Eine gängige Verwendung des Ziffernblocks ist die Passworteingabe. Dafür werden zwei spezielle Tasten verwendet:

  • Eine Taste zum Starten oder Neustarten der Passworteingabe, z. B. die Stern-Taste
  • Eine Taste zum Beenden der Passworteingabe, z. B. die Raute-Taste

Das Passwort wird aus allen Tasten bestehen, mit Ausnahme von zwei bestimmten Sondertasten.

Wenn eine Taste gedrückt wird:

  • Wenn der Schlüssel nicht '*' oder '#', füge den Schlüssel an den vom Benutzer eingegebenen Passwortstring hinzu.
  • Wenn der Schlüssel '#', vergleiche den vom Benutzer eingegebenen String mit den autorisierten Passwörtern, um festzustellen, ob das eingegebene Passwort korrekt ist, und lösche anschließend den vom Benutzer eingegebenen Passwortstring.
  • Wenn der Schlüssel '*', lösche den vom Benutzer eingegebenen Passwortstring.

Ziffernblock - Passwortcode

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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/arduino-nano-keypad */ #include <Keypad.h> const int ROW_NUM = 4; // four rows const int COLUMN_NUM = 3; // three columns const byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // The Arduino Nano pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {5, 4, 3}; // The Arduino Nano pin connected to the column pins of the keypad char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM); const String password = "1234"; // 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("password is correct"); // DO YOUR WORK HERE } else { Serial.println("password is incorrect, try again"); } input_password = ""; // clear input password } else { input_password += key; // append new character to input password string } } }

Schnelle Schritte

  • Führe den obigen Code aus.
  • Öffne den Serial Monitor.
  • Drücke nacheinander die Tasten '123456', gefolgt von der '#' Taste.
  • Drücke nacheinander die Tasten '1234', gefolgt von der '#' Taste.
  • Schau dir das Ergebnis im Serial Monitor an.
COM6
Send
password is incorrect, try again password is correct
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!