Joystick kaputt oder Knoten im Kopf?

Hallo zusammen,

ich brauche mal eure Hilfe. Nach langer Pause mit DIY-Projekten bin ich während der X-ten Coronawelle auf dumme Gedanken gekommen, die ich grade versuche mit einem Arduino Leonardo umzusetzen.

Ich möchte mir gerne für einige meiner Lieblingssimulatoren eigene Konsolen bauen. Angefangen mit einer kleinen Konsole für den Landwirtschaftssimulator 22. Dafür habe ich mir einiges an Equipment gekauft, zahlreiche Joysticks, Knöpfe, Taster, Hebel etc etc.

Lange Rede kurzer Sinn. Das eigentliche Problem was ich habe ist ein Joystick (3 Achsen) der nicht so will wie ich mir das vorstelle. Amazon link

Der Joystick verfügt über 2 Potentiometer für die X und Y Achse, die funktionieren auch einwandfrei. Mit 5V und GND angeschlossen und jeweils der mittlere Pol an A0 bzw A1 kann ich die Daten abgreifen und wunderbar per Joystick Library von Matthew Heironimus im Spiel einbinden.

Allerdings macht mir die Drehung des Joysticks Probleme (Z-Achse) in Amazon ist die Rede von 4-Achsen, ich kann allerdings nur 3 finden, bzw denke es sind 3?

Aus dem Joystick (Drehregler) führen 5 Kabel nach außen. Schwarz (-), Rot(+), Gelb(?), Gelb(?), Weiß(Achse). So meine Theorie. Ich habe das soweit durchgemessen und Gelb-Gelb ist jeweils die Verkabelung für den Button.

Allerdings bekomme ich bei dem Messen des weißen Kabels wirklich seltsame Werte, die ich einfach nicht zugeordnet bekomme.

Ich habe dafür ein kleines Skript geschrieben, um es zu verstehen. Ich verstehe es allerdings trotzdem nicht. Ist der Joystick einfach Defekt? Oder mache ich was falsch? Software- oder Hardwaretechnisch?

Hier ein paar Szenarien:
Joystick - Neutral
VRrx = 504 VRry = 493 VRrz = 37 SW = 1

Joystick - Fully Left
VRrx = 1023 VRry = 491 VRrz = 40 SW = 1
Joystick - Fully Right
VRrx = 0 VRry = 454 VRrz = 40 SW = 1

Joystick - Fully Up
VRrx = 486 VRry = 1013 VRrz = 54 SW = 1
Joystick - Fully Down
VRrx = 608 VRry = 0 VRrz = 55 SW = 1

Joystick - Neutral
VRrx = 504 VRry = 493 VRrz = 37 SW = 1
Joystick - (Z) Turning Left
VRrx = 541 VRry = 495 VRrz = 0 SW = 1
Joystick - (Z) Turning Right
VRrx = 487 VRry = 487 VRrz = 637 SW = 1

Bild im Neutralzustand

Die z-Achse verhält sich absolut nicht wie die anderen beiden und schwankt beim drehen nach Rechts zwischen 400-650 und beim drehen nach links bei 0. Kann diese somit nicht als Rudder o.ä. nutzen.

Hat jemand eine Idee?
Vielen Dank im Voraus und viel Grüße!!

const int VRxPin = A0; // Anschluss Potentiometer X Achse
const int VRyPin = A1; // Anschluss Potentiometer Y Achse
const int VRzPin = A2; // Anschluss Potentiometer Z Achse
const int SWPin  = 5;

int VRx = 0;        // value read from the horizontal pot
int VRy = 0;        // value read from the vertical pot
int VRz = 0;        // value read from the Z turning pot
int SW = 0;         // value read from the switch

void setup() {
  Serial.begin(9600);
  pinMode(SWPin,INPUT_PULLUP);
}

void loop() {

  VRx = analogRead(VRxPin);
  VRy = analogRead(VRyPin);
  VRz = analogRead(VRzPin);
  SW = digitalRead(SWPin);

  // print the results to the Serial Monitor:
  Serial.print("VRrx = ");
  Serial.print(VRx);
  Serial.print("\tVRry = ");
  Serial.print(VRy);
  Serial.print("\tVRrz = ");
  Serial.print(VRz);
  Serial.print("\tSW = ");
  Serial.println(SW);

  delay(200);
}

Hallo,
dann mess das Poti doch mal mit einem Ohmmeter durch. Aussen muss der Widerstand konstant bleiben 10K , von der Mitte (Schleifer) zu einem Ende ändert er sich von 0-10K und von der Mitte zum anderen Ende eben umgekehrt. 10-0K
Wenn Du nicht weisst wie das geht dann probier das mal bei einem Poti für die x oder y Aachse. Nach Datenblatt sollten ja 10K verbaut sein.

da wollen wir mal hoffen das Du das Z Poti nicht schon zerschossen hast.
Heinz

Das steht auch bei ali so.
Aber es gibt doch ein Blatt:

Hab den Widerstand mal gemessen.

Neutral: 2.5kΩ
Drehung voll links ~0Ω
Drehung voll rechts ~4.8-5kΩ

Ich hab spaßeshalber mal den selben Joystick mit CE-Prüfzeichen bestellt.
Werte:
Neutral: ~4,9kΩ
Rechts: ~9.8kΩ
Links: ~0Ω

Passt nicht zur Artikelbezeichnung. Zurück geben.

Hallo,
Dann stell mal auf die Mitte
Die beiden Pins an denen du jetzt 5kohm misst sind für Plus und Minus . Der dritte ist der Schleifer. Wenn Plus minus dran ist kannst du die Spannung vom Schleifer gegen 0v messen. Das sollte dann von 0- 5v gehen.wenn das der Fall ist sollte auch der Arduino richtig messen
Heinz

Nein.

Annahme: Angeschlossen ist der PIN links und der PIN mitte.
Drehung nach Anschlag links: links-> mitte 0ohm
Drehung nach Anschlag rechts: llinks -> mitte 5Kohm

Letzteres entspricht links - rechts.

Die Bahn hat nur 5Kohm und entspricht nicht dem Artikel.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.