ESP32 S3 - Tastenfeld 3x4

Erfahren Sie, wie Sie ein 3x4-Tastenfeld mit Ihrem ESP32-S3-Board verbinden und programmieren. Dieses Tutorial führt Sie durch das Auslesen einzelner Tastendrücke und den Aufbau eines Systems zur Passwortprüfung mit der DIYables-Keypad-Bibliothek.

Was Sie umsetzen werden:

  1. Einen Tastenfeld-Leser, der jede gedrückte Taste im seriellen Monitor ausgibt
  2. Ein Passworteingabesystem, das einen am Tastenfeld eingegebenen, benutzerdefinierten Code überprüft
  3. Eine Grundlage für Zugangskontrolle, bei der die Tasten "*" und "#" als Start- und Bestätigungsauslöser dienen
  4. Ein wiederverwendbares Muster für Türschlösser, PIN-Pads und andere per Eingabe gesicherte ESP32-S3-Projekte
ESP32 S3 - 3x4-Tastenfeld

Erforderliche Hardware

1×ESP32 S3 WROOM N16R8
1×(Alternativ) ESP32 S3 SuperMini Dev Module
1×(Alternativ) ESP32 S3 Uno-form Board
1×(Alternativ) ESP32 S3 Camera Board
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
1×(Empfohlen) Screw Terminal Expansion Board for ESP32 S3
1×(Empfohlen) Breakout Expansion Board for ESP32 S3
1×(Empfohlen) Power Splitter for ESP32 S3

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten)
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

Das 3x4-Tastenfeld ist ein Folien-Eingabegerät mit 12 Tasten, die in einem Raster aus vier Reihen und drei Spalten angeordnet sind. Jeder Tastendruck wird durch nacheinander abgefragte Reihen- und Spaltenverbindungen erkannt, sodass der ESP32 S3 mit nur sieben digitalen Pins genau feststellen kann, welche Taste gedrückt wurde.

Wichtige Spezifikationen

Das Tastenfeld hat sieben Pins – vier für die Reihen (R1 bis R4) und drei für die Spalten (C1 bis C3). Ein Pin für die Stromversorgung ist nicht erforderlich; das Tastenfeld nutzt ausschließlich die GPIO-Logikpegel des angeschlossenen Mikrocontrollers. Durch die Folienbauweise ist es dünn und kompakt, und das 3x4-Layout bietet die Tasten 0–9 sowie "*" und "#" für flexible numerische Eingaben. Das Tastenfeld ist vollständig mit 3,3-V-Logik kompatibel und passt daher ideal zum ESP32 S3.

Pinbelegung

Das 3x4-Tastenfeld hat 7 Pins, die in zwei Gruppen aufgeteilt sind:

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

Verdrahtungsdiagramm

Schließen Sie das 3x4-Tastenfeld an den ESP32 S3 an, indem Sie die Reihen- und Spalten-Pins des Tastenfelds der Reihe nach verfügbaren GPIO-Pins zuordnen. Die folgende Tabelle und der Schaltplan zeigen die empfohlene Verbindung für dieses Tutorial.

ESP32 S3 Tastenfeld 3x4 Schaltplan

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

Sicherheitshinweise

Das 3x4-Tastenfeld arbeitet vollständig mit 3,3-V-Logik und zieht nur vernachlässigbar wenig Strom, sodass allein durch diese Verbindung keine Gefahr für den ESP32 S3 besteht. Prüfen Sie vor dem Hochladen des Codes immer, ob jedes Kabel fest in seinem Steckplatz auf dem Breadboard sitzt – lose Verbindungen sind die häufigste Ursache für nicht erkannte Tastendrücke oder vertauschte Reihen und Spalten.

Tastenfeld-Pin ESP32-S3-Pin
R1 GPIO17
R2 GPIO16
R3 GPIO15
R4 GPIO7
C1 GPIO6
C2 GPIO5
C3 GPIO4

ESP32-S3-Code

Der folgende Code verwendet die Bibliothek DIYables_Keypad, um einzelne Tastendrücke auf dem an den ESP32 S3 angeschlossenen 3x4-Tastenfeld zu erkennen. Er initialisiert das Tastenfeld mit der Zuordnung der Reihen- und Spalten-Pins, fragt dann in der Hauptschleife fortlaufend Tastenereignisse ab und gibt jedes erkannte Zeichen im seriellen Monitor aus.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 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-s3/esp32-s3-keypad-3x4 */ #include <Keypad.h> #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] = {17, 16, 15, 7}; // GPIO17, GPIO16, GPIO15, GPIO7 connect to the row pins byte pin_column[COLUMN_NUM] = {6, 5, 4}; // GPIO6, GPIO5, GPIO4 connect to the column pins Keypad keypad = Keypad( makeKeymap(keys), 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

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Schließen Sie das 3x4-Tastenfeld gemäß dem obigen Schaltplan an den ESP32 S3 an.
  3. Verbinden Sie Ihren ESP32 S3 über ein USB-Type-C-Kabel mit Ihrem Computer.
  4. Öffnen Sie die Arduino IDE auf Ihrem Computer.
  5. Wählen Sie Ihr Board: Wählen Sie das richtige ESP32-S3-Board im Menü Tools > Board.
  6. Wählen Sie Ihren Port: Wählen Sie den richtigen COM-Port im Menü Tools > Port.
  7. Klicken Sie auf das Symbol Libraries in der linken Seitenleiste der Arduino IDE.
  8. Geben Sie DIYables_Keypad in das Suchfeld ein und suchen Sie die Keypad-Bibliothek von DIYables.io.
  9. Klicken Sie auf die Schaltfläche Install, um die Keypad-Bibliothek zu installieren.
  • Search for DIYables_Keypad created by DIYables.io and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 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
ESP32S3 Dev Module on COM15
1
  1. Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  2. Klicken Sie auf die Schaltfläche Upload, um den Sketch zu kompilieren und auf den ESP32 S3 hochzuladen.
  3. Öffnen Sie den seriellen Monitor in der Arduino IDE.
  4. Drücken Sie einige Tasten auf dem Tastenfeld und beobachten Sie die Ausgabe.
  5. Profi-Tipp: Wenn Tasten nicht richtig erkannt werden, vertauschen Sie im Code die Zuordnung der Reihen- und Spalten-Pins – Flachbandkabel von Tastenfeldern können je nach Hersteller unterschiedlich ausgerichtet sein.

Ausgabe im seriellen Monitor

Nachdem Sie den Code hochgeladen und den seriellen Monitor mit 115200 Baud geöffnet haben, drücken Sie die Tasten des 3x4-Tastenfelds nacheinander. Der serielle Monitor zeigt jede gedrückte Taste als Zeichen in einer eigenen Zeile an, ähnlich der folgenden Ausgabe.

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 09:14:01] Key pressed: 1 [2026-06-16 09:14:03] Key pressed: 5 [2026-06-16 09:14:05] Key pressed: 9 [2026-06-16 09:14:07] Key pressed: #
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Tastenfeld und Passwort

Eine häufige Verwendung des Tastenfelds ist die Eingabe und Überprüfung eines Passworts – die Grundlage für PIN-Pad- und Türschlossprojekte. Die Logik zur Passwortprüfung nutzt zwei Sondertasten zur Steuerung der Eingabe: Die Taste "*" löscht die aktuelle Eingabe und beginnt neu, während die Taste "#" die Eingabe abschließt und einen Vergleich mit dem im Sketch gespeicherten, vordefinierten Passwort auslöst.

Das Passwort wird Zeichen für Zeichen aus den übrigen Tasten zusammengesetzt. Wenn eine Taste gedrückt wird:

  • Ist die Taste weder "*" noch "#", wird sie zum vom Benutzer eingegebenen Passwort hinzugefügt.
  • Ist die Taste "#", wird das eingegebene Passwort mit dem vordefinierten Passwort verglichen und die Eingabe anschließend gelöscht.
  • Ist die Taste "*", wird das eingegebene Passwort ohne Prüfung gelöscht.

Tastenfeld - Passwort-Code

Der folgende Code erweitert den einfachen Tasten-Leser zu einem vollständigen System zur Passwortprüfung auf dem ESP32 S3. Er speichert ein vordefiniertes Passwort im Sketch, sammelt die Tastendrücke in einem Eingabe-String und gibt aus, ob der Zugang gewährt oder verweigert wird, wenn der Benutzer zur Bestätigung "#" drückt.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 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-s3/esp32-s3-keypad-3x4 */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-keypad */ #include <Keypad.h> #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] = {17, 16, 15, 7}; // GPIO17, GPIO16, GPIO15, GPIO7 connect to the row pins byte pin_column[COLUMN_NUM] = {6, 5, 4}; // GPIO6, GPIO5, GPIO4 connect to the column pins Keypad keypad = 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(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 } } }

Schnelle Schritte (Passwort-Beispiel)

  1. Laden Sie den Passwort-Code auf Ihren ESP32 S3 hoch.
  2. Öffnen Sie den seriellen Monitor.
  3. Drücken Sie die Tasten 123456 und anschließend #.
  4. Drücken Sie die Tasten 7890 und anschließend #.
  5. Prüfen Sie die Ergebnisse im seriellen Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 09:15:12] password is incorrect, try again [2026-06-16 09:15:18] password is correct
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Anwendungs- und Projektideen

Sobald Sie mit dem ESP32 S3 Tasten auslesen und Passwörter überprüfen können, lässt sich diese Grundlage für viele praktische Sicherheits- und Eingabeprojekte anpassen.

  1. Türschlosssystem: Steuern Sie mit der Passwortprüfung ein Relais oder ein Magnetschloss – entriegeln Sie, wenn die richtige PIN eingegeben wird.
  2. Tresorkombination: Verlangen Sie eine mehrstufige Tastenfolge, um ein Gehäuse zu öffnen oder ein Ereignis auszulösen.
  3. PIN-Pad für Alarmanlagen: Lassen Sie Benutzer eine Alarmanlage durch Eingabe eines Codes am Tastenfeld scharf- und unscharfschalten.
  4. Zugangsprotokoll: Speichern Sie jeden Tastendruck mit Zeitstempel auf einer SD-Karte, um nachzuvollziehen, wer einen gesicherten Bereich betreten hat.
  5. Taschenrechner: Ordnen Sie die Tasten 0–9 sowie "*" und "#" Rechenoperationen zu, um einen einfachen numerischen Taschenrechner zu bauen.
  6. Numerische Menünavigation: Verwenden Sie Reihen und Spalten als Richtungs- und Auswahlsteuerung für ein LCD-Menüsystem.
  7. PIN-System für mehrere Benutzer: Speichern Sie mehrere gültige Passwörter in einem Array und gewähren Sie Zugang, wenn eines davon übereinstimmt.

Video-Tutorial

Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung für dieses ESP32-S3-Projekt an.

Fordern Sie sich selbst heraus

Nachdem Sie mit dem 3x4-Tastenfeld am ESP32 S3 Tasten auslesen und Passwörter prüfen können, probieren Sie diese zunehmend anspruchsvollen Erweiterungen aus, um Ihr Verständnis zu vertiefen.

  1. Anfänger: Ändern Sie das vordefinierte Passwort im Sketch in einen sechsstelligen Code und prüfen Sie, ob es korrekt funktioniert.
  2. Anfänger: Zeigen Sie jeden Tastendruck auf einem I2C-LCD-Bildschirm statt im seriellen Monitor an.
  3. Fortgeschritten: Fügen Sie einen Summer hinzu, der bei jedem Tastendruck einmal piept und einen längeren Ton spielt, wenn das Passwort akzeptiert oder abgelehnt wird.
  4. Fortgeschritten: Implementieren Sie eine Sperre, die die Eingabe nach drei aufeinanderfolgenden falschen Passworteingaben für 30 Sekunden deaktiviert.
  5. Experte: Speichern Sie das Passwort im EEPROM oder NVS-Flash, damit es Stromunterbrechungen übersteht, und fügen Sie eine Tastenfolge hinzu, um das Passwort zur Laufzeit zu ändern.
  6. Experte: Bauen Sie ein vollständiges Türschlosssystem, indem Sie das Tastenfeld mit einem Relais, einem Magnetschloss und einem OLED-Display kombinieren, das Meldungen über gewährten oder verweigerten Zugang anzeigt.

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