ESP32 - Joystick - Servomotor
In diesem Tutorial lernen wir, wie man den ESP32 und einen Joystick verwendet, um zwei Servomotoren zu steuern oder ein Pan-Tilt-Kit mit Servos zu betreiben.
Ein Joystick verfügt über zwei integrierte Potentiometer, die zueinander orthogonal angeordnet sind (genannt X-Achse und Y-Achse). Diese Potentiometer liefern die analogen Werte (als X-Wert und Y-Wert bezeichnet) an den Pins VRX und VRY. Wir werden diese analogen Werte verwenden, um zwei Servomotoren unabhängig voneinander zu steuern: Der X-Wert steuert Servo Nr. 1 und der Y-Wert steuert Servo Nr. 2. Im Falle des Pan-Tilt-Kits erzeugt die Bewegung der beiden Servomotoren eine dreidimensionale Bewegung.
Es gibt zwei Anwendungsfälle:
- Anwendungsfall 1: Die Servomotoren drehen sich entsprechend der Bewegung des Daumenknopfs des Joysticks:
- Die Winkel der Servomotoren stehen im Verhältnis zu den X- und Y-Werten des Joysticks.
- Wenn wir den Joystick-Daumenknopf loslassen, kehren alle Werte zu den Mittelpunktwerten zurück; die Servomotoren kehren automatisch in die Mittelposition zurück
- Anwendungsfall 2: Verwenden Sie den Joystick, um Servomotoren zu steuern (Auf-/Ab-/Links-/Rechtsbefehle)
- Wenn der Joystick-Daumenknopf nach links gedrückt wird, bewege Servomotor Nr. 1 schrittweise im Uhrzeigersinn
- Wenn der Joystick-Daumenknopf nach rechts gedrückt wird, bewege Servomotor Nr. 1 schrittweise gegen den Uhrzeigersinn
- Wenn der Joystick-Daumenknopf nach oben gedrückt wird, bewege Servomotor Nr. 2 schrittweise im Uhrzeigersinn
- Wenn der Joystick-Daumenknopf nach unten gedrückt wird, bewege Servomotor Nr. 2 schrittweise gegen den Uhrzeigersinn
- Wenn wir den Joystick-Daumenknopf loslassen, kehren die Servomotoren nicht in die Mittelposition zurück
- Wenn der Joystick gedrückt wird (Druckknopf), kehren die Servomotoren in die Mittelposition zurück
- Wie man den ESP32 mit Joystick und Servomotor mithilfe eines Breadboards anschließt Breadboard
- Wie man den ESP32 mit Joystick und Servo-Motor mithilfe eines Schraubklemmen-Breakout-Boards anschließt Schraubklemmen-Breakout-Board
- Wenn Sie ESP32 zum ersten Mal verwenden, lesen Sie wie man die ESP32-Umgebung in der Arduino-IDE einrichtet.
- Verbinden Sie Joystick und Servo-Motor mit dem ESP32-Board wie im obigen Verdrahtungsdiagramm gezeigt.
- Verbinden Sie das ESP32-Board über ein Micro-USB-Kabel mit Ihrem PC
- Öffnen Sie die Arduino-IDE auf Ihrem PC.
- Wählen Sie das richtige ESP32-Board (z. B. ESP32 Dev-Modul) und den COM-Port aus.
- Klicken Sie auf das Bibliotheken-Symbol in der linken Leiste der Arduino-IDE.
- Geben Sie ESP32Servo im Suchfeld ein, suchen Sie dann nach der Servo-Bibliothek von Kevin Harrington,John K. Bennett.
- Klicken Sie auf die Schaltfläche Installieren, um die Servo-Bibliothek für ESP32 zu installieren.
- 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 ESP32 hochzuladen
- Öffne den seriellen Monitor
- Drücke den Joystick in irgendeine Richtung
- Sieh die Rotation des Servomotors
- Sieh das Ergebnis im seriellen Monitor
- Klicken Sie auf das Bibliotheken-Symbol in der linken Leiste der Arduino IDE.
- Suchen Sie „ezButton“, und finden Sie anschließend die Button-Bibliothek von ArduinoGetStarted.com
- Klicken Sie auf den Install-Button, um die ezButton-Bibliothek zu installieren.
- Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE
- Klicken Sie auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf den ESP32 hochzuladen
- Öffnen Sie den Serial Monitor
- Bewegen Sie den Joystick in eine Richtung
- Beobachten Sie die Drehung des Servomotors
- Sehen Sie das Ergebnis im Serial Monitor
- Der ESP32-ADC ist nicht völlig genau und muss möglicherweise für korrekte Ergebnisse kalibriert werden. Jedes ESP32-Board kann etwas unterschiedlich sein, daher müssen Sie den ADC für jedes einzelne Board kalibrieren.
- Die Kalibrierung kann schwierig sein, insbesondere für Anfänger, und liefert möglicherweise nicht immer die gewünschten exakten Ergebnisse.
In den nächsten Teilen werden wir den Code für beide Anwendungsfälle untersuchen.
Erforderliche Hardware
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) |
Über Joystick und Servomotor
Wenn Sie nichts über Joysticks und Servomotoren wissen (Pinbelegung, wie sie funktionieren, wie man sie programmiert ...), informieren Sie sich in den folgenden Tutorials darüber:
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
ESP32-Code – Die Servomotoren drehen sich entsprechend der Bewegung des Daumens am Joystick.
Schnelle Schritte


Sie haben vielleicht bemerkt, dass der Servomotor sich nicht proportional zur Joystick-Bewegung bewegt. Dieses Problem liegt nicht am Joystick oder am Servomotor selbst, sondern am ADC des ESP32. Am Ende dieses Tutorials wird erklärt, warum das geschieht.
ESP32-Code – Verwenden Sie den Joystick, um Servomotoren anzusteuern
Schnelle Schritte

Code-Erklärung
Lies die zeilenweise Erklärung in den Kommentarzeilen des Quellcodes!
※ Notiz:
Dieses Tutorial verwendet die Funktion analogRead(), um Werte von einem ADC (Analog-zu-Digital-Wandler) zu lesen, der an einen Joystick angeschlossen ist.
Der ESP32-ADC ist gut geeignet für Projekte, die keine hohe Genauigkeit benötigen.
Für Projekte, die präzise Messungen benötigen, beachten Sie bitte:
Für Projekte, die eine hohe Präzision benötigen, erwägen Sie die Verwendung eines externen ADCs (z. B. ADS1115) zusammen mit dem ESP32 oder die Verwendung eines Arduino, das über einen zuverlässigeren ADC verfügt.
Wenn Sie den ESP32-ADC dennoch kalibrieren möchten, 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.