Joystick-Modul

Ich habe ein einfaches Programm von einem Tutorial kopiert über einen Joystik. Hab alles getestet und funktioniert auch so wie es soll der Joystick gibt analoge Werte aus, in einer X-und Y-Achse, je nach Lage. Jetzt wollte ich aber mit einem if-Befehl eine LED zum leuchten bringen, also wenn die X-Achse und die Y-Achse in einem bestimmten bereich liegen. Ich weiss aber die Variable nicht wo der Arduino die Werte hineinschreibt. :frowning:

Hier den Sketch wenn mir jemand helfen kann:

// Arduino-PIN- Nummern
const int SW_pin = 2; // Digitaler Pin zum Schaltausgang angeschlossen
const int X_pin = 2; // Analog-Pin an X-Ausgang angeschlossen
const int Y_pin = 1; // Analog-Pin an Y-Ausgang angeschlossen
const byte LED3 = 13; // Digitaler Pin um die dritte LED zu steuern

void setup() {
  pinMode(SW_pin, INPUT);
  digitalWrite(SW_pin, HIGH);
  Serial.begin(9600);
  pinMode(LED3, OUTPUT);
}

void loop() {
  Serial.print("Switch:  ");
  Serial.print(digitalRead(SW_pin));
  Serial.print("\n");
  Serial.print("X-axis: ");
  Serial.print(analogRead(X_pin));
  Serial.print("\n");
  Serial.print("Y-axis: ");
  Serial.println(analogRead(Y_pin));
  Serial.print("\n\n");
  delay(500);

  if (X-axis: >= 508 && X-axis: <= 512 && Y-axis: >= 503 && Y-axis: <= 507) //Hier zeigt es den Fehler an weil es X-Axis nicht gibt...
{
   digitalWrite(LED3, HIGH);  
  }
}

challenger:
Ich weiss aber die Variable nicht wo der Arduino die Werte hineinschreibt.

Ich verstehe dein Problem nicht.

Die Variable darfst du dir doch selbst festlegen. Du musst diese aber auch definieren.

Vieleich muss ich meine Frage genauer erläutern: Ich in einem if-Befehl einen Wert abfragen ich habe gemeint man kann einfach X-axis nehmen weil ja oben steht Serial.Print(X-axis). Aber dass ergibt einen Fehler. Was muss anstatt X-axis einfügen??

Challenger

challenger:
Ich weiss aber die Variable nicht wo der Arduino die Werte hineinschreibt. :frowning:

Derzeit gibst du die Werte unmittelbar über die serielle Schnittstelle aus. Wie du richtig erkannt hast, solltest du die jeweiligen Werte in einer Variable verfügbar machen. Also statt deiner

Serial.print(analogRead(X_pin));

dann besser nach dem Schema für alle Werte:

valueX=analogRead(X_pin);
Serial.print(valueX);

Schon hast du die Variablen für deine if-Abfrage.

Ich weiss aber die Variable nicht wo der Arduino die Werte hineinschreibt.

Um es mal ganz klar zu sagen:

Du bist der Programmierer deines Arduinos!
Es liegt also in deiner Verantwortung, wo er was hinschreibt.

Vielen Dank für die Antworten :smiley:

Challenger

challenger:
Vieleich muss ich meine Frage genauer erläutern: Ich in einem if-Befehl einen Wert abfragen ich habe gemeint man kann einfach X-axis nehmen weil ja oben steht Serial.Print(X-axis). Aber dass ergibt einen Fehler. Was muss anstatt X-axis einfügen??

Kleiner Tipp, der hilft immer.

Du solltest dich mal um die Grundlagen bemühen.
Da hilft bestenfalls auch ein Buch.