ESP32 C3 Super Mini - Tastenfeld 3x4

Ein 3x4-Tastenfeld gibt Ihrem ESP32 C3 Super Mini 12 Tasten, benötigt aber nur 7 Kabel. Es ist die günstigste Möglichkeit, Zahlen und PIN-Codes in ein Projekt einzugeben. Dieses ESP32 C3 Super Mini Tastenfeld-Tutorial zeigt die Verdrahtung und den Code in kleinen, einfachen Schritten.

In diesem Tutorial lernen Sie:

ESP32 C3 Super Mini - Tastenfeld 3x4

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 3x4
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 3x4 Keypad

Ein 3x4-Tastenfeld ist eine dünne Folientastatur mit 12 Tasten, die in 4 Reihen und 3 Spalten angeordnet sind.

Wichtige Merkmale:

  • 12 Tasten: Die Ziffern 0-9 sowie die Tasten "*" und "#".
  • Nur 7 Pins: 4 Reihen-Pins und 3 Spalten-Pins.
  • Kein Versorgungspin: Das Tastenfeld benötigt weder VCC noch GND.
  • Matrix-Abtastung: Die Platine prüft jeweils eine Reihe, um die gedrückte Taste zu finden.
  • Sehr dünn: Die flache Folie klebt auf jeder ebenen Oberfläche.

Technische Daten:

  • Layout: 4 Reihen x 3 Spalten.
  • Pins: 7 (R1, R2, R3, R4, C1, C2, C3).
  • Logikpegel: Funktioniert mit 3.3V und ist daher sicher für den ESP32 C3 Super Mini.
  • Strom: Nahezu null. Die GPIO-Pins steuern es direkt an.
  • Kontaktart: Ein einfacher offener oder geschlossener Schalter unter jeder Taste.

Funktionsweise

Jede Taste ist ein kleiner Schalter, der eine Reihenleitung mit einer Spaltenleitung verbindet.

  • Ruhezustand: Keine Reihe ist mit einer Spalte verbunden.
  • Taste gedrückt: Reihe und Spalte dieser Taste berühren sich.
  • Abtastung: Der ESP32 C3 Super Mini zieht eine Reihe auf LOW und liest dann die 3 Spalten-Pins.
  • Ergebnis: Die Reihe, die LOW war, und die Spalte, die LOW liest, ergeben zusammen die genaue Taste.
  • Beispiel: Das Drücken von "5" verbindet Reihe R2 mit Spalte C2.

Die Keypad-Bibliothek übernimmt diese gesamte Abtastung für Sie. Sie rufen nur die Funktion getKey() auf.

Pinbelegung

Das 3x4-Tastenfeld hat 7 Pins in zwei Gruppen.

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

Verdrahtungsdiagramm

Verbinden Sie die 4 Reihen-Pins und die 3 Spalten-Pins mit 7 freien GPIO-Pins am ESP32 C3 Super Mini.

ESP32 C3 Super Mini Tastenfeld 3x4 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
  • Hinweis: Verwenden Sie genau diese Pins und diese Reihenfolge. Der Code unten verwendet dieselben Pins.
  • Hinweis: Das Tastenfeld hat keinen VCC-Pin und keinen GND-Pin. Es werden nur 7 Signalleitungen benötigt.
  • Hinweis: Verwenden Sie nicht GPIO8 (eingebaute LED), GPIO9 (Boot-Pin), GPIO20 oder GPIO21 (UART des seriellen Monitors).
  • Hinweis: Stecken Sie jedes Jumper-Kabel fest ein. Ein lockeres Kabel führt dazu, dass eine ganze Reihe oder Spalte nicht mehr funktioniert.

※ Notiz:

Ein 3x4-Tastenfeld benötigt 7 Pins, und der ESP32 C3 Super Mini hat nur sehr wenige freie Pins. Diese Verdrahtung belegt fast jeden freien Pin der Platine. Danach sind nur noch GPIO0 und GPIO1 übrig. Planen Sie also voraus, wenn Ihr Projekt zusätzlich ein Display, ein Relais oder einen Sensor benötigt.

WARNING

Der ESP32 C3 Super Mini arbeitet nur mit 3,3-V-Logik. Verbinden Sie niemals einen Pin des Tastenfelds mit 5V. 5V an einem GPIO-Pin kann die Platine beschädigen.

ESP32 C3 Super Mini Code - Eine Taste auslesen

Dieser erste Sketch gibt die gedrückte Taste im seriellen Monitor aus.

Was dieser Code macht:

  • Legt GPIO2, GPIO3, GPIO4 und GPIO5 als die 4 Reihen-Pins fest.
  • Legt GPIO6, GPIO7 und GPIO10 als die 3 Spalten-Pins fest.
  • Tastet das Tastenfeld im Hintergrund mit der DIYables_Keypad-Bibliothek ab.
  • Liest pro Schleifendurchlauf eine Taste mit der Funktion getKey().
  • Gibt diese Taste im seriellen Monitor mit 115200 Baud aus.
/* * 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-3x4 */ #include <DIYables_Keypad.h> // DIYables_Keypad library #define ROW_NUM 4 // four rows #define COLUMN_NUM 3 // three columns char keys[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; 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}; // The ESP32 C3 SuperMini pin GPIO6, GPIO7, GPIO10 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); delay(1000); Serial.println("Keypad 3x4 example"); } 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 3x4-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.
  • 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
  • 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.
  • Code kopieren: Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  • Code hochladen: Klicken Sie in der Arduino IDE auf die Schaltfläche Upload.
  • Seriellen Monitor öffnen: Stellen Sie die Baudrate auf 115200 ein.
  • Testen: Drücken Sie nacheinander einige Tasten auf dem Tastenfeld.
  • Ausgabe prüfen: Beobachten Sie, wie jede Taste im seriellen Monitor erscheint.
  • Profi-Tipp: Wenn die falsche Taste ausgegeben wird, tauschen Sie die Reihen- und Spaltenkabel. Die Flachbandkabel von Tastenfeldern haben nicht immer dieselbe Reihenfolge.
∞
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
Keypad 3x4 example 1 5 9 0 * #
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

Zeilenweise Code-Erklärung

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

Tastenfeld und Passwort

Ein Tastenfeld ist am nützlichsten, wenn es ein Passwort prüft, wie bei einem Türschloss oder einem PIN-Pad.

  • Normale Taste (0-9): Fügt die Taste dem Passwort hinzu, das der Benutzer eingibt.
  • Taste "*": Löscht das eingegebene Passwort und beginnt von vorn.
  • Taste "#": Vergleicht das eingegebene Passwort mit dem gespeicherten und löscht es dann.
  • Übereinstimmung: Gibt ACCESS GRANTED aus und führt dann Ihre eigene Aktion aus.
  • Keine Übereinstimmung: Gibt ACCESS DENIED aus.

ESP32 C3 Super Mini Code - Tastenfeld-Passwort

Dieser zweite Sketch verwandelt das Tastenfeld in ein einfaches PIN-Pad.

Was dieser Code macht:

  • Speichert ein Passwort im Sketch. Das Standardpasswort ist 7890.
  • Baut das eingegebene Passwort Taste für Taste in einem String auf.
  • Löscht das eingegebene Passwort, wenn Sie "*" drücken.
  • Prüft das eingegebene Passwort, wenn Sie "#" drücken.
  • Gibt ACCESS GRANTED oder ACCESS DENIED im seriellen Monitor aus.
/* * 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-3x4 */ #include <DIYables_Keypad.h> // DIYables_Keypad library #define ROW_NUM 4 // four rows #define COLUMN_NUM 3 // three columns char keys[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; 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}; // The ESP32 C3 SuperMini pin GPIO6, GPIO7, GPIO10 connect to the column pins DIYables_Keypad keypad = DIYables_Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password = "7890"; // 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 Ihren ESP32 C3 Super Mini.
  • Seriellen Monitor öffnen: Stellen Sie die Baudrate auf 115200 ein.
  • Falschen Code ausprobieren: Drücken Sie 1, 2, 3, 4, 5, 6 und dann "#".
  • Richtigen Code ausprobieren: Drücken Sie 7, 8, 9, 0 und dann "#".
  • Ausgabe prüfen: Lesen Sie das Ergebnis im seriellen Monitor.
  • Profi-Tipp: Drücken Sie jederzeit "*", wenn Sie sich vertippt haben. Damit wird die Eingabe gelöscht, ohne sie zu prüfen.
∞
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 5 6 # The password is incorrect, ACCESS DENIED! 7 8 9 0 # The password is correct, ACCESS GRANTED!
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

Anwendungs-/Projektideen

Ein 3x4-Tastenfeld ist der Eingabeteil vieler kleiner Sicherheits- und Steuerungsprojekte.

  • Türschloss: Öffnen Sie ein Relais oder ein Magnetschloss, wenn die richtige PIN eingegeben wird.
  • Tresor: Verlangen Sie eine lange Tastenfolge, bevor sich der Deckel öffnen lässt.
  • Alarm-Tastenfeld: Schalten Sie eine Alarmanlage mit einem kurzen Code scharf und unscharf.
  • Zugangsprotokoll: Speichern Sie jeden Tastendruck mit einem Zeitstempel auf einer SD-Karte.
  • Einfacher Taschenrechner: Verwenden Sie 0-9 und "*" sowie "#" als Rechentasten.
  • Menüeingabe: Geben Sie eine Menünummer ein, um einen Eintrag auf einem LCD-Bildschirm auszuwählen.

Fordern Sie sich selbst heraus

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

  • Einfach: Ändern Sie das gespeicherte Passwort in Ihren eigenen 6-stelligen Code und testen Sie ihn.
  • Einfach: Lassen Sie die eingebaute LED an GPIO8 bei jedem Tastendruck einmal blinken.
  • Mittel: Zeigen Sie jede eingegebene Ziffer als Sternchen im seriellen Monitor an, um die PIN zu verbergen.
  • Mittel: Sperren Sie die Eingabe nach drei Fehlversuchen für 30 Sekunden.
  • Fortgeschritten: Speichern Sie das Passwort im Flash-Speicher, damit es einen Stromausfall übersteht, und fügen Sie eine Tastenfolge zum Ändern hinzu.
  • Fortgeschritten: Steuern Sie ein Relais und ein Magnetschloss an, damit die richtige PIN tatsächlich eine Tür öffnet.

Sprachreferenzen

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