ESP32 C3 Super Mini - Tastenfeld 4x4

Ein 4x4-Tastenfeld gibt Ihrem ESP32 C3 Super Mini 16 Tasten auf einer einzigen dünnen Folie. Es ist der einfachste Weg, einen Benutzer eine Zahl oder einen PIN-Code eingeben zu lassen. Dieses ESP32 C3 Super Mini Tastenfeld-4x4-Tutorial zeigt Ihnen die Verdrahtung, den Code und eine funktionierende Passwortprüfung.

In diesem Tutorial lernen Sie:

ESP32 C3 Super Mini - Tastenfeld 4x4

Erforderliche Hardware

1×ESP32 C3 Super Mini
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 4x4
1×Verbindungskabel

Oder Sie können die folgenden Kits kaufen:

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.

Überblick über 4x4 Keypad

Ein 4x4-Tastenfeld ist eine Folientastatur mit 16 Tasten, die in 4 Reihen und 4 Spalten angeordnet sind.

Wichtige Merkmale:

  • 16 Tasten: 0-9, A, B, C, D, Stern und Raute.
  • Nur 8 Leitungen: 4 Reihen-Pins und 4 Spalten-Pins.
  • Kein Versorgungspin: Das Tastenfeld benötigt weder VCC noch GND.
  • Dünn und flach: Eine Klebefläche auf der Rückseite ermöglicht das Aufkleben auf ein Gehäuse.
  • 3,3-V-tauglich: Es funktioniert direkt mit den Logikpegeln des ESP32 C3 Super Mini.

Technische Daten:

  • Layout: 4 Reihen x 4 Spalten.
  • Pins: 8 Pins (R1, R2, R3, R4, C1, C2, C3, C4).
  • Kontaktart: Einfacher Taster unter jeder Taste.
  • Betriebsspannung: Wird von der Platine vorgegeben. 3.3V beim ESP32 C3 Super Mini.
  • Stromaufnahme: Nahezu null, daher ist keine zusätzliche Versorgung nötig.

Wie die Tastenabtastung funktioniert

Das Tastenfeld enthält keinen Chip, daher findet der ESP32 C3 Super Mini die Taste durch Abtasten.

  • Ein Schalter pro Taste: Jede Taste verbindet eine Reihenleitung mit einer Spaltenleitung.
  • Reihe für Reihe: Die Platine zieht jeweils eine Reihe auf LOW.
  • Spalten lesen: Anschließend liest sie alle 4 Spalten-Pins.
  • Treffer: Eine Spalte mit LOW zeigt der Platine, welche Taste gedrückt ist.
  • Schnell: Die gesamte Abtastung dauert weniger als eine Millisekunde und wirkt daher sofort.
  • Die Bibliothek erledigt das: Die DIYables_Keypad-Bibliothek führt diese Abtastung für Sie durch.

Pinbelegung

Das 4x4-Tastenfeld hat 8 Pins in zwei Gruppen.

  • R1-Pin: Reihe 1, die oberste Tastenreihe (1, 2, 3, A).
  • R2-Pin: Reihe 2, die zweite Tastenreihe (4, 5, 6, B).
  • R3-Pin: Reihe 3, die dritte Tastenreihe (7, 8, 9, C).
  • R4-Pin: Reihe 4, die unterste Tastenreihe (*, 0, #, D).
  • C1-Pin: Spalte 1, die linke Spalte (1, 4, 7, *).
  • C2-Pin: Spalte 2, die zweite Spalte (2, 5, 8, 0).
  • C3-Pin: Spalte 3, die dritte Spalte (3, 6, 9, #).
  • C4-Pin: Spalte 4, die rechte Spalte (A, B, C, D).
Pinbelegung des 4x4-Tastenfelds

WARNING

Ein 4x4-Tastenfeld benötigt 8 GPIO-Pins, und das sind fast alle freien Pins des ESP32 C3 Super Mini. Nach der Verdrahtung bleibt kaum noch ein Pin für ein Display, ein Relais oder einen Sensor übrig.

Wenn Sie Pins für andere Bauteile benötigen, verwenden Sie stattdessen eine dieser Lösungen:

  • Ein I2C-Tastenfeld, das nur SDA GPIO10 und SCL GPIO8 benötigt.
  • Einen PCF8574-I/O-Expander zwischen Tastenfeld und Platine, ebenfalls an SDA GPIO10 und SCL GPIO8.

Beide Optionen steuern dieselben 16 Tasten mit nur 2 Leitungen.

Verdrahtungsdiagramm

Verbinden Sie die 4 Reihen-Pins und die 4 Spalten-Pins des Tastenfelds mit 8 freien GPIO-Pins am ESP32 C3 Super Mini.

ESP32 C3 Super Mini Tastenfeld 4x4 Schaltplan

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

Tastenfeld-Pin ESP32 C3 Super Mini Pin
R1 GPIO2
R2 GPIO3
R3 GPIO4
R4 GPIO5
C1 GPIO6
C2 GPIO7
C3 GPIO10
C4 GPIO1
  • Hinweis: Das Tastenfeld hat keine VCC- und keine GND-Leitung. Alle 8 Pins werden mit GPIO-Pins verbunden.
  • Hinweis: Verwenden Sie niemals GPIO8 (eingebaute LED und Boot-Pin), GPIO9 (Boot-Pin), GPIO20 oder GPIO21 (UART des seriellen Monitors).
  • Hinweis: Das Tastenfeld ist 3,3-V-sicher. Verbinden Sie keinen Pin mit 5V.
  • Hinweis: Stecken Sie jedes Jumper-Kabel vollständig in das Breadboard. Ein lockeres Kabel ist die häufigste Ursache für nicht erkannte Tastendrücke.
  • Hinweis: Halten Sie das Tastenfeld mit den Tasten nach oben und zählen Sie die Flachbandleitungen von links. Die erste ist R1 und die letzte ist C4.

ESP32 C3 Super Mini Code - Tastenfeld 4x4

Dieser erste Sketch gibt einfach jede Taste aus, die Sie drücken.

Was dieser Code macht:

  • Erstellt eine Belegung der 16 Tasten in einem 4x4-Array.
  • Teilt der Bibliothek mit, an welchen GPIO-Pins die Reihen und Spalten liegen.
  • Tastet das Tastenfeld in der Schleife immer wieder ab.
  • Gibt die gedrückte Taste mit 115200 Baud im seriellen Monitor aus.
  • Gibt nichts aus, wenn keine Taste gedrückt ist.
/* * Dieser ESP32 C3 Super Mini Code wurde von newbiely.de entwickelt * Dieser ESP32 C3 Super Mini 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/esp32-c3/esp32-c3-super-mini-keypad-4x4 */ #include <DIYables_Keypad.h> // DIYables_Keypad library #define ROW_NUM 4 // four rows #define COLUMN_NUM 4 // four columns char keys[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; byte pin_rows[ROW_NUM] = {2, 3, 4, 5}; // The ESP32 C3 SuperMini pin GPIO2, GPIO3, GPIO4, GPIO5 connect to the row pins byte pin_column[COLUMN_NUM] = {6, 7, 10, 1}; // The ESP32 C3 SuperMini pin GPIO6, GPIO7, GPIO10, GPIO1 connect to the column pins DIYables_Keypad keypad = DIYables_Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); void setup() { Serial.begin(115200); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); } }

Schnelle Schritte

  • Neu beim ESP32 C3 Super Mini? Absolvieren Sie zuerst unser Tutorial Erste Schritte mit dem ESP32 C3 Super Mini, um Ihre Entwicklungsumgebung einzurichten.
  • Teile verdrahten: Folgen Sie dem obigen Schaltplan, um das 4x4-Tastenfeld mit dem ESP32 C3 Super Mini zu verbinden.
  • Platine anschließen: Verbinden Sie den ESP32 C3 Super Mini über ein USB-Typ-C-Kabel mit Ihrem PC.
  • IDE öffnen: Starten Sie die Arduino IDE.
  • Board auswählen: Stellen Sie sicher, dass ESP32 C3 Super Mini unter Tools > Board ausgewählt ist.
  • Port auswählen: Wählen Sie den COM-Port Ihrer Platine unter Tools > Port.
  • Library Manager öffnen: Klicken Sie auf das Libraries-Symbol in der linken Leiste der Arduino IDE.
  • Nach der Bibliothek suchen: Geben Sie "DIYables_Keypad" in das Suchfeld ein.
  • Bibliothek installieren: Suchen Sie die Keypad-Bibliothek von DIYables.io und klicken Sie dann auf Install.
  • Search for DIYables_Keypad created by DIYables.io and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Library Manager
Type:
All
Topic:
All
DIYables_Keypad by DIYables.io
The library is designed for Arduino, ESP32, ESP8266... to use with keypad such as 3x4, 4x4 keypad. It also works with Arduino Uno R4 WiFi/Minima More info
1.0.1
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32C3 Dev Module on COM15
1
  • Code kopieren: Kopieren Sie den obigen Tastenfeld-Code und fügen Sie ihn in die Arduino IDE ein.
  • Code hochladen: Klicken Sie auf die Schaltfläche Upload, um den Sketch auf den ESP32 C3 Super Mini zu übertragen.
  • Seriellen Monitor öffnen: Stellen Sie die Baudrate auf 115200 ein.
  • Testen: Drücken Sie nacheinander einige Tasten auf dem Tastenfeld.
  • Ausgabe prüfen: Jede gedrückte Taste erscheint in einer eigenen Zeile.
  • Profi-Tipp: Wenn die falsche Taste ausgegeben wird, tauschen Sie die Reihen- und Spalten-Pins im Code. Die Flachbandkabel von Tastenfeldern sind nicht bei jedem Hersteller gleich verdrahtet.

Ausgabe im seriellen Monitor

Drücken Sie nacheinander die Tasten 1, 4, A und #.

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
1 4 A #
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

Tastenfeld und Passwort

Das Tastenfeld wird zu einem PIN-Pad, wenn Sie zwei Tasten als Steuertasten verwenden.

  • Sterntaste: Die Taste * löscht Ihre Eingabe, damit Sie von vorn beginnen können.
  • Rautetaste: Die Taste # beendet die Eingabe und prüft sie gegen das gespeicherte Passwort.
  • Jede andere Taste: Wird an das Ende des eingegebenen Passworts angehängt.
  • Ergebnis: Der Sketch gibt ACCESS GRANTED oder ACCESS DENIED aus und löscht dann die Eingabe.
  • Ihr Code: Fügen Sie Ihre eigene Aktion, z. B. das Öffnen eines Schlosses, an der Stelle ein, an der im Code DO YOUR WORK HERE steht.

ESP32 C3 Super Mini Code - Tastenfeld-Passwort

Dieser zweite Sketch verwandelt das ESP32 C3 Super Mini Tastenfeld in eine Passwortprüfung.

Was dieser Code macht:

  • Speichert ein Passwort im Sketch, standardmäßig 7890A.
  • Sammelt jede gedrückte Taste in einem Eingabe-String.
  • Löscht die Eingabe, wenn Sie die Taste * drücken.
  • Vergleicht die Eingabe mit dem Passwort, wenn Sie die Taste # drücken.
  • Gibt aus, ob das Passwort korrekt ist, und löscht dann die Eingabe.
/* * Dieser ESP32 C3 Super Mini Code wurde von newbiely.de entwickelt * Dieser ESP32 C3 Super Mini 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/esp32-c3/esp32-c3-super-mini-keypad-4x4 */ #include <DIYables_Keypad.h> // DIYables_Keypad library #define ROW_NUM 4 // four rows #define COLUMN_NUM 4 // four columns char keys[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; byte pin_rows[ROW_NUM] = {2, 3, 4, 5}; // The ESP32 C3 SuperMini pin GPIO2, GPIO3, GPIO4, GPIO5 connect to the row pins byte pin_column[COLUMN_NUM] = {6, 7, 10, 1}; // The ESP32 C3 SuperMini pin GPIO6, GPIO7, GPIO10, GPIO1 connect to the column pins DIYables_Keypad keypad = DIYables_Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password = "7890A"; // change your password here String input_password; void setup() { Serial.begin(115200); 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 } } }

Schnelle Schritte (Passwort-Beispiel)

  • Code hochladen: Übertragen Sie den Passwort-Sketch auf den ESP32 C3 Super Mini.
  • Seriellen Monitor öffnen: Stellen Sie die Baudrate auf 115200 ein.
  • Falschen Code eingeben: Drücken Sie 1234BC und dann #.
  • Richtigen Code eingeben: Drücken Sie 7890A und dann #.
  • Ausgabe prüfen: Lesen Sie die Ergebniszeilen im seriellen Monitor.
  • Profi-Tipp: Drücken Sie jederzeit *, wenn Sie sich vertippt haben. Damit wird die Eingabe ohne Meldung über ein falsches Passwort gelöscht.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
1 2 3 4 B C # The password is incorrect, ACCESS DENIED! 7 8 9 0 A # The password is correct, ACCESS GRANTED!
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

※ Notiz:

Das Passwort steht als Klartext im Sketch. Zum Lernen ist das in Ordnung. Für ein echtes Schloss sollten Sie es im NVS-Flash speichern, damit Sie es ohne erneutes Hochladen ändern können.

Zeilenweise Code-Erklärung

Der obige ESP32 C3 Super Mini Code enthält eine zeilenweise Erklärung. Bitte lesen Sie die Kommentare im Code!

Anwendungs-/Projektideen

Ein Tastenfeld ist die Eingabeseite fast jedes kleinen Sicherheits- oder Menüprojekts.

  • Türschloss: Öffnen Sie ein Magnetschloss, wenn die PIN korrekt ist.
  • Tresor: Verlangen Sie eine längere Tastenfolge, bevor eine Box geöffnet werden kann.
  • Alarm-Tastenfeld: Schalten Sie eine Alarmanlage mit einem Code scharf und unscharf.
  • Zugangsprotokoll: Speichern Sie jeden Tastendruck mit einem Zeitstempel auf einer SD-Karte.
  • Einfacher Taschenrechner: Verwenden Sie 0-9 für Zahlen und A-D für Plus, Minus, Mal und Geteilt.
  • Menüsteuerung: Wählen Sie einen Menüeintrag auf einem LCD aus, indem Sie seine Nummer eingeben.

Fordern Sie sich selbst heraus

Probieren Sie diese kleinen Projekte aus, um mit dem 4x4-Tastenfeld und dem ESP32 C3 Super Mini zu üben.

  • Einfach: Ändern Sie das Passwort in Ihre eigene 6-stellige Zahl und testen Sie es.
  • Einfach: Lassen Sie die eingebaute LED an GPIO8 bei jedem Tastendruck einmal blinken.
  • Mittel: Zeigen Sie jede Taste auf einem I2C-LCD statt im seriellen Monitor an, mit SDA GPIO10 und SCL GPIO8.
  • Mittel: Sperren Sie das Tastenfeld nach 3 Fehlversuchen für 30 Sekunden.
  • Fortgeschritten: Speichern Sie das Passwort im NVS-Flash, damit es einen Stromausfall übersteht, und fügen Sie eine Tastenfolge zum Ändern hinzu.
  • Fortgeschritten: Ersetzen Sie die direkte Verdrahtung durch einen PCF8574-I/O-Expander, damit das Tastenfeld nur 2 Pins benötigt.

※ 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!