Arduino-Code und Video: Joystick mit zwei Achsen
In diesem Tutorial werden wir untersuchen, wie man einen zweiachsigen XY-Joystick mit dem Arduino verwendet. Dieser Joystick kann unter anderem als Gamecontroller oder zur Steuerung von Roboterarmen eingesetzt werden. Der Schwerpunkt liegt auf der Erfassung der Joystickposition und des Zustands seines Drucktasters, die auf einem seriellen Monitor angezeigt werden können.

Während des Tutorials implementieren wir ein einfaches Programm, das die X- und Y-Positionen des Joysticks ausliest und im Arduino Serial Monitor anzeigt. Wenn der Joystick gedrückt wird, wird auch der Schaltzustand erkannt. Für eine detaillierte Erklärung des Codes achten Sie darauf, das Video bei den angegebenen Zeitstempeln anzusehen (im Video bei 00:00).
Hardware erklärt
Die Hauptkomponenten dieses Projekts sind das zweiachsige Joystick-Modul und das Arduino-Board. Das Joystick-Modul besteht aus zwei Potentiometern, eines für die X‑Achse und eines für die Y‑Achse, die analoge Werte entsprechend der Position des Joysticks liefern. Der Drucktaster am Joystick dient dazu, zu erkennen, wann der Joystick gedrückt wird.
Wenn Sie den Joystick bewegen, ändern die Potentiometer ihren Widerstand, der in Werte zwischen 0 und 1023 umgewandelt wird. Dadurch können wir die Position des Joysticks genau bestimmen. Der Drucktaster ist an einen digitalen Eingangspin des Arduino angeschlossen, wodurch wir seinen Zustand ohne externen Widerstand lesen können, indem wir die interne Pull-up-Funktion verwenden.
Details zum Datenblatt
| Hersteller | Generisch |
|---|---|
| Teilenummer | Joystick-Modul mit zwei Achsen |
| Logik-/I/O‑Spannung | 5 V |
| Versorgungsspannung | 5 V |
| Ausgangsspannungsbereich | 0 - 5 V |
| Auflösung | 10-Bit (0-1023) analog |
| Schaltertyp | Druckknopf |
| Paket | Standardmodul |
- Stellen Sie eine ordnungsgemäße Stromversorgung (5 V) für das Joystick-Modul sicher.
- Schließen Sie die X- und Y-Ausgänge des Joysticks an die analogen Pins A0 bzw. A1 an.
- Verwenden Sie den digitalen Pin 6 für den Joystick-Schalter.
- Verwenden Sie eine Konfiguration mit Pull-up-Widerstand für den Schaltpin.
- Überwachen Sie die Ausgabewerte, um sicherzustellen, dass sie im Bereich von 0 bis 1023 liegen.
Verdrahtungsanleitung


Um den Joystick mit zwei Achsen an den Arduino zu verkabeln, beginne damit, den Masse-Pin des Joysticks mit der Masse-Schiene auf deinem Breadboard zu verbinden. Verbinde als Nächstes den 5V-Pin des Joysticks mit der Plus-Schiene auf dem Breadboard. Die beiden variablen Pins am Joystick, mit X und Y beschriftet, sollten mit den analogen PinsA0undA1auf dem Arduino beziehungsweise.
Schließen Sie den Drucktaster am Joystick an einen digitalen Pin an.6am Arduino. Diese Verbindung nutzt den internen Pull-up-Widerstand, sodass du keinen externen Widerstand brauchst. Schließlich, wenn du den Schaltzustand mit einer LED überwachen möchtest, verbinde das längere Bein der LED mit dem digitalen Pin13und das kürzere Bein über einen 680-Ohm-Widerstand an Masse.
Codebeispiele und Schritt-für-Schritt-Anleitung
Im Arduino-Code definieren wir den Pin für den Schalter und geben die Bildschirmabmessungen zur Zuordnung der Joystick-Werte an. Die setup-Funktion initialisiert die serielle Kommunikation und setzt den Pin-Modus für den Schalter.
void setup() {
Serial.begin(9600); // initialize serial communication
pinMode(sw, INPUT_PULLUP); // setting pin sw as input
pinMode(13, OUTPUT); // LED pin
}In der loop()-Funktion lesen wir die analogen Werte für die X- und Y-Positionen und bilden sie auf die definierten Bildschirmabmessungen ab. Der Zustand des Schalters wird ebenfalls gelesen und im Serial Monitor ausgegeben.
void loop() {
int x = analogRead(A0); // read analog value for X
int y = analogRead(A1); // read analog value for Y
int sStat = digitalRead(sw); // read switch state
// Print values to Serial Monitor
Serial.print("X: ");
Serial.print(xPos);
Serial.print(" Y: ");
Serial.println(yPos);
}Schließlich prüft der Code, ob der Schalter gedrückt ist, und schaltet die LED je nach Schalterzustand ein oder aus. Dadurch wird eine visuelle Rückmeldung gegeben, wenn die Joystick-Taste betätigt wird.
if(sStat == LOW) {
Serial.println("Switch pressed");
digitalWrite(13, HIGH); // Turn LED ON
} else {
digitalWrite(13, LOW); // Turn LED OFF
}Um zu sehen, wie sich die Joystick-Werte in Echtzeit ändern, lade den Code auf dein Arduino und öffne den Serial Monitor. Die Werte werden alle halbe Sekunde aktualisiert und zeigen die aktuellen X- und Y-Positionen sowie den Schalterzustand an (im Video bei 01:30).
Vorführung / Was Sie erwartet
Wenn Sie den Joystick bewegen, sollten sich die X- und Y-Werte entsprechend ändern und im Bereich von 0 bis 1023 liegen. Wenn Sie die Joystick-Taste drücken, leuchtet die mit Pin 13 verbundene LED auf, was anzeigt, dass der Schalter aktiv ist. Wenn der Joystick zentriert ist, sollten Sie für beide Achsen Werte um etwa 512 sehen, abhängig von der Kalibrierung des Joysticks.
Video-Zeitstempel
- 00:00- Einführung in den zweiachsigen Joystick
- 01:30- Erklärung des Codes und Funktionalität
- 02:45- Verdrahtungsanleitung
- 03:15- Erwartete Ausgabe und Tests
Dinge, die Sie vielleicht brauchen
-
Amazon
Ressourcen & Referenzen
Noch keine Ressourcen vorhanden.
Dateien📁
Keine Dateien verfügbar.