Arduino Nano ESP32 - Joystick - Servomotor
In diesem Tutorial lernen wir, wie man den Arduino Nano ESP32 und einen Joystick verwendet, um zwei Servomotoren oder ein Pan-Tilt-Kit mit Servomotoren zu steuern.
Ein Joystick besitzt zwei eingebaute Potentiometer, die zueinander senkrecht ausgerichtet sind (X-Achse und Y-Achse). Diese Potentiometer liefern die analogen Werte (X-Wert und Y-Wert) an den Pins VRX und VRY. Wir verwenden diese analogen Werte, um zwei Servomotoren unabhängig voneinander zu steuern: Der X-Wert steuert Servo Nr. 1 und der Y-Wert steuert Servo Nr. 2. Im Pan-Tilt-Kit erzeugt die Bewegung der beiden Servomotoren eine dreidimensionale Bewegung.
Es gibt zwei Anwendungsfälle:
- Use case 1: Die Servomotoren drehen sich entsprechend der Bewegung des Joystick-Knopfs:
- Die Winkel der Servomotoren stehen im Verhältnis zu den X- und Y-Werten des Joysticks.
- Wenn wir den Joystick-Knopf loslassen ⇒ alle Werte kehren zu den Mittelwerten zurück ⇒ Die Servomotoren kehren automatisch in die Mittelposition zurück
- Use case 2: Verwenden Sie den Joystick, um Servomotoren zu steuern (Auf-/Ab-/Links-/Rechts-Befehle)
- Wenn der Joystick-Knopf nach links gedrückt wird, bewegen Sie den Servomotor Nr. 1 schrittweise im Uhrzeigersinn.
- Wenn der Joystick-Knopf nach rechts gedrückt wird, bewegen Sie den Servomotor Nr. 1 schrittweise gegen den Uhrzeigersinn.
- Wenn der Joystick-Knopf nach oben gedrückt wird, bewegen Sie den Servomotor Nr. 2 schrittweise im Uhrzeigersinn.
- Wenn der Joystick-Knopf nach unten gedrückt wird, bewegen Sie den Servomotor Nr. 2 schrittweise gegen den Uhrzeigersinn.
- Wenn wir den Joystick-Knopf loslassen ⇒ Die Servomotoren kehren nicht in die Mittelposition zurück
- Wenn der Joystick gedrückt wird (Taster), kehren die Servomotoren in die Mittelposition zurück
- Wenn Sie neu bei Arduino Nano ESP32 sind, lesen Sie das Tutorial zu wie man die Umgebung für Arduino Nano ESP32 in der Arduino IDE einrichtet.
- Verbinden Sie die Bauteile gemäß dem bereitgestellten Diagramm.
- Schließen Sie das Arduino Nano ESP32-Board mit einem USB-Kabel an Ihren Computer an.
- Starten Sie die Arduino IDE auf Ihrem Computer.
- Wählen Sie das Arduino Nano ESP32-Board und seinen entsprechenden COM-Port aus.
- Klicken Sie auf das Libraries-Symbol in der linken Symbolleiste der Arduino IDE.
- Geben Sie ServoESP32 in das Suchfeld 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 Schaltfläche Install, um die Servo-Bibliothek für Arduino Nano ESP32 zu installieren.
- Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE
- Klicken Sie auf die Schaltfläche Hochladen in der Arduino IDE, um den Code auf den Arduino Nano ESP32 hochzuladen
- Öffne den seriellen Monitor
- Drücke den Joystick in eine Richtung
- Sieh dir die Drehung des Servomotors an
- Sieh dir das Ergebnis im seriellen Monitor an
- Öffnen Sie den Bibliotheks-Manager, indem Sie auf das Symbol Bibliotheks-Manager in der linken Navigationsleiste der Arduino IDE klicken
- Suchen Sie „ezButton“, und finden Sie anschließend die Button-Bibliothek von ArduinoGetStarted.com
- Klicken Sie auf die Schaltfläche Installieren, um die ezButton-Bibliothek zu installieren.
- Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE.
- Klicken Sie auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf den Arduino Nano ESP32 hochzuladen.
- Öffnen Sie den seriellen Monitor.
- Drücken Sie den Joystick in eine Richtung.
- Sehen Sie die Rotation des Servomotors.
- Sehen Sie das Ergebnis im seriellen Monitor.
- Der ADC des Arduino Nano ESP32 ist nicht vollkommen genau und muss möglicherweise für korrekte Ergebnisse kalibriert werden. Jedes Arduino Nano ESP32-Board kann sich leicht unterscheiden, daher ist für jedes einzelne Board eine Kalibrierung erforderlich.
- Die Kalibrierung kann herausfordernd sein, insbesondere für Anfänger, und liefert möglicherweise nicht immer genau die gewünschten Ergebnisse.
Wir werden den Code für beide Anwendungsfälle in den nächsten Teilen untersuchen.
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über Joystick und Servomotor
Wenn Sie nichts über Joystick und Servomotor 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.
Arduino Nano ESP32-Code
Arduino Nano ESP32-Code - Die Servomotoren drehen sich entsprechend der Bewegung des Daumens am Joystick
Schnelle Schritte
Um mit dem Arduino Nano ESP32 zu beginnen, befolgen Sie diese Schritte:


Vielleicht haben Sie bemerkt, dass sich der Servomotor nicht proportional zur Bewegung des Joysticks bewegt. Dieses Problem liegt nicht am Joystick oder am Servomotor selbst, sondern am ADC des Arduino Nano ESP32. Am Ende dieses Tutorials wird erklärt, warum das geschieht.
Arduino Nano ESP32-Code – Den Joystick verwenden, um Servomotoren zu steuern
Schnelle Schritte

Code-Erklärung
Lies die zeilenweise Erklärung in den Kommentarzeilen des Quellcodes!
※ Notiz:
Dieses Tutorial verwendet die analogRead()-Funktion, um Werte von einem ADC (Analog-Digital-Wandler) zu lesen, der an einen Sensor oder eine Komponente angeschlossen ist. Der ADC des Arduino Nano ESP32 ist für Projekte geeignet, die keine hohe Genauigkeit erfordern. Für Projekte, die präzise Messungen erfordern, beachten Sie Folgendes:
Für Projekte, die eine hohe Präzision erfordern, sollten Sie in Erwägung ziehen, einen externen ADC (z. B. ADS1115) zusammen mit dem Arduino Nano ESP32 zu verwenden oder einen anderen Arduino zu nutzen, wie den Arduino Uno R4 WiFi, der einen zuverlässigeren ADC besitzt.
Wenn Sie das ADC des Arduino Nano ESP32 dennoch kalibrieren möchten, lesen Sie den 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.