ESP8266 - Mehrere Tasten

Dieses Tutorial zeigt dir, wie man den ESP8266 so programmiert, dass er gleichzeitig mit mehreren Tasten arbeitet, ohne sich auf die Funktion delay() zu verlassen. Im Detail werden wir lernen:

Wir verwenden drei Buttons als Beispiele. Sie können es leicht anpassen, um es für zwei Buttons, vier Buttons oder sogar mehr anzupassen.

Erforderliche Hardware

1×ESP8266 NodeMCU
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-mount Button
1×Taster-Modul
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
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.

Über Button

Wenn Sie mit dem Taster nicht vertraut sind (Pinbelegung, Funktionsweise, Programmierung …), können Ihnen die folgenden Tutorials weitere Informationen liefern:

Verdrahtungsdiagramm

ESP8266 NodeMCU Verdrahtungsdiagramm für mehrere Tasten

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

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

ESP8266-Code - Mehrere Tasten mit Entprellung

Wenn mehrere Schaltflächen verwendet werden, kann es in bestimmten Szenarien kompliziert werden:

Glücklicherweise vereinfacht die ezButton-Bibliothek diesen Prozess, indem sie Entprellung und Button-Ereignisse intern verwaltet. Dadurch wird den Nutzern die Aufgabe abgenommen, Zeitstempel und Variablen bei der Nutzung der Bibliothek zu verwalten. Zusätzlich kann der Einsatz eines Button-Arrays die Klarheit und Kürze des Codes erhöhen.

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-multiple-button */ #include <ezButton.h> #define BUTTON_PIN_1 D5 // The ESP8266 pin connected to the button 1 #define BUTTON_PIN_2 D6 // The ESP8266 pin connected to the button 2 #define BUTTON_PIN_3 D7 // The ESP8266 pin connected to the button 3 ezButton button1(BUTTON_PIN_1); // create ezButton object for button 1 ezButton button2(BUTTON_PIN_2); // create ezButton object for button 2 ezButton button3(BUTTON_PIN_3); // create ezButton object for button 3 void setup() { Serial.begin(9600); button1.setDebounceTime(100); // set debounce time to 100 milliseconds button2.setDebounceTime(100); // set debounce time to 100 milliseconds button3.setDebounceTime(100); // set debounce time to 100 milliseconds } void loop() { button1.loop(); // MUST call the loop() function first button2.loop(); // MUST call the loop() function first button3.loop(); // MUST call the loop() function first // get button state after debounce int button1_state = button1.getState(); // the state after debounce int button2_state = button2.getState(); // the state after debounce int button3_state = button3.getState(); // the state after debounce /* Serial.print("The button 1 state: "); Serial.println(button1_state); Serial.print("The button 2 state: "); Serial.println(button2_state); Serial.print("The button 3 state: "); Serial.println(button3_state); */ if (button1.isPressed()) Serial.println("The button 1 is pressed"); if (button1.isReleased()) Serial.println("The button 1 is released"); if (button2.isPressed()) Serial.println("The button 2 is pressed"); if (button2.isReleased()) Serial.println("The button 2 is released"); if (button3.isPressed()) Serial.println("The button 3 is pressed"); if (button3.isReleased()) Serial.println("The button 3 is released"); }

Schnelle Schritte

Um mit dem ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:

  • Schau dir die Anleitung zur Einrichtung der ESP8266-Umgebung in der Arduino IDE an, falls dies dein erster Einsatz von ESP8266 ist.
  • Schließe die Komponenten wie im Diagramm gezeigt an.
  • Schließe das ESP8266-Board über ein USB-Kabel an deinen PC an.
  • Öffne die Arduino IDE auf deinem PC.
  • Wähle das richtige ESP8266-Board aus, z. B. NodeMCU 1.0 (ESP-12E Module), und den jeweiligen COM-Port.
  • Schließe die Verkabelung wie im obigen Bild an.
  • Schließe das ESP8266-Board über ein USB-Kabel an deinen PC an.
  • Öffne die Arduino IDE auf deinem PC.
  • Wähle das richtige ESP8266-Board (z. B. ESP8266 Uno) und den COM-Port.
  • Klicke auf das Libraries-Symbol in der linken Leiste der Arduino IDE.
  • Suche “ezButton”, und finde anschließend die ezButton-Bibliothek von ArduinoGetStarted.
  • Klicke auf den Install-Button, um die ezButton-Bibliothek zu installieren.
ESP8266 NodeMCU-Tastenbibliothek
  • Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  • Kompilieren Sie den Code und laden Sie ihn auf das ESP8266-Board hoch, indem Sie in der Arduino IDE auf die Hochladen-Schaltfläche klicken
Wie lädt man ESP8266 NodeMCU-Code in die Arduino-IDE hoch?
  • Öffne den seriellen Monitor in der Arduino-IDE
  • Drücke hintereinander die Taste und lasse sie los
COM6
Send
The button 1 is pressed The button 1 is released The button 2 is pressed The button 2 is released The button 3 is pressed The button 3 is released
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

ESP8266-Code - Mehrere Tasten mithilfe eines Arrays

Wir können den obigen Code verbessern, indem wir ein Array von Schaltflächen verwenden. Der folgende Code verwendet dieses Array, um Button-Objekte zu verwalten.

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-multiple-button */ #include <ezButton.h> #define BUTTON_NUM 3 // the number of buttons #define BUTTON_PIN_1 D5 // The ESP8266 pin connected to the button 1 #define BUTTON_PIN_2 D6 // The ESP8266 pin connected to the button 2 #define BUTTON_PIN_3 D7 // The ESP8266 pin connected to the button 3 ezButton buttonArray[] = { ezButton(BUTTON_PIN_1), ezButton(BUTTON_PIN_2), ezButton(BUTTON_PIN_3) }; void setup() { Serial.begin(9600); for (byte i = 0; i < BUTTON_NUM; i++) { buttonArray[i].setDebounceTime(100); // set debounce time to 100 milliseconds } } void loop() { for (byte i = 0; i < BUTTON_NUM; i++) buttonArray[i].loop(); // MUST call the loop() function first for (byte i = 0; i < BUTTON_NUM; i++) { // get button state after debounce int button_state = buttonArray[i].getState(); // the state after debounce /* Serial.print("The button "); Serial.print(i + 1); Serial.print(": "); Serial.println(button_state); */ if (buttonArray[i].isPressed()) { Serial.print("The button "); Serial.print(i + 1); Serial.println(" is pressed"); } if (buttonArray[i].isReleased()) { Serial.print("The button "); Serial.print(i + 1); Serial.println(" is released"); } } }

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.

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