ESP32 C3 Super Mini - Taster

Die Verwendung eines Tasters mit Ihrem ESP32 C3 Super Mini zu lernen, ist eine der wichtigsten Fähigkeiten für jedes Arduino-Projekt. Dieses Tutorial macht es Einsteigern leicht, die Verdrahtung, Programmierung und häufige Fehlerbehebung bei Tastern zu verstehen.

In diesem Tutorial lernen Sie:

ESP32 C3 Super Mini - Taster

※ Notiz:

Bevor wir den Taster vorstellen, möchten wir darauf hinweisen, dass Anfänger häufig zwei typische Fehler machen:

  1. Das Problem des schwebenden Eingangs:
    • Symptom: Wenn ein Taster an einen Eingangspin des ESP32 C3 Super Mini angeschlossen wird, ist der Zustand des Eingangspins zufällig und stimmt nicht mit dem Druckzustand 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.
  • Das Prellphänomen
    • Symptom: Der Code auf dem ESP32 C3 Super Mini liest den Zustand des Tasters und erkennt das Drück-Ereignis anhand der Zustandsänderung (HIGH zu LOW oder LOW zu HIGH). Wenn der Taster tatsächlich nur einmal gedrückt wird, erkennt der ESP32 C3 Super Mini Code mehrere Drücke statt nur einem.
    • Ursache: Aufgrund mechanischer und physikalischer Eigenschaften wechselt der Zustand des Eingangspins bei einem einzigen Tastendruck mehrmals schnell zwischen LOW und HIGH statt nur einmal
    • Lösung: ⇒ Entprellen. Die Details werden im Tutorial ESP32 C3 Super Mini - Taster - Entprellen beschrieben.

    Das Prellphänomen verursacht nur bei bestimmten Anwendungen Fehlfunktionen, bei denen die genaue Anzahl der Tastendrücke erkannt werden muss. Bei manchen Anwendungen ist es harmlos.

    Erforderliche Hardware

    1×ESP32 C3 Super Mini
    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×Breadboard-Taster mit Kappe
    1×Breadboard-Taster-Kit
    1×Panel-Drucktaster
    1×Taster-Modul
    1×Breadboard
    1×Verbindungskabel
    1×(Optional) DC-Stromanschluss

    Oder Sie können die folgenden Kits kaufen:

    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 Button

    Ein Drucktaster ist ein einfacher Schalter, der sich beim Drücken schließt und beim Loslassen öffnet.

    Gängige Tasterarten:

    • Drucktaster für Leiterplattenmontage (ideal für Breadboards)
    • Drucktaster für Panelmontage (für Projektgehäuse)
    • Tastermodule (mit eingebauten Pull-down-Widerständen)

    Warum Taster nützlich sind:

    • Einfache Benutzereingabe für ESP32 C3 Super Mini Projekte
    • Steuern Sie LEDs, Motoren und andere Ausgänge
    • Lösen Sie Aktionen und Ereignisse in Ihrem Code aus
    ESP32 C3 Super Mini Drucktaster

    Pinbelegung des Tasters

    Taster für Leiterplattenmontage (4 Pins)

    Ein Taster für Leiterplattenmontage hat vier Pins, die intern paarweise verbunden sind.

    Pinbelegung des Tasters

    Wichtige Punkte:

    • Es werden nur zwei Pins benötigt (aus unterschiedlichen Paaren)
    • Es gibt vier Verdrahtungsmöglichkeiten, die sich jedoch auf zwei praktische Methoden reduzieren
    • Vier Pins sorgen für Stabilität gegenüber der Druckkraft
    So verwenden Sie einen Taster

    Taster für Panelmontage (2 Pins)

    Ein Taster für Panelmontage hat zwei einfache Pins.

    Pinbelegung eines zweipoligen Drucktasters
    image source: diyables.io

    Tastermodul (3 Pins)

    Das Tastermodul enthält einen eingebauten Pull-down-Widerstand für einen zuverlässigen Betrieb.

    • GND: Mit Masse verbinden
    • VCC: Mit der 3,3V-Stromversorgung verbinden
    • OUT: Mit einem digitalen Eingangspin des ESP32 C3 Super Mini verbinden (gibt LOW aus, wenn nicht gedrückt, und HIGH, wenn gedrückt)

    Wie ein Taster funktioniert

    Der Taster verbindet oder trennt je nach Zustand zwei Pins.

    • Beim Drücken: Pin A wird mit Pin B verbunden
    • Beim Loslassen: Pin A wird von Pin B getrennt
    Wie ein Taster funktioniert

    ESP32 C3 Super Mini - Taster

    Ein Tasterpin wird mit einem digitalen Eingangspin des ESP32 C3 Super Mini verbunden, der andere mit VCC oder GND.

    Tasterzustand auslesen:

    • Ihr ESP32-Code liest den Zustand des Eingangspins
    • Der Zustand zeigt Ihnen, ob der Taster gedrückt ist oder nicht

    Eingangszustand und Druckzustand

    Der Zusammenhang zwischen dem Zustand des Eingangspins und dem Drücken des Tasters hängt von Ihrer Verdrahtung ab.

    Zwei gängige Verdrahtungsmethoden:

    1. Taster mit VCC verbunden:
      • Erfordert einen Pull-down-Widerstand
      • Taster gedrückt = HIGH-Signal
      • Taster losgelassen = LOW-Signal
  • Taster mit GND verbunden (empfohlen für Einsteiger):
    • Erfordert einen Pull-up-Widerstand
    • Taster gedrückt = LOW-Signal
    • Taster losgelassen = HIGH-Signal

    ※ Notiz:

    Wenn weder ein Pull-down- noch ein Pull-up-Widerstand verwendet wird, ist der Zustand des Eingangspins bei NICHT gedrücktem Taster zufällig HIGH oder LOW (instabil, nicht festgelegt). Dies wird als "Problem des schwebenden Eingangs" bezeichnet und führt zu Fehlfunktionen.

    Tipp für Einsteiger:

    • Verwenden Sie den internen Pull-up-Widerstand des ESP32 (keine externen Bauteile nötig)
    • Vereinfacht die Verdrahtung und reduziert den Hardwarebedarf

    Wiring Diagram between Button and ESP32 C3 Super Mini

    So verdrahten Sie verschiedene Tasterarten mit Ihrem ESP32 C3 Super Mini.

    Verdrahtung mit einem Taster für Leiterplattenmontage:

    Schaltplan ESP32 C3 Super Mini Taster

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

    Taster-Pin ESP32 C3 Super Mini Pin
    Pin A GPIO7
    Pin B GND

    Verdrahtung mit einem Taster für Panelmontage:

    Schaltplan ESP32 C3 Super Mini zweipoliger Drucktaster

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

    Taster-Pin ESP32 C3 Super Mini Pin
    Pin 1 GPIO7
    Pin 2 GND

    So programmieren Sie einen Taster

    Die Programmierung eines Tasters am ESP32 C3 Super Mini umfasst zwei einfache Schritte.

    Schritt 1: Den Pin mit internem Pull-up initialisieren:

    pinMode(D7, INPUT_PULLUP); // config GPIO7 as input pin and enable the internal pull-up resistor

    Schritt 2: Den Tasterzustand auslesen:

    int button_state = digitalRead(BUTTON_PIN);

    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 Verwendung eines Tasters zur Steuerung einer LED:

    • Wenn wir die LED beim Drücken des Tasters EIN und bei NICHT gedrücktem Taster AUS schalten möchten, SOLLTEN wir den ersten Fall verwenden.
    • Wenn wir die LED bei jedem Tastendruck zwischen EIN und AUS umschalten möchten, SOLLTEN wir den zweiten Fall verwenden.

    Beispiel: Erkennen einer Zustandsänderung von LOW zu HIGH:

    #define BUTTON_PIN 7 // GPIO7 pin connected to button int prev_state = HIGH; // the previous state from the input pin int button_state; // the current reading from the input pin void setup() { Serial.begin(115200); // initialize the pushbutton pin as an pull-up input pinMode(BUTTON_PIN, INPUT_PULLUP); } void loop() { // read the state of the switch/button: button_state = digitalRead(BUTTON_PIN); if(prev_state == LOW && button_state == HIGH) Serial.println("The state changed from LOW to HIGH"); // save the last state prev_state = button_state; }

    ESP32 C3 Super Mini Code

    Dieser Code liest den Tasterzustand aus und zeigt ihn im Serial Monitor an.

    Was der Code macht:

    • Konfiguriert Pin D2 als Eingang mit internem Pull-up-Widerstand
    • Liest den Tasterzustand fortlaufend aus
    • Gibt den Zustand (HIGH oder LOW) im Serial Monitor aus
    • Aktualisiert alle 100 Millisekunden

    Schnelle Schritte

    • Neu bei Arduino? Beginnen Sie zuerst mit unserer Anleitung ESP32 C3 Super Mini - Erste Schritte.
    • Bauteile verdrahten: Folgen Sie dem oben gezeigten Schaltplan.
    • Board anschließen: Verbinden Sie den ESP32 C3 Super Mini über ein USB-Kabel mit Ihrem Computer.
    • Arduino IDE öffnen: Starten Sie die Software auf Ihrem Computer.
    • Board auswählen: Wählen Sie ESP32 C3 Super Mini und den richtigen COM-Port.
    • Code hochladen: Kopieren Sie den folgenden Code und fügen Sie ihn in die Arduino IDE ein.
    #define BUTTON_PIN 7 // The ESP32 C3 SuperMini pin GPIO7 pin connected to button void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(115200); // initialize the button pin as an pull-up input (HIGH when the switch is open and LOW when the switch is closed) pinMode(BUTTON_PIN, INPUT_PULLUP); } void loop() { // read the state of the switch/button: int button_state = digitalRead(BUTTON_PIN); // print out the button's state Serial.println(button_state); }
    • Kompilieren und hochladen: Klicken Sie in der Arduino IDE auf die Schaltfläche Upload.
    So laden Sie ESP32 C3 Super Mini Code in der Arduino IDE hoch
    • Serial Monitor öffnen: Klicken Sie in der Arduino IDE auf das Serial-Monitor-Symbol.
    So öffnen Sie den Serial Monitor in der Arduino IDE
    • Taster testen: Drücken und lassen Sie den Taster mehrmals los.
    • Ergebnisse ansehen: Prüfen Sie die Ausgabe im Serial Monitor.
    • Profi-Tipp: Lassen Sie die Baudrate des Serial Monitors passend zu Ihrem Code auf 115200 eingestellt.

    Ausgabe im Serial Monitor

    ∞
    Newbiely | Arduino IDE 2.3.8
    ──
    ☐
    ✕
    File
    Edit
    Sketch
    Tools
    Help
    ESP32C3 Dev Module
    Newbiely.ino
    ···
    8 Serial.println("Hello World!");
    Output
    Serial Monitor
    Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
    New Line
    9600 baud
    1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0
    Ln 11, Col 1
    ESP32C3 Dev Module on COM15
    2

    Hinweis: 1 steht für HIGH (Taster losgelassen), 0 steht für LOW (Taster gedrückt).

    Zeile-für-Zeile-Erklärung des Codes

    Der obige ESP32 C3 Super Mini Code enthält eine Zeile-für-Zeile-Erklärung. Bitte lesen Sie die Kommentare im Code!

    ESP32 C3 Super Mini Code anpassen

    Erweitern wir den Code so, dass er Drück- und Loslass-Ereignisse erkennt, anstatt nur Zustände auszulesen.

    Was dieser angepasste Code macht:

    • Erkennt, wann der Taster gedrückt wird (Zustand wechselt von HIGH zu LOW)
    • Erkennt, wann der Taster losgelassen wird (Zustand wechselt von LOW zu HIGH)
    • Gibt für jedes Ereignis eine klare Meldung aus
    • Speichert den vorherigen Zustand, um Änderungen zu erkennen

    Schnelle Schritte

    /* * Dieser ESP32 C3 Super Mini Code wurde von newbiely.de entwickelt * Dieser ESP32 C3 Super Mini 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-c3/esp32-c3-super-mini-button */ #define BUTTON_PIN 7 // The ESP32 C3 SuperMini pin GPIO7 pin connected to button int prev_state = LOW; // The previous state from the input pin int button_state; // The current reading from the input pin void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(115200); // initialize the button pin as an pull-up input (HIGH when the switch is open and LOW when the switch is closed) pinMode(BUTTON_PIN, INPUT_PULLUP); } void loop() { // read the state of the switch/button: button_state = digitalRead(BUTTON_PIN); if (prev_state == HIGH && button_state == LOW) Serial.println("The button is pressed"); else if (prev_state == LOW && button_state == HIGH) Serial.println("The button is released"); // save the the last state prev_state = button_state; }
    • Code hochladen: Kompilieren Sie den Code und laden Sie ihn auf Ihr ESP32 C3 Super Mini Board hoch.
    • Serial Monitor öffnen: Zeigen Sie das Ausgabefenster an.
    • Testen: Drücken und lassen Sie den Taster los.
    • Ergebnisse beobachten: Prüfen Sie den Serial Monitor auf Ereignismeldungen.

    Ausgabe im Serial Monitor

    ∞
    Newbiely | Arduino IDE 2.3.8
    ──
    ☐
    ✕
    File
    Edit
    Sketch
    Tools
    Help
    ESP32C3 Dev Module
    Newbiely.ino
    ···
    8 Serial.println("Hello World!");
    Output
    Serial Monitor
    Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
    New Line
    9600 baud
    The button is pressed The button is released The button is pressed The button is pressed The button is released The button is pressed The button is released
    Ln 11, Col 1
    ESP32C3 Dev Module on COM15
    2

    ※ Notiz:

    • Der Serial Monitor kann mehrere Drück- und Loslass-Ereignisse ausgeben, obwohl Sie nur einmal gedrückt und losgelassen haben. Dies ist ein normales Verhalten des Tasters. Dieses Verhalten wird "Prellphänomen" genannt. Bei manchen Anwendungen benötigen wir eine Methode, um es zu beseitigen. Mehr dazu erfahren Sie im ESP32 C3 Super Mini - Tutorial zur Tasterentprellung.
    • Um es Einsteigern einfach zu machen, insbesondere bei der Verwendung mehrerer Taster, haben wir eine Bibliothek namens ezButton entwickelt. Sie können hier mehr über die ezButton-Bibliothek erfahren.
    • Wenn Sie das Tastermodul verwenden, konfigurieren Sie den Pin mit pinMode(BUTTON_PIN, INPUT). Das Modul gibt LOW aus, wenn es nicht gedrückt ist, und HIGH, wenn es gedrückt ist.

    Anwendungs-/Projektideen

    Hier sind kreative Möglichkeiten, Taster in Ihren ESP32 C3 Super Mini Projekten einzusetzen.

    • Steuern Sie LED-Helligkeit oder -Farben mit Tastendrücken
    • Erstellen Sie einen digitalen Zähler oder eine Anzeigetafel
    • Bauen Sie ein Quiz-Buzzer-System mit mehreren Tastern
    • Entwerfen Sie ein Sicherheitssystem mit tasteraktiviertem Alarm
    • Erstellen Sie eine Steuerung für einen Musikplayer (Abspielen, Pause, Überspringen)
    • Entwickeln Sie einen Ersatz für einen intelligenten Lichtschalter im Haus

    Video-Bereich

    Sehen Sie sich das folgende Video an, um eine visuelle Anleitung zu diesem Projekt zu erhalten.

    Fordern Sie sich heraus

    Bringen Sie Ihre Taster-Kenntnisse mit diesen Herausforderungen auf die nächste Stufe.

    • Einfach: Fügen Sie eine LED hinzu, die leuchtet, wenn der Taster gedrückt wird
    • Einfach: Zählen Sie, wie oft der Taster gedrückt wird, und zeigen Sie die Anzahl an
    • Mittel: Erstellen Sie eine Erkennung für langes Drücken, die bei kurzem und langem Drücken unterschiedliche Aktionen auslöst
    • Mittel: Implementieren Sie eine korrekte Entprellung, um mehrfache Erkennungen eines Drucks zu beseitigen
    • Fortgeschritten: Bauen Sie ein Kombinationsschloss mit mehreren Tastern und einer geheimen Codesequenz

    Zusätzliches Wissen

    Zu verstehen, wann Pull-up- oder Pull-down-Widerstände verwendet werden, ist für zuverlässige ESP32 C3 Super Mini Projekte unerlässlich.

    Wann Pull-up-/Pull-down-Widerstände verwendet werden:

    • SOLLTEN verwendet werden: Sensoren mit zwei Zuständen (offen/geschlossen) benötigen Widerstände, um klare HIGH/LOW-Signale zu erzeugen
      • Beispiele: Drucktaster, Schalter, magnetischer Kontaktschalter (Türsensor)
    • SOLLTEN NICHT verwendet werden: Sensoren, die Spannungspegel (LOW/HIGH) ausgeben, benötigen keine Widerstände

    Sprachreferenzen

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