Arduino Nano - Joystick
Dieses Tutorial erklärt Ihnen, wie man einen Joystick mit dem Arduino Nano verwendet. Im Detail werden wir lernen:
- Wie ein 2-Achsen-Joystick funktioniert
- Wie man den Joystick mit dem Arduino Nano verbindet und dafür programmiert
- Wie man die Werte des Joysticks in steuerbare Werte umwandelt, z. B. XY-Koordinaten sowie die Bewegungsrichtungen des Motors nach oben/unten bzw. nach links/rechts...

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 den 2-Achs-Joystick
Möglicherweise sind Sie schon an verschiedenen Orten auf einen Joystick gestoßen, zum Beispiel als Spielcontroller, als Spielzeug-Controller oder sogar an einer großen Maschine wie dem Bedienfeld eines Baggers.
Der Joystick besteht aus zwei Potentiometern, die zueinander senkrecht stehen, und einem Druckknopf. Daher erzeugt er die folgenden Ausgänge:
- Ein analoger Wert im Bereich von 0 bis 1023 (vom Arduino gelesen), der der horizontalen Position entspricht (bekannt als X-Koordinate)
- Ein analoger Wert im Bereich von 0 bis 1023 (vom Arduino gelesen), der der vertikalen Position entspricht (bekannt als Y-Koordinate)
- Ein digitaler Wert des Tasters (entweder HIGH oder LOW)
Deshalb:
- Zwei analoge Werte können zu 2D-Koordinaten zusammengeführt werden.
- Das Zentrum des 2D-Koordinatensystems ist die Ruheposition des Joysticks.
- Um die Richtung des Joysticks zu bestimmen, führen Sie einen Testcode aus, der diese Information im nächsten Abschnitt präsentiert.
Einige Anwendungen verwenden möglicherweise alle drei Ausgänge, während andere möglicherweise nur einige davon verwenden.
Die Pinbelegung des Joysticks
Ein Joystick hat 5 Pins:
- GND-Pin: Dieser muss mit GND (0 V) verbunden werden.
- VCC-Pin: Dieser muss mit VCC (5 V) verbunden werden.
- VRX-Pin: Dieser gibt einen analogen Wert aus, der der horizontalen Position entspricht (als X-Koordinate bekannt).
- VRY-Pin: Dieser gibt einen analogen Wert aus, der der vertikalen Position entspricht (als Y-Koordinate bekannt).
- SW-Pin: Dies ist die Ausgabe des Druckknopfs im Joystick. Er ist normalerweise offen. Wenn an diesem Pin ein Pull-up-Widerstand verwendet wird, ist der SW-Pin HIGH, wenn er nicht gedrückt ist, und LOW, wenn er gedrückt wird.

Wie es funktioniert
- Wenn Sie den Daumenstick des Joysticks nach links oder rechts bewegen, variiert die Spannung am VRX-Pin von 0 bis 5 V, wobei 0 links und 5 V rechts entspricht, was zu einem Messwert am analogen Pin des Arduino von 0 bis 1023 führt.
- Wenn Sie den Daumenstick des Joysticks nach oben oder unten bewegen, variiert die Spannung am VRY-Pin von 0 bis 5 V, wobei 0 oben und 5 V unten entspricht, was zu einem Messwert am analogen Pin des Arduino von 0 bis 1023 führt.
- Wenn Sie den Daumenstick des Joysticks in irgendeine Richtung bewegen, ändert sich die Spannung sowohl am VRX- als auch am VRY-Pin proportional zur Projektion der Position auf jeder Achse.
- Wenn Sie den Daumenstick des Joysticks von oben nach unten drücken, wird der im Joystick integrierte Drucktaster geschlossen. Wenn wir am SW-Pin einen Pull-up-Widerstand verwenden, ändert sich der Ausgang am SW-Pin von 5 V zu 0 V, wodurch sich der Messwert am digitalen Pin des Arduino von HIGH zu LOW ändert.
Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Siehe Der beste Weg, den Arduino Nano und andere Komponenten mit Strom zu versorgen.
So programmiert man für Joysticks
Der Joystick besteht aus zwei Komponenten: analog (X- und Y-Achse) und digital (Pushbutton):
- Für die analogen Teile (X- und Y-Achse) lesen Sie einfach den Wert vom analogen Eingangspin mit der [analogRead()]-Funktion.
- Für den digitalen Teil (Pushbutton): Es ist ein Knopf. Die einfachste und bequemste Möglichkeit, ihn zu verwenden, ist mit der ezButton-Bibliothek. Diese Bibliothek bietet Entprellung (Debounce) für Knöpfe sowie einen integrierten Pull-Up-Widerstand. Um mehr über Knöpfe zu erfahren, können Sie sich das Arduino Nano - Button-Tutorial ansehen. Der Code dafür wird in der nächsten Sitzung dieses Tutorials vorgestellt.
Nachdem wir die Werte von analogen Pins erhalten haben, müssen wir sie möglicherweise in steuerbare Werte umwandeln. Der folgende Abschnitt wird hierzu Beispielcodes bereitstellen.
Arduino Nano Quellcode
In diesem Abschnitt werden folgende Arduino Nano-Beispielcodes vorgestellt:
- Beispielcode: analoge Werte vom Joystick lesen
- Beispielcode: analoge Werte und Tastzustand vom Joystick lesen
- Beispielcode: analoge Werte in MOVE_LEFT, MOVE_RIGHT, MOVE_UP, MOVE_DOWN-Befehle konvertieren
- Beispielcode: analoge Werte in Winkel umwandeln, um zwei Servomotoren zu steuern (z. B. in einer Pan-Tilt-Kamera)
Liest analoge Werte vom Joystick
Schnelle Schritte
- Kopieren Sie den Code und öffnen Sie ihn in der Arduino-IDE.
- Klicken Sie auf die Hochladen-Schaltfläche, um den Code auf den Arduino Nano zu übertragen.
- Drücken Sie den Joystick-Knopf ganz durch und drehen Sie ihn in einer kreisförmigen Bewegung (im Uhrzeigersinn oder gegen den Uhrzeigersinn).
- Überprüfen Sie das Ergebnis im Serial Monitor.
Während du den Daumenstick des Joysticks drehst, behalte den seriellen Monitor im Auge.
Wenn der X-Wert 0 ist, notieren Sie die aktuelle Position als links, wobei das Gegenstück rechts ist.
Wenn der Y-Wert 0 ist, notieren oder merken Sie sich die aktuelle Position als oben, wobei das Gegenteil davon unten ist.
Liest analoge Werte und den Knopfzustand von einem Joystick
Schnelle Schritte
- Klicken Sie auf das Bibliotheken Symbol in der linken Seitenleiste der Arduino IDE.
- Suchen Sie nach „ezButton“ und finden Sie die Button-Bibliothek von ArduinoGetStarted.com.
- Dann klicken Sie auf den Installieren-Button, um die ezButton-Bibliothek zu installieren.

- Kopieren Sie den Code und öffnen Sie ihn mit der Arduino-IDE.
- Klicken Sie auf die Hochladen-Schaltfläche, um ihn an den Arduino Nano zu senden.
- Bewegen Sie den Daumenstick des Joysticks in die Richtungen links, rechts, oben und unten.
- Drücken Sie den Daumenstick von oben nach unten.
- Schauen Sie sich das Ergebnis im Serial Monitor an.
Konvertiert einen analogen Wert in Befehle zum Bewegen nach links, rechts, oben und unten
Schnelle Schritte
- Kopiere den Code und öffne ihn mit der Arduino-IDE.
- Klicke in der IDE auf die Hochladen-Schaltfläche, um den Code auf den Arduino Nano zu übertragen.
- Bewege den Joystick mit dem Daumen in jede Richtung.
- Überprüfe die Ergebnisse im Serial Monitor.
※ Notiz:
Zu jedem beliebigen Zeitpunkt könnte es keinen Befehl, einen Befehl oder zwei Befehle geben (z. B. UP und LEFT gleichzeitig).
Wandelt analoge Werte in Winkel um, um zwei Servomotoren zu steuern
Die Einzelheiten finden Sie im Tutorial mit dem Titel Arduino Nano - Joystick steuert Servomotor.
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.