Arduino Nano ESP32 - Mehrere Tasten

Dieses Tutorial zeigt dir, wie man einen Arduino Nano ESP32 so programmiert, dass er gleichzeitig mit mehreren Tasten arbeitet, ohne die Funktion delay() zu verwenden. Das Tutorial bietet Code in zwei verschiedenen Varianten:

Wir verwenden drei Buttons als Beispiele. Sie können es leicht so anpassen, dass es für zwei Buttons, vier Buttons oder sogar mehr geeignet ist.

Erforderliche Hardware

1×Arduino Nano ESP32
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 Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano ESP32

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 Button (Pinbelegung, Funktionsweise, Programmierung ...) nicht vertraut sind, können Ihnen die folgenden Tutorials weitere Informationen bieten:

Verdrahtungsdiagramm

Schaltplan für mehrere Tasten am Arduino Nano ESP32

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

Arduino Nano ESP32-Code - Mehrere Tasten mit Entprellung

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

Glücklicherweise vereinfacht die ezButton-Bibliothek diesen Prozess, indem sie Entprellung und Knopf-Ereignisse intern verwaltet. Dies entlastet die Nutzer von der Aufgabe, Zeitstempel und Variablen zu verwalten, wenn sie die Bibliothek verwenden. Darüber hinaus kann die Verwendung eines Button-Arrays die Klarheit und Kürze des Codes verbessern.

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano ESP32 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/arduino-nano-esp32/arduino-nano-esp32-multiple-button */ #include <ezButton.h> #define BUTTON_PIN_1 D4 // The Arduino Nano ESP32 pin connected to the button 1 #define BUTTON_PIN_2 D5 // The Arduino Nano ESP32 pin connected to the button 2 #define BUTTON_PIN_3 D6 // The Arduino Nano ESP32 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 Arduino Nano ESP32 zu beginnen, befolgen Sie diese Schritte:

  • Wenn Sie neu bei Arduino Nano ESP32 sind, lesen Sie das Tutorial zum Einrichten der Umgebung für Arduino Nano ESP32 in der Arduino IDE.
  • Verdrahten Sie die Bauteile gemäß dem bereitgestellten Diagramm.
  • Schließen Sie das Arduino Nano ESP32-Board über ein USB-Kabel an Ihren Computer an.
  • Öffnen Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das Arduino Nano ESP32-Board und den entsprechenden COM-Port aus.
  • Verkabeln Sie gemäß dem obigen Bild.
  • Schließen Sie das Arduino Nano ESP32-Board über ein USB-Kabel an Ihren PC an.
  • Öffnen Sie die Arduino IDE auf Ihrem PC.
  • Wählen Sie das richtige Arduino Nano ESP32-Board (z. B. Arduino Nano ESP32 Uno) und den COM-Port aus.
  • Klicken Sie auf das Libraries-Symbol in der linken Leiste der Arduino IDE.
  • Suchen Sie „ezButton“, und finden Sie anschließend die Button-Bibliothek von ArduinoGetStarted.
  • Klicken Sie auf den Install-Button, um die ezButton-Bibliothek zu installieren.
Arduino Nano ESP32-Tasterbibliothek
  • Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  • Kompilieren und den Code auf das Arduino Nano ESP32-Board hochladen, indem Sie in der Arduino IDE auf die Hochladen-Schaltfläche klicken.
Wie man Arduino Nano ESP32-Code in der Arduino IDE hochlädt.
  • Öffne den seriellen Monitor in der Arduino-IDE
  • Drücke den Knopf nacheinander und lasse ihn 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  

Arduino Nano ESP32 Code - Mehrere Tasten mithilfe eines Arrays

Wir können den obigen Code verbessern, indem wir ein Array von Buttons verwenden. Der folgende Code nutzt dieses Array, um mit Button-Objekten umzugehen.

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano ESP32 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/arduino-nano-esp32/arduino-nano-esp32-multiple-button */ #include <ezButton.h> #define BUTTON_NUM 3 // the number of buttons #define BUTTON_PIN_1 D4 // The Arduino Nano ESP32 pin connected to the button 1 #define BUTTON_PIN_2 D5 // The Arduino Nano ESP32 pin connected to the button 2 #define BUTTON_PIN_3 D6 // The Arduino Nano ESP32 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!