ESP32 S3 - Tastenfeld 1x4

Diese Anleitung führt Sie durch das Anschließen und Programmieren eines 1x4-Tastenfelds mit einem ESP32 S3. Sie lernen, wie jede Taste einem GPIO-Pin zugeordnet ist und wie Sie mit der ezButton-Bibliothek das Entprellen sauber handhaben, ohne andere Teile Ihres Sketches zu stören.

Was Sie umsetzen werden:

  1. Eine 1x4-Tastenfeld-Schaltung, die mit Jumperkabeln an den ESP32 S3 angeschlossen ist.
  2. Code, der erkennt, welche Taste gedrückt wurde, und deren Beschriftung im seriellen Monitor ausgibt.
  3. Einen entprellten Tastenfeld-Leser, der falsche Mehrfach-Tastendrücke verhindert.
  4. Eine Grundlage, die Sie für Passworteingabe, Menünavigation oder Gerätesteuerung erweitern können.

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

Ein 1x4-Tastenfeld enthält vier Folientasten, die in einer einzigen Reihe angeordnet sind, und ist damit ein kompaktes Eingabegerät für Embedded-Projekte. Es wird häufig verwendet, damit Benutzer Daten wie Passwörter eingeben, durch einfache Menüs navigieren oder Geräteaktionen auslösen können, ohne eine vollständige Tastatur zu benötigen.

Wichtige Spezifikationen

Das 1x4-Tastenfeld wird über fünf Pins angeschlossen und arbeitet mit 3,3-V-Logikpegeln, was perfekt zur GPIO-Spannung des ESP32 S3 passt. Jede Taste wirkt als Taster zwischen ihrem eigenen Pin und dem gemeinsamen Pin, sodass bei Verwendung der internen Pull-up-Widerstände des Mikrocontrollers kein externer Pull-up- oder Pull-down-Widerstand erforderlich ist.

Pinbelegung

Das 1x4-Tastenfeld hat fünf Pins, deren Reihenfolge nicht mit den auf der Folie aufgedruckten Tastenbeschriftungen übereinstimmt.

  1. Pin 1: verbunden mit Taste 2
  2. Pin 2: verbunden mit Taste 1
  3. Pin 3: verbunden mit Taste 4
  4. Pin 4: verbunden mit Taste 3
  5. Pin 5: mit allen Tasten verbunden; dies ist der gemeinsame Pin
Tastenfeld 1x4 Pinbelegung
image source: diyables.io

Verdrahtungsdiagramm

Verbinden Sie jeden der vier Tasten-Pins des Tastenfelds mit einem eigenen GPIO-Pin des ESP32 S3 und den gemeinsamen Pin (Pin 5) mit GND. Die internen Pull-up-Widerstände des ESP32 S3 halten jeden GPIO auf HIGH, bis eine Taste gedrückt wird.

Sicherheitshinweise

Verbinden Sie den gemeinsamen Pin des Tastenfelds immer mit GND und aktivieren Sie die internen Pull-up-Widerstände im Code, damit die GPIO-Pins nie undefiniert (floating) sind. Verlegen Sie die Kabel des Tastenfelds nicht in der Nähe von Leiterbahnen mit hohem Strom oder Relaisspulen, da elektrische Störungen zu falschen Tastenerkennungen führen können.

| Tastenfeld 1x4 | ESP32 S3 |

|:---|:---|

| Pin 1 (Taste 2) | GPIO5 |

| Pin 2 (Taste 1) | GPIO4 |

| Pin 3 (Taste 4) | GPIO7 |

| Pin 4 (Taste 3) | GPIO6 |

| Pin 5 (gemeinsam) | GND |

ESP32 S3 Tastenfeld 1x4 Schaltplan

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

ESP32-S3-Code

Jede Taste des 1x4-Tastenfelds verhält sich wie ein Taster, daher liest der ESP32 S3 sie mit digitalRead(). Physische Tasten prellen jedoch, wodurch ein einzelner Tastendruck als mehrere Ereignisse erkannt werden kann; daher ist Entprellen unerlässlich. Der folgende Code verwendet die ezButton-Bibliothek, um das Entprellen für alle vier Tasten automatisch zu übernehmen, wodurch der Sketch übersichtlich und leicht erweiterbar bleibt.

/* * 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-1x4 */ #include <ezButton.h> #define KEY_NUM 4 // the number of keys #define PIN_KEY_1 4 // The ESP32-S3 pin GPIO4 connected to the key 1 #define PIN_KEY_2 5 // The ESP32-S3 pin GPIO5 connected to the key 2 #define PIN_KEY_3 6 // The ESP32-S3 pin GPIO6 connected to the key 3 #define PIN_KEY_4 7 // The ESP32-S3 pin GPIO7 connected to the key 4 ezButton keypad_1x4[] = { ezButton(PIN_KEY_1), ezButton(PIN_KEY_2), ezButton(PIN_KEY_3), ezButton(PIN_KEY_4) }; void setup() { Serial.begin(9600); for (byte i = 0; i < KEY_NUM; i++) { keypad_1x4[i].setDebounceTime(100); // set debounce time to 100 milliseconds } } void loop() { int key = getKeyPressed(); if (key) { Serial.print("The key "); Serial.print(key); Serial.println(" is pressed"); } } int getKeyPressed() { for (byte i = 0; i < KEY_NUM; i++) keypad_1x4[i].loop(); // MUST call the loop() function first for (byte i = 0; i < KEY_NUM; i++) { // get key state after debounce int key_state = keypad_1x4[i].getState(); // the state after debounce if (keypad_1x4[i].isPressed()) return (i + 1); } return 0; }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Verdrahten Sie das Tastenfeld wie im obigen Schaltplan gezeigt mit dem ESP32 S3.
  3. Verbinden Sie das ESP32-S3-Board über ein USB-Type-C-Kabel mit Ihrem PC.
  4. Öffnen Sie die Arduino IDE auf Ihrem PC.
  5. Wählen Sie das richtige ESP32-S3-Board (z. B. ESP32S3 Dev Module) und den richtigen COM-Port aus.
  6. Klicken Sie auf das Symbol Libraries in der linken Leiste der Arduino IDE.
  7. Suchen Sie nach "ezButton" und finden Sie die Button-Bibliothek von ArduinoGetStarted.com.
  8. Klicken Sie auf die Schaltfläche Install, um die ezButton-Bibliothek zu installieren.
  • Search for ezButton created by ArduinoGetStarted.com 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
ezButton by ArduinoGetStarted.com
Button library supports debounce, pressed/released events and the press counting. It is easy to use with multiple buttons. The library can be used for push-button, momentary switches, toggle switch, magnetic contact switch (door sensor)... It is designed for not only beginners but also experienced users. More info
1.0.6
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 in der Arduino IDE auf die Schaltfläche Upload, um den Code auf den ESP32 S3 hochzuladen.
So laden Sie ESP32-S3-Code in der Arduino IDE hoch
  1. Öffnen Sie den seriellen Monitor in der Arduino IDE.
  2. Drücken Sie jede Taste des 1x4-Tastenfelds und prüfen Sie die Ausgabe im seriellen Monitor.

Profi-Tipp: Wenn eine Taste bei einem einzigen Druck mehrfach erkannt wird, erhöhen Sie das Entprellintervall in den ezButton-Einstellungen, um das mechanische Prellen Ihrer Tastenfeld-Folie herauszufiltern.

Ausgabe im seriellen Monitor

Öffnen Sie den seriellen Monitor mit 9600 Baud, um zu beobachten, welche Tasten der ESP32 S3 beim Drücken erkennt. Die folgenden Ausgaben zeigen eine typische Sitzung mit Zeitstempeln:

∞
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-03-10 09:14:01] 1 [2026-03-10 09:14:03] 2 [2026-03-10 09:14:05] 3 [2026-03-10 09:14:07] 4
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Anwendungen

Das 1x4-Tastenfeld bietet dem ESP32 S3 eine einfache, aber vielseitige Eingabeschnittstelle, die sich für viele Embedded-Projekte eignet. Hier einige typische Anwendungen:

  1. Passworteingabe: Verwenden Sie vier Tasten, um eine numerische PIN einzugeben, die ein relaisgesteuertes Türschloss oder einen Tresor entriegelt.
  2. Menünavigation: Weisen Sie den Tasten die Aktionen Auf, Ab, Auswählen und Zurück zu, um durch ein Menü auf einem OLED-Display zu navigieren.
  3. Modusauswahl: Wechseln Sie mit einem einzigen Tastendruck zwischen Betriebsmodi wie manuell, automatisch, Timer und Aus.
  4. Alarmsteuerung: Schalten Sie eine Alarmanlage mit Bewegungssensor durch Drücken einer festgelegten Tastenkombination scharf und unscharf.
  5. Punktezähler: Erhöhen oder verringern Sie bei einem Brettspiel einen Punktestand, der auf einem LCD-Bildschirm angezeigt wird.

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.

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

Herausforderungen

Über den einfachen Tastenfeld-Leser hinaus zu experimentieren ist der beste Weg, Ihr Verständnis der Eingabeverarbeitung auf dem ESP32 S3 zu vertiefen. Probieren Sie diese Herausforderungen aus, um Sicherheit mit fortgeschritteneren Techniken zu gewinnen:

  1. Anfänger: Ändern Sie den Code so, dass jede Taste eine andere LED umschaltet, die an einen GPIO-Pin des ESP32 S3 angeschlossen ist.
  2. Fortgeschritten: Implementieren Sie ein 4-stelliges PIN-System, das ein Relais entriegelt, wenn die richtige Folge eingegeben wird, und "Access Granted" oder "Access Denied" im seriellen Monitor ausgibt.
  3. Experte: Kombinieren Sie das 1x4-Tastenfeld mit einem OLED-Display, um ein vollständig navigierbares Menü zu bauen, mit dem der Benutzer Geräteeinstellungen ohne Computer auswählen und anpassen kann.

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