Wie kann ich den Joystick beim Arduino besser auslesen?
Ich möchte die Postition des Joysticks mit dem arduino besser Auslesen, jedoch schaffe ich es nicht, dass ich bei den Diagonalen (rechts oben in der Ecke, links unten in der Ecke, ... ) nur einen Wert zu senden.
Der Programmiercode:
int X;int Y;int Z;const int X_pin = 7; // analog pin connected to X output //Seitlicheveränderungconst int Y_pin = 6; // analog pin connected to Y output //Vor- und zurückveränderungconst int Z_pin = 5; // analog pin connected to Z output //Höhenveränderungvoid setup() { Serial.begin(250000);}void loop(){ X = analogRead(X_pin); Y = analogRead(Y_pin); Z = analogRead(Z_pin); //Joystick unten if (Y > 600) { Serial.write('c'); } //Joystick links if (X < 400) { Serial.write('d'); } //Joystick oben if (Y < 400) { Serial.write('a'); } //Joystick rechts if (X > 600) { Serial.write('b'); } //Joystick Nullstellung if (X > 400) { if (X < 600) { if (Y > 400) { if (Y < 600) { Serial.write('k'); } } } }//delay(50);} //Ende loop
1 Antwort
// Arduino pin numbers
const int SW_pin = 2; // digital pin connected to switch output
const int X_pin = 0; // analog pin connected to X output
const int Y_pin = 1; // analog pin connected to Y output
void setup() {
pinMode(SW_pin, INPUT);
digitalWrite(SW_pin, HIGH);
Serial.begin(115200);
}
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);
}
meinst so?