ESP32 - Taster
Der Taster ist eine grundlegende Komponente und wird in vielen ESP32-Projekten häufig verwendet. Er ist nicht so einfach, wie es aussieht (aufgrund mechanischer und physikalischer Eigenschaften). Anfänger könnten damit viele Schwierigkeiten haben. Dieses Tutorial erleichtert den Anfängern den Einstieg. Lass uns anfangen!
※ Notiz:
Bevor wir über den Taster sprechen, möchten wir darauf hinweisen, dass es zwei häufige Fehler gibt, auf die Neulinge typischerweise stoßen:
- Das schwebende Eingangsproblem:
- Symptom: Wenn ein Taster an einen ESP32-Eingangspin angeschlossen wird, ist der Zustand des Eingangspins zufällig und stimmt nicht mit dem Drücken des Tasters überein.
- Ursache: Es wird kein Pull-Down-Widerstand oder Pull-Up-Widerstand am Eingangs-Pin verwendet.
- Lösung: ⇒ Verwenden Sie einen Pull-Down-Widerstand oder einen Pull-Up-Widerstand am Eingangspin. Die Details werden später in diesem Tutorial beschrieben.
- Symptom: Der Code auf dem ESP32 liest den Zustand des Tasters und identifiziert das Drück-Ereignis, indem er die Zustandsänderung erkennt (HIGH zu LOW, oder LOW zu HIGH). Wenn der Taster tatsächlich nur einmal gedrückt wird, erkennt der ESP32-Code mehrere Drückungen statt nur einmal.
- Ursache: Aufgrund mechanischer und physikalischer Eigenschaften wird beim einmaligen Drücken eines Tasters der Zustand des Eingangspins schnell zwischen LOW und HIGH mehrmals umgeschaltet, statt nur einmal.
- Lösung: ⇒ Entprellen. Die Details werden im ESP32 - Button - Debounce Tutorial beschrieben.
Das Prellen-Phänomen verursacht Fehlfunktionen nur in bestimmten Arten von Anwendungen, die exakt die Anzahl der Drückungen erkennen müssen. In einigen Anwendungen ist es harmlos.
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables ESP32 Starter-Kit (ESP32 enthalten) | |
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über die Schaltfläche
Der Druckknopf, auch als Drucktaster, taktiler Taster oder Momentanschalter bezeichnet, ist eine Art Schalter, der sich beim Drücken und Festhalten schließt und sich beim Loslassen öffnet. Verschiedene Arten von Druckknöpfen existieren, die grob in zwei Gruppen eingeteilt werden:
- PCB-mount push buttons (suitable for breadboard mounting)
- Panel-mount push buttons

Pinbelegung des Buttons
Ein auf einer Leiterplatte montierter Taster hat normalerweise vier Pins, die intern paarweise verbunden sind.

Wir müssen nur zwei der vier Pins verwenden, die nicht im selben verbundenen Paar liegen. Dementsprechend gibt es vier Möglichkeiten, die Verkabelung mit dem Knopf vorzunehmen (siehe unten das Bild „bimage“).

Aufgrund der Symmetrie werden diese vier Wege zu zwei Wegen. Der Rest dieses Tutorials wird zwei Pins verwenden: Pin A und Pin B, die nicht miteinander verbunden sind.
Warum hat der Knopf vier Pins, obwohl wir nur zwei Pins benötigen?
Der Knopf nimmt die von Benutzern ausgeübte Kraft auf. Um ihn stabil und fest auf der Leiterplatte (PCB) zu halten, verfügt er über vier Pins, die dem Druck standhalten.
Ein Taster zur Panelmontage hat normalerweise zwei Stifte.

Das Push-Button-Modul enthält einen eingebauten Pull-Down-Widerstand, der sicherstellt, dass der Ausgang LOW bleibt, wenn der Knopf nicht gedrückt wird. Es hat drei Pins:
- GND: Verbinden Sie diesen Pin mit der Masse.
- VCC: Verbinden Sie diesen Pin mit einer 3,3-V-Stromversorgung.
- OUT: Verbinden Sie diesen Pin mit einem digitalen Eingang an Ihrem ESP32.
Mit dieser Konfiguration gibt das Modul LOW aus, wenn der Knopf nicht gedrückt ist, und HIGH, wenn der Knopf gedrückt wird.
Wie der Button funktioniert
- Wenn der Taster gedrückt wird, ist Pin A mit Pin B verbunden.
- Wenn der Taster nicht gedrückt wird, ist Pin A nicht mit Pin B verbunden.

ESP32 - Taster
Der Pin eines Knopfes ist mit einem digitalen Eingangspin des ESP32 verbunden. Der andere Pin ist mit VCC oder GND verbunden. Im ESP32-Code kann man durch Auslesen des Zustands des Eingangspins erkennen, ob der Knopf gedrückt ist oder nicht.
Eingabestatus und Betätigungszustand
Der Zusammenhang zwischen dem Zustand des Eingangssignals und dem Betätigungszustand des Tasters hängt davon ab, wie wir den Taster mit dem ESP32 verbinden und wie der Pin des ESP32 konfiguriert ist. Es gibt zwei Möglichkeiten, einen Taster mit dem ESP32 zu verwenden:
- Der Pin eines Tasters ist mit einem digitalen Eingangspin des ESP32 verbunden, der andere Pin ist mit VCC verbunden:
- Es muss ein Pull-Down-Widerstand verwendet werden
- Wenn der Taster gedrückt ist, ist der Zustand des ESP32-Pins HIGH. Andernfalls ist der Zustand des ESP32-Pins LOW
- Es muss ein Pull-up-Widerstand verwendet werden
- Wenn der Taster gedrückt ist, ist der Zustand des ESP32-Pins LOW. Andernfalls ist der Zustand des ESP32-Pins HIGH
※ Notiz:
Wenn weder ein Pull-Down-Widerstand noch ein Pull-Up-Widerstand verwendet wird, ist der Zustand des Eingangspins zufällig zwischen HIGH und LOW (instabil, nicht festgelegt), wenn der Taster NICHT gedrückt wird. Dies wird als das „schwebendes Eingangsproblem“ bezeichnet. Dies führt zu einer Fehlfunktion.
Um es für Anfänger einfach zu machen, empfiehlt dieses Tutorial dringend die Verwendung eines internen Pull-up-Widerstands für den ESP32-Pin. Es ist kein externer Widerstand erforderlich. Das spart Hardware und vereinfacht das Verdrahtungsdiagramm.
Verdrahtungsschema zwischen Taster und ESP32
- Verdrahtungsdiagramm zwischen ESP32 und Taster auf der Leiterplatte

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.
- Verdrahtungsdiagramm zwischen ESP32 und panelmontiertem Taster

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
ESP32-Code
Schnelle Schritte
- Falls Sie ESP32 zum ersten Mal verwenden, lesen Sie wie man die Umgebung für ESP32 in der Arduino-IDE einrichtet.
- Schließen Sie die Verdrahtung wie im obigen Bild an.
- Schließen Sie das ESP32-Board über ein Micro-USB-Kabel an Ihren PC an.
- Öffnen Sie die Arduino-IDE auf Ihrem PC.
- Wählen Sie das richtige ESP32-Board (z. B. ESP32 Dev Module) und den COM-Port aus.
- Kopieren Sie den untenstehenden Code und fügen Sie ihn in die Arduino-IDE ein.
- Kompiliere und lade den Code auf das ESP32-Board, indem du auf den Hochladen-Button in der Arduino IDE klickst.

- Öffne den seriellen Monitor in der Arduino-IDE

- Drücken und loslassen Sie den Knopf mehrmals
- Sehen Sie das Ergebnis im Serial Monitor. Es sieht so aus wie unten:
1 ist hoch, 0 ist niedrig.
Zeile für Zeile Code-Erklärung
Der obige ESP32-Code enthält eine zeilenweise Erklärung. Bitte lesen Sie die Kommentare im Code!
Ändern des ESP32-Codes
Lassen Sie uns den Code so ändern, dass Drück- und Loslass-Ereignisse erkannt werden.
Schnelle Schritte
- Wenn Sie ESP32 zum ersten Mal verwenden, sehen Sie sich Wie man die Umgebung für ESP32 in der Arduino IDE einrichtet an.
- Passen Sie den Code wie unten an.
- Kompiliere und lade den Code auf das ESP32-Board hoch, indem du auf die Hochladen-Schaltfläche in der Arduino IDE klickst

- Öffne den seriellen Monitor in der Arduino-IDE

- Drücken Sie den Knopf und lassen Sie ihn danach los
- Sehen Sie das Ergebnis im seriellen Monitor. Es sieht unten so aus:
※ Notiz:
- Der Serial Monitor kann mehrere gedrückte und losgelassene Ereignisse ausgeben, obwohl Sie nur einen Druck- und Loslassvorgang durchgeführt haben. Dies ist ein normales Verhalten des Tasters. Dieses Verhalten wird als „Prellen-Phänomen“ bezeichnet. In einigen Anwendungen benötigen wir eine Methode, um es zu beseitigen. Sie können mehr dazu in ESP32 - Button Debounce Tutorial lernen.
- Um es Anfängern einfacher zu machen, insbesondere beim Einsatz mehrerer Taster, haben wir eine Bibliothek namens ezButton erstellt. Sie können hier mehr über die ezButton-Bibliothek erfahren.
- Für das Button-Modul verwenden Sie pinMode(BUTTON_PIN, INPUT). Es liefert LOW, wenn es nicht gedrückt ist, und HIGH, wenn es gedrückt 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.
Zusätzliches Wissen
Wann sollte man einen Pull-Down- bzw. Pull-Up-Widerstand verwenden und wann nicht?
- SOLLTE: Wenn der Sensor zwei Zustände hat: geschlossen und offen, benötigt er einen Pull-up- oder Pull-down-Widerstand, damit diese Zustände zu LOW und HIGH werden. Zum Beispiel Taster, Schalter, magnetischer Kontaktschalter (Türsensor)...
- SOLLTE NICHT: Wenn der Sensor zwei Spannungspegel (LOW und HIGH) ausgibt, benötigt er keinen Pull-up- oder Pull-down-Widerstand. Zum Beispiel Bewegungssensor, Berührungssensor ...