ESP8266 - Taster - Servomotor

Dieses Tutorial erklärt dir, wie man einen ESP8266 und einen Knopf verwendet, um einen Servomotor zu steuern. Im Detail:

Der obige Prozess wird immer wiederholt.

Das Tutorial hat zwei Abschnitte:

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-Drucktaster
1×Taster-Modul
1×Servo-Motor
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 Servomotor und Knopf

Wenn Sie mit Servomotoren und Tastern nicht vertraut sind (einschließlich Pinbelegungen, wie sie funktionieren und wie man sie programmiert), können Ihnen die folgenden Tutorials helfen:

Verdrahtungsdiagramm

ESP8266 NodeMCU Taster Servomotor Verdrahtungsdiagramm

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.

Bitte beachten Sie, dass das oben gezeigte Verdrahtungsdiagramm nur für einen Servomotor mit geringem Drehmoment geeignet ist. Falls der Motor vibriert, statt sich zu drehen, muss eine externe Stromquelle verwendet werden, um dem Servomotor mehr Leistung zur Verfügung zu stellen. Unten wird das Verdrahtungsdiagramm mit einer externen Stromquelle für den Servomotor gezeigt.

ESP8266 NodeMCU-Servomotor: Verdrahtungsdiagramm der externen Stromversorgung

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

Bitte vergessen Sie nicht, den GND der externen Stromversorgung mit dem GND des ESP8266 zu verbinden.

ESP8266-Code - Knopf steuert Servomotor ohne Entprellung

/* * 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-button-servo-motor */ #include <Servo.h> #define BUTTON_PIN D1 // The ESP8266 pin connected to button's pin #define SERVO_PIN D5 // The ESP8266 pin connected to servo motor's pin Servo servo; // create servo object to control a servo int angle = 0; // The current angle of servo motor int prev_button_state; // The previous state of button int button_state; // The current state of button void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(BUTTON_PIN, INPUT_PULLUP); // Configure the ESP8266 pin to the input pull-up mode servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object servo.write(angle); button_state = digitalRead(BUTTON_PIN); } void loop() { prev_button_state = button_state; // save the last state button_state = digitalRead(BUTTON_PIN); // read new state if(prev_button_state == HIGH && button_state == LOW) { Serial.println("The button is pressed"); // change angle of servo motor if(angle == 0) angle = 90; else if(angle == 90) angle = 0; // rotate the servo motor to the angle position servo.write(angle); } }

Schnelle Schritte

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

  • Schauen Sie sich das Tutorial zur Einrichtung der ESP8266-Umgebung in der Arduino-IDE an, falls dies Ihr erster Einsatz mit ESP8266 ist.
  • Verbinden Sie die Komponenten gemäß dem Diagramm.
  • Schließen Sie das ESP8266-Board mit einem USB-Kabel an Ihren Computer an.
  • Schließen Sie das ESP8266 NodeMCU über ein USB-Kabel an Ihren Computer an.
  • Öffnen Sie die Arduino-IDE auf Ihrem Computer.
  • Wählen Sie das richtige ESP8266-Board aus, z. B. NodeMCU 1.0 (ESP-12E-Modul), und seinen jeweiligen COM-Port.
  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino-IDE.
  • Klicken Sie auf die Schaltfläche Hochladen in der Arduino-IDE, um den Code zu kompilieren und auf den ESP8266 hochzuladen.
  • Drücken Sie den Knopf mehrmals.
  • Überprüfen Sie die Änderungen am Servomotor.

※ Notiz:

In der Praxis funktioniert der oben genannte Code nicht immer korrekt. Um sicherzustellen, dass er ordnungsgemäß funktioniert, müssen wir die Entprellung für den Knopf implementieren. Die Entprellung des Knopfs kann für ESP8266-Neulinge schwierig sein. Glücklicherweise macht die ezButton-Bibliothek diesen Prozess deutlich einfacher.

ESP8266-Code - Tastersteuerung eines Servo-Motors mit Entprellung

Warum ist das Entprellen notwendig? Siehe ESP8266 - Button Debounce tutorial für weitere Informationen.

/* * 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-button-servo-motor */ #include <Servo.h> #include <ezButton.h> #define BUTTON_PIN D1 // The ESP8266 pin connected to button's pin #define SERVO_PIN D5 // The ESP8266 pin connected to servo motor's pin ezButton button(BUTTON_PIN); // create ezButton object for pin 7; Servo servo; // create servo object to control a servo int angle = 0; // The current angle of servo motor void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. button.setDebounceTime(50); // set debounce time to 50 milliseconds servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object servo.write(angle); } void loop() { button.loop(); // MUST call the loop() function first if (button.isPressed()) { // change angle of servo motor if (angle == 0) angle = 90; else if (angle == 90) angle = 0; // rotate the servo motor to the angle position Serial.print("The button is pressed => rotate servo to "); Serial.print(angle); Serial.println("°"); servo.write(angle); } }

Schnelle Schritte

  • Installieren Sie die ezButton-Bibliothek. Siehe Anleitung für Anweisungen.
  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE.
  • Klicken Sie in der Arduino IDE auf die Hochladen-Schaltfläche, um den Code auf den ESP8266 hochzuladen.
  • Drücken Sie den Knopf mehrmals.
  • Schauen Sie sich die Änderungen am Servomotor an.

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!