ESP32 S3 - Taster
Die Verwendung eines Tasters mit Ihrem ESP32 S3 zu lernen ist eine der grundlegendsten Fähigkeiten in der Embedded-Entwicklung. Dieses Tutorial führt Sie durch alles, was Sie brauchen — Verdrahtung, Code und häufige Fallstricke — damit Sie jedem ESP32 S3 Projekt sicher eine Tastereingabe hinzufügen können.
Was Sie bauen werden:
- Eine Schaltung, die einen Taster mithilfe des internen Pull-up-Widerstands mit dem ESP32 S3 verbindet
- Einen Sketch, der den Tasterzustand ausliest und im Seriellen Monitor ausgibt
- Eine erweiterte Version, die Drück- und Loslass-Ereignisse getrennt erkennt
- Eine Grundlage für praxisnahe Anwendungen wie Zähler, Umschalter und Sicherheitsauslöser

※ Notiz:
Bevor wir den Taster vorstellen, möchten wir darauf hinweisen, dass es zwei häufige Fehler gibt, auf die Anfänger normalerweise stoßen:
- Das Problem des schwebenden Eingangs:
- Symptom: Wenn ein Taster an einen Eingangspin des ESP32 S3 angeschlossen wird, ist der Zustand des Eingangspins zufällig und stimmt nicht mit dem Drückzustand des Tasters überein.
- Ursache: Am Tasterpin wird KEIN Pull-down- oder Pull-up-Widerstand verwendet.
- Lösung: ⇒ Verwenden Sie einen Pull-down- oder Pull-up-Widerstand am Eingangspin. Die Details werden später in diesem Tutorial beschrieben.
- Symptom: Der Code auf dem ESP32 S3 liest den Zustand des Tasters und erkennt das Drückereignis anhand der Zustandsänderung (HIGH zu LOW oder LOW zu HIGH). Wenn der Taster tatsächlich nur einmal gedrückt wird, erkennt der ESP32 S3 Code mehrere Drücke statt nur einen.
- Ursache: Aufgrund mechanischer und physikalischer Eigenschaften wechselt der Zustand des Eingangspins bei einem einzigen Tasterdruck mehrmals schnell zwischen LOW und HIGH statt nur einmal
- Lösung: ⇒ Entprellung. Die Details werden im Tutorial ESP32 S3 - Taster - Entprellung beschrieben.
Das Prellphänomen verursacht nur bei bestimmten Anwendungen Fehlfunktionen, bei denen die genaue Anzahl der Drücke erkannt werden muss. Bei manchen Anwendungen ist es harmlos.
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Schaltplan zwischen Taster und ESP32 S3
Die folgenden Schaltpläne zeigen, wie Sie Taster für Leiterplatten- und Panelmontage mit Ihrem ESP32 S3 verbinden. Beide Konfigurationen verwenden den internen Pull-up-Widerstand, sodass keine externen Widerstände benötigt werden.
Sicherheitshinweise
Schließen Sie Ihren Taster immer an, bevor Sie das Board mit Strom versorgen. Der GPIO7-Pin des ESP32 S3 arbeitet mit 3,3V-Logik — verbinden Sie den Taster niemals direkt mit einer 5V-Quelle. Die Verwendung des internen Pull-ups mit einer Taster-zu-GND-Konfiguration ist für die meisten Anwendungen der sicherste und zuverlässigste Ansatz.
Verdrahtung mit einem Taster für Leiterplattenmontage:

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
| Pin des Tasters | Pin des ESP32 S3 |
|---|---|
| Pin A | GPIO21 |
| Pin B | GND |
Wie man einen Taster programmiert
Die Programmierung eines Tasters am ESP32 S3 erfordert nur zwei Schritte. Konfigurieren Sie zuerst den GPIO-Pin als Eingang mit aktiviertem internen Pull-up-Widerstand. Verwenden Sie dann digitalRead() in Ihrer Schleife, um den Pin-Zustand kontinuierlich abzufragen.
Schritt 1: Den Pin mit internem Pull-up initialisieren:
Schritt 2: Den Tasterzustand auslesen:
Zwei häufige Anwendungsfälle:
※ Notiz:
Es gibt zwei weit verbreitete Anwendungsfälle:
- Der erste Anwendungsfall: Wenn der Eingangszustand HIGH ist, tue etwas. Wenn der Eingangszustand LOW ist, tue etwas anderes.
- Der zweite Anwendungsfall: Wenn sich der Eingangszustand von LOW zu HIGH ändert, tue etwas. Wenn sich der Eingangszustand von HIGH zu LOW ändert, tue etwas anderes.
Je nach Anwendung wird einer davon verwendet. Zum Beispiel bei der Steuerung einer LED mit einem Taster:
- Wenn wir die LED einschalten möchten, solange der Taster gedrückt ist, und ausschalten, wenn der Taster NICHT gedrückt ist, SOLLTEN wir den ersten Fall verwenden.
- Wenn wir die LED bei jedem Tasterdruck zwischen EIN und AUS umschalten möchten, SOLLTEN wir den zweiten Fall verwenden.
Beispiel: Erkennen einer Zustandsänderung von LOW zu HIGH:
ESP32 S3 Code
Der folgende Sketch konfiguriert GPIO21 als Eingang mit internem Pull-up-Widerstand, fragt dann kontinuierlich den Tasterzustand ab und gibt ihn alle 100 Millisekunden im Seriellen Monitor aus. Er ist der ideale Ausgangspunkt, um zu verstehen, wie der ESP32 S3 digitale Eingangssignale eines physischen Tasters liest.
Schnelle Schritte
- Neu beim ESP32 S3? Absolvieren Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3.
- Bauteile verdrahten: Folgen Sie dem oben gezeigten Schaltplan.
- Board anschließen: Verbinden Sie den ESP32 S3 über ein USB-Kabel mit Ihrem Computer.
- Arduino IDE öffnen: Starten Sie die Software auf Ihrem Computer.
- Board auswählen: Wählen Sie ESP32 S3 und den richtigen COM-Port aus.
- Code hochladen: Kopieren Sie den folgenden Code und fügen Sie ihn in die Arduino IDE ein.
- Kompilieren und hochladen: Klicken Sie in der Arduino IDE auf die Schaltfläche Upload.

- Seriellen Monitor öffnen: Klicken Sie in der Arduino IDE auf das Symbol des Seriellen Monitors.

- Taster testen: Drücken Sie den Taster mehrmals und lassen Sie ihn wieder los.
- Ergebnisse ansehen: Prüfen Sie die Ausgabe im Seriellen Monitor.
- Profi-Tipp: Lassen Sie die Baudrate des Seriellen Monitors auf 115200 eingestellt, passend zum Aufruf Serial.begin(115200) in Ihrem Sketch.
Ausgabe im Seriellen Monitor
Hinweis: 1 steht für HIGH (Taster losgelassen), 0 steht für LOW (Taster gedrückt).
Zeilenweise Code-Erklärung
Der obige ESP32 S3 Code enthält eine zeilenweise Erklärung. Bitte lesen Sie die Kommentare im Code!
ESP32 S3 Code anpassen
Erweitern wir den Code, um einzelne Drück- und Loslass-Ereignisse zu erkennen, anstatt einfach den Rohzustand auszulesen. Dieser Ansatz ist in realen Anwendungen nützlicher, in denen Sie eine Aktion genau in dem Moment auslösen müssen, in dem der Taster gedrückt oder losgelassen wird.
Schnelle Schritte
- Umgebung einrichten: Wenn Sie den ESP32 S3 zum ersten Mal verwenden, lesen Sie, wie Sie die Umgebung für den ESP32 S3 in der Arduino IDE einrichten.
- Code ändern: Ersetzen Sie Ihren bisherigen Code durch den folgenden Code.
- Code hochladen: Kompilieren Sie den Code und laden Sie ihn auf Ihr ESP32 S3 Board hoch.
- Seriellen Monitor öffnen: Sehen Sie sich das Ausgabefenster an.
- Testen: Drücken Sie den Taster und lassen Sie ihn los.
- Ergebnisse beobachten: Prüfen Sie den Seriellen Monitor auf Ereignismeldungen.
Ausgabe im Seriellen Monitor
※ Notiz:
- Der Serielle Monitor kann mehrere Drück- und Loslass-Ereignisse ausgeben, obwohl Sie den Taster nur einmal gedrückt und losgelassen haben. Dies ist ein normales Verhalten des Tasters und wird als "Prellphänomen" bezeichnet. In manchen Anwendungen benötigen wir eine Methode, um es zu beseitigen. Mehr dazu erfahren Sie im ESP32 S3 - Taster-Entprellung-Tutorial.
- Um es Einsteigern einfacher zu machen, insbesondere bei der Verwendung mehrerer Taster, haben wir eine Bibliothek namens ezButton erstellt. Sie können hier mehr über die ezButton-Bibliothek erfahren.
- Wenn Sie das Tastermodul verwenden, setzen Sie den Pin auf pinMode(BUTTON_PIN, INPUT). Das Modul gibt LOW aus, wenn es nicht gedrückt ist, und HIGH, wenn es gedrückt ist.
Anwendungs-/Projektideen
Der Taster ist ein Baustein, der unzählige Möglichkeiten für ESP32 S3 Projekte eröffnet, von einfachen Anzeigen bis hin zu komplexen Steuerungssystemen.
- LED-Steuerung: Schalten oder dimmen Sie eine LED per Tasterdruck, um neben dem Auslesen von Eingängen auch die Ausgabesteuerung zu lernen.
- Digitaler Zähler: Zählen Sie Tasterdrücke und zeigen Sie die Summe auf einem OLED-Display oder im Seriellen Monitor an — ideal, um das Verfolgen von Zuständen zu lernen.
- Quiz-Buzzer: Verbinden Sie mehrere Taster mit verschiedenen GPIO-Pins des ESP32 S3 für ein Mehrspieler-Buzzersystem.
- Sicherheitsalarm: Aktivieren Sie einen Alarm oder senden Sie eine WLAN-Benachrichtigung, wenn ein Taster für eine bestimmte Dauer gedrückt wird.
- Musiksteuerung: Steuern Sie die Audiowiedergabe (Abspielen, Pause, Überspringen), indem Sie verschiedene Drückmuster Aktionen zuordnen.
- Intelligenter Lichtschalter: Ersetzen Sie einen herkömmlichen Wandschalter durch einen ESP32 S3 Taster, der das Licht zusätzlich per WLAN aus der Ferne steuert.
Video-Bereich
Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung zu diesem ESP32 S3 Projekt an.
Herausforderungen
Diese Übungen vertiefen Ihr Verständnis der Tastereingabe am ESP32 S3 und reichen von grundlegenden Verdrahtungsübungen bis zu anspruchsvolleren Interaktionsmustern.
- Anfänger: Fügen Sie eine LED hinzu, die leuchtet, solange der Taster gedrückt gehalten wird, und beim Loslassen erlischt.
- Anfänger: Zählen Sie, wie oft der Taster gedrückt wird, und geben Sie die laufende Summe im Seriellen Monitor aus.
- Fortgeschritten: Bauen Sie eine Langdruck-Erkennung, die je nachdem, ob der Druck kürzer oder länger als eine Sekunde ist, eine andere Aktion auslöst.
- Fortgeschritten: Implementieren Sie eine Software-Entprellung ohne Bibliothek, um fälschlich erkannte Mehrfachdrücke zu vermeiden.
- Experte: Erstellen Sie ein Zahlenschloss mit drei Tastern — nur die richtige Drückreihenfolge entriegelt einen simulierten Ausgang.
Zusätzliches Wissen
Zu verstehen, wann Pull-up- oder Pull-down-Widerstände eingesetzt werden, ist ein wichtiges Konzept für den Bau zuverlässiger ESP32 S3 Projekte mit digitalen Eingängen.
Wann Pull-up-/Pull-down-Widerstände verwendet werden:
- SOLLTEN verwendet werden: Sensoren mit zwei Zuständen (offen/geschlossen) benötigen Widerstände, um eindeutige HIGH/LOW-Signale zu erzeugen
- Beispiele: Drucktaster, Schalter, Magnetkontaktschalter (Türsensor)
- SOLLTEN NICHT verwendet werden: Sensoren, die Spannungspegel (LOW/HIGH) ausgeben, benötigen keine Widerstände
- Beispiele: Bewegungssensor, Berührungssensor




