ESP32 - Taster - Entprellung
Wenn ein Knopf gedrückt oder losgelassen wird oder wenn ein Schalter zwischen EIN und AUS umgeschaltet wird, ändert sich sein Zustand einmal von LOW zu HIGH (oder von HIGH zu LOW). Ist das richtig?
⇒ Nein, das ist nicht der Fall. Das liegt daran, dass in der physischen Welt, wenn man einen einzigen Druck auf einen Knopf ausführt, der Zustand des Knopfes schnell mehrmals zwischen LOW und HIGH umgeschaltet wird, statt nur einmal. Dies ist die mechanische und physikalische Eigenschaft. Dieses Phänomen ist unter dem Namen: Prellen. Das Prellen-Phänomen bewirkt, dass ein Mikrocontroller (z. B. ESP32) mehrere Tastendrücke als Reaktion auf einen einzigen tatsächlichen Druck liest. Dies führt zu einer Fehlfunktion. Der Prozess, dieses Phänomen zu beseitigen, wird als Entprellung bezeichnet. Dieses Tutorial zeigt, wie man das macht.

Dieses Tutorial bietet:
- Wie man die Entprellung einer Taste im ESP32-Code implementiert
- Wie man die Entprellung einer Taste im ESP32-Code mithilfe einer Bibliothek implementiert
- Wie man die Entprellung mehrerer Tasten im ESP32-Code mithilfe einer Bibliothek implementiert
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-Schaltfläche
Wir haben spezielle Tutorials zum Button. Das Tutorial enthält detaillierte Informationen und Schritt-für-Schritt-Anleitungen zur Hardware-Pinbelegung, zum Funktionsprinzip, zur Verkabelung zum ESP32 und zum ESP32-Code... Erfahren Sie mehr darüber unter den folgenden Links:
Verdrahtungsdiagramm

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.
Um es deutlich zu machen, lassen Sie uns ESP32-Code OHNE und MIT Entprellung ausführen und deren Ergebnisse vergleichen
Taste ohne Entprellung auslesen
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.
- Schließen Sie die Verkabelung wie im obigen Bild.
- 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 hoch, indem du in der Arduino IDE auf die Schaltfläche Hochladen klickst

- Öffne den seriellen Monitor in der Arduino-IDE

- Drücken Sie den Knopf einmal, halten Sie ihn dabei einige Sekunden lang gedrückt und lassen Sie ihn dann los.
- Sehen Sie das Ergebnis im seriellen Monitor. Es sieht wie folgt aus:
⇒ Wie du sehen kannst, hast du nur einen einzigen Tastendruck und das Loslassen gemacht, aber der ESP32 liest mehrere Tastendrücke und Loslassvorgänge.
※ Notiz:
Das Klapperphänomen tritt nicht ständig auf. Falls es nicht auftritt, versuchen Sie bitte den oben genannten Test mehrmals.
Auslesen einer Taste mit Entprellung
Schnelle Schritte
- Wenn Sie ESP32 zum ersten Mal verwenden, sehen Sie sich wie Sie die Entwicklungsumgebung für ESP32 in der Arduino IDE einrichten an.
- Kopieren Sie den folgenden Code und fügen Sie ihn in die Arduino IDE ein.
- Den Code für das ESP32-Board kompilieren und hochladen, indem Sie in der Arduino-IDE auf die Hochladen-Schaltfläche klicken
- Öffnen Sie den Seriellen Monitor in der Arduino-IDE

- Drücken Sie den Knopf mehrere Sekunden lang fest und lassen Sie ihn dann los.
- Sehen Sie das Ergebnis im seriellen Monitor. Es sieht unten so aus:
⇒ Wie Sie sehen können, haben Sie einen Tastendruck betätigt und losgelassen. Der ESP32 hat einen Tastendruck erfasst und losgelassen. Das Prellen ist eliminiert.
Wir haben es einfach gemacht - ESP32-Taster-Entprellcode mit Bibliothek
Um Anfängern den Einstieg zu erleichtern, insbesondere beim Entprellen mehrerer Tasten, haben wir eine Button-Bibliothek namens ezButton erstellt. Du kannst hier Hier kannst du mehr über die ezButton-Bibliothek erfahren.
ESP32-Entprellungscode für eine einzelne Taste
ESP32 Entprellungs-Code für mehrere Tasten
Schreiben wir Debounce-Code für drei Tasten.
Der Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
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
- DEBOUNCE_TIME-Wert hängt von der Hardware ab. Unterschiedliche Hardware kann unterschiedliche Werte verwenden.
- Die Entprellzeit sollte auch für Ein/Aus-Schalter, Endschalter, Reed-Schalter, Berührungssensoren gelten...