ESP32 – Servo-Motor, gesteuert durch Potentiometer

Dieses Tutorial erklärt, wie man den ESP32 mit einem Servomotor und einem Potentiometer verwendet. Im Detail ist der Winkel eines Servomotors proportional zu dem vom Potentiometer abgelesenen Wert.

Erforderliche Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
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×Servo-Motor
1×Potentiometer
1×Alternativ: 10k Ohm Trimmer Potentiometer
1×(Alternativ) Potentiometer Kit
1×(Alternativ) Potentiometer Module with Knob
1×Breadboard
1×Verbindungskabel
1×(Optional) DC-Stromanschluss
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

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)
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 Potentiometer

Wir haben spezifische Tutorials zu Servomotoren und Potentiometern. Jedes Tutorial enthält detaillierte Informationen und Schritt-für-Schritt-Anleitungen zur Hardware-Pinbelegung, Funktionsweise, Verdrahtung mit dem ESP32, ESP32-Code... Erfahren Sie mehr darüber in den folgenden Links:

Verdrahtungsdiagramm

ESP32 Servomotor Potentiometer 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.

ESP32-Code

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser 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/esp32/esp32-servo-motor-controlled-by-potentiometer */ #include <Servo.h> #define PIN_POTENTIOMETER 36 // ESP32 pin GPIO36 (ADC0) onnected to potentiometer #define PIN_SERVO 26 // ESP32 pin GPIO26 onnected to servo motor Servo myServo; // create servo object to control a servo void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); myServo.attach(PIN_SERVO); // attaches ESP32 pin to the servo object } void loop() { // reads the value of the potentiometer (value between 0 and 4095) int analogValue = analogRead(PIN_POTENTIOMETER); // scales it to use it with the servo (value between 0 and 180) int angle = map(analogValue, 0, 4095, 0, 180); // sets the servo position according to the scaled value myServo.write(angle); // print out the value Serial.print("Analog value: "); Serial.print(analogValue); Serial.print(" => Angle: "); Serial.println(angle); delay(100); }

Schnelle Schritte

  • Wenn dies das erste Mal ist, dass Sie ESP32 verwenden, sehen Sie sich wie man die Umgebung für ESP32 in der Arduino IDE einrichtet.
  • Schließen Sie die Verdrahtung wie im obigen Bild an.
  • Schließen Sie das ESP32-Board mit einem Mikro-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.
  • Klicken Sie auf das Libraries-Symbol in der linken Leiste der Arduino IDE.
  • Geben Sie im Suchfeld ServoESP32 ein, suchen Sie dann nach der Servo-Bibliothek von Jaroslav Paral. Bitte beachten Sie, dass sowohl Version 1.1.1 als auch 1.1.0 von Fehlern betroffen sind. Wählen Sie bitte eine andere Version.
  • Klicken Sie auf die Install-Schaltfläche, um die Servo-Bibliothek für ESP32 zu installieren.
ESP32-Servomotor-Bibliothek
  • Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  • Kompilieren und laden Sie den Code auf das ESP32-Board hoch, indem Sie die Schaltfläche Hochladen in der Arduino IDE anklicken
Arduino IDE Code hochladen
  • Öffnen Sie den seriellen Monitor in der Arduino IDE.
So öffnest du den seriellen Monitor in der Arduino-IDE.
  • Stelle das Potentiometer ein.
  • Sieh dir die Rotation des Servomotors an.
  • Sieh dir das Ergebnis im Serial Monitor an. Es sieht wie folgt aus:
COM6
Send
Analog value: 0 => Angle: 0 Analog value: 85 => Angle: 14 Analog value: 201 => Angle: 35 Analog value: 286 => Angle: 50 Analog value: 370 => Angle: 65 Analog value: 444 => Angle: 78 Analog value: 521 => Angle: 91 Analog value: 608 => Angle: 106 Analog value: 690 => Angle: 121 Analog value: 793 => Angle: 139 Analog value: 907 => Angle: 159 Analog value: 4095 => Angle: 180 Analog value: 4095 => Angle: 180
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Zeilenweise Code-Erklärung

Der obige ESP32-Code enthält eine zeilenweise Erklärung. Bitte lesen Sie die Kommentare im Code!

※ Notiz:

Dieses Tutorial verwendet die Funktion analogRead(), um Werte von einem ADC (Analog-Digital-Wandler) zu lesen, der an ein Potentiometer angeschlossen ist. Der ESP32-ADC ist gut geeignet für Projekte, die keine hohe Genauigkeit benötigen. Allerdings sollten bei Projekten, die präzise Messungen erfordern, Folgendes beachtet werden:

  • Der ESP32-ADC ist nicht perfekt genau und muss möglicherweise kalibriert werden, um korrekte Ergebnisse zu erhalten. Jedes ESP32-Board kann etwas unterschiedlich sein, daher musst du den ADC für jedes einzelne Board kalibrieren.
  • Kalibrierung kann schwierig sein, besonders für Anfänger, und liefert möglicherweise nicht immer die exakten Ergebnisse, die du möchtest.

Für Projekte, die eine hohe Präzision benötigen, solltest du einen externen ADC (z. B. ADS1115) zusammen mit dem ESP32 verwenden oder einen Arduino verwenden, der einen zuverlässigeren ADC hat. Wenn du den ESP32-ADC dennoch kalibrieren möchtest, siehe ESP32 ADC Calibration Driver.

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!