Arduino Lektion 38: Joystick

In diesem Tutorial möchte ich den 2 Achsen Joystick für den Arduino (und auch Raspberry PI) erläutern.

Joystick
Joystick

Den Joystick habe ich bereits erfolgreich in dem Weekend Project: Jump’n Run auf dem Arduino eingesetzt.

Der Joystick besteht aus 2 Teilen einmal der Knauf und die Elektronik.

Knauf & elektronik Teil des Joysticks.
Knauf & elektronik Teil des Joysticks.

Bezug

Der Joystick kann über ebay.de oder amazon.de für ca. 2€ bestellt werden.

Technische Daten des Joystick

  • Abmaße : 33mm x 25mm x 33mm (Länge x Breite x Höhe)
  • Spannung: 5V

Schaltplan

Der Joystick verfügt über 5 PINs welche wiefolgt an den Arduino angeschlossen werden:

Joystick Beschreibung Arduino
 GND Ground  GND
 +5V Spannungsversorgung 5V
 VRX Daten der X Achse analoger PIN A0
 VRY Daten der Y Achse analoger PIN A1
 SW Status des Buttons  digitaler PIN D2
 
2 Achsen Joystick am Arduino UNO
2 Achsen Joystick am Arduino UNO

 

Die Schaltung würde in dem oben genannten Fall wie folgt aussehen:
 
Joystick am Arduino UNO
Joystick am Arduino UNO

Quellcode

#define joystickX A0 //X Achse des Joysticks am analogen PIN A0.
#define joystickY A1 //Y Achse des Joysticks am analogen PIN A1.

int button =  2; //Taster am digitalen PIN 2

const int PAUSE = 250; //Wert für die Pause
long lastAction = -1; //Variable zum speichern des Zeitstempels der letzten Ausführung.

void setup() {
  Serial.begin(9600); //Begin der seriellen Kommunikation mit 9600baud
  //Setzen des Tasters als Eingang mit dem PullUp Widerstand.
  //Das Signal wird hier umgekehrt d.h. LOW == HIGH und HIGH == LOW
  pinMode(button, INPUT_PULLUP);
}

void loop() {
  //Abfragen der Millisekunden seit dem der Arduino gestartet / resetet wurde.
  long currentTimestamp = millis(); 
  //Alle x Millisekunden die Were der X & Y Achse Ausgeben.
  if(lastAction < (currentTimestamp-PAUSE)){
    lastAction = currentTimestamp; 
    //Auslesen der X & Y Achse des Joysticks.
    int x = analogRead(joystickX);
    int y = analogRead(joystickY);
    Serial.print("aktuelle Koordinaten des Joysticks (x,y): ");
    Serial.print(x);
    Serial.print(", ");
    Serial.println(y);
  }
  
  //Auslesen des Zustandes des Taster.
  if(digitalRead(button)==LOW){
    Serial.println("Der Taster ist gedrück!");
  }
}

Video

2 Achsen Joystick am Arduino UNO
Dieses Video ansehen auf YouTube.

 

3 Gedanken zu „Arduino Lektion 38: Joystick

  • Pingback:Arduino: Pan Tilt Bausatz - Technik Blog

  • 22. Mai 2019 um 18:17
    Permalink

    handelt es sich nun um einen 2 achsen joystick oder 3 achsen? Da oben 3 achsen steht jedoch unter dem bild 2 achsen steht.

    Antwort
    • 24. Mai 2019 um 07:24
      Permalink

      Hi,
      danke für die Frage, es ist wirklich „nur“ ein 2 Achsen Joystick.

      Gruß,

      Stefan Draeger

      Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.