Guten Tag,
heute hätte ich wieder mal eine Frage an euch.
Ich bin momentan dabei Schritt für Schritt die Lektionen des Arduino Tutorials durchzuackern. Dabei nehme ich mir die einzelnen Projekte der jeweiligen Lektion als Basis und verändere bzw. erweitere sie etwas.
Nun kämpfe ich gerade etwas mit dem aktuellen Projekt. Die Basis war Lektion 13, Einbindung eines analogen Joystick Moduls. Im beigelegten Sketch des Tutorials bekommt man verschiedene Werte im serial Monitor angezeigt, wenn der Joystick in der Grundstellung ist, bzw. wenn er bewegt wird. Diese Werte habe ich hergenommen und versucht, die Bewegung des Joysticks via Leds darzustellen.
Mein Problem hier, die Leds tun leider was sie wollen und das liegt wohl an den if Verknüpfungen, ich habe da glaube ich einfach einen "Kurzschluss" programmiert. 5x if ist wohl zuviel, nur mit else habe ich es auch nicht geschafft.
Hier fehlt mir leider noch die Erfahrung bzw. das Wissen über die einzelnen Befehle.
Im Anhang habe ich eine Zip-Datei der .ino angehängt. Vl. kann ja jemand kurz drüber schauen und mir erklären, wie ich das Ganze richtig angehe.
Achja, bevor ich es vergesse, ich hatte versucht im Sketch statt dem Befehl const int den Befehl #define zu verwenden, jedoch habe ich es scheinbar nicht geschafft den Befehl richtig anzuschreiben. Kann mir das schnell einer beispielhaft anschreiben?
Danke vielmals für die Hilfe!
edit:
const int X_pin = 0; // X Input Anschluss A0
const int Y_pin = 1; // Y Input Anschluss A1
const int LedWhite = 3; // Led Weiß, Joystick Center
const int LedBlue1 = 4; //Led Blau links
const int LedBlue2 =5; //Led Blau rechts
const int LedRed1 = 6; //Led Rot hoch
const int LedRed2 = 7; //Led Rot runter
void setup() {
pinMode (X_pin, INPUT);
pinMode (Y_pin, INPUT);
pinMode(LedWhite, OUTPUT);
pinMode(LedBlue1, OUTPUT);
pinMode(LedBlue2, OUTPUT);
pinMode(LedRed1, OUTPUT);
pinMode(LedRed2, OUTPUT);
}
void loop() {
if (analogRead(X_pin == 507) && analogRead(Y_pin == 502))
{
digitalWrite (LedWhite,HIGH);
digitalWrite (LedBlue1,LOW);
digitalWrite (LedBlue2,LOW);
digitalWrite (LedRed1,LOW);
digitalWrite (LedRed2,LOW);
}
if (analogRead(X_pin < 505) && analogRead(Y_pin == 502))
{
digitalWrite (LedWhite,LOW);
digitalWrite (LedBlue1,HIGH);
digitalWrite (LedBlue2,LOW);
digitalWrite (LedRed1,LOW);
digitalWrite (LedRed2,LOW);
}
if (analogRead(X_pin > 509) && analogRead(Y_pin == 502));
{
digitalWrite (LedWhite,LOW);
digitalWrite (LedBlue1,LOW);
digitalWrite (LedBlue2,HIGH);
digitalWrite (LedRed1,LOW);
digitalWrite (LedRed2,LOW);
}
if (analogRead(X_pin == 507) && analogRead(Y_pin < 500))
{
digitalWrite (LedWhite,LOW);
digitalWrite (LedBlue1,LOW);
digitalWrite (LedBlue2,LOW);
digitalWrite (LedRed1,HIGH);
digitalWrite (LedRed2,LOW);
}
if (analogRead(X_pin == 507) && analogRead(Y_pin > 504));
{
digitalWrite (LedWhite,LOW);
digitalWrite (LedBlue1,LOW);
digitalWrite (LedBlue2,LOW);
digitalWrite (LedRed1,LOW);
digitalWrite (LedRed2,HIGH);
}
}
Mfg A.
Analog_JoystickLed.zip (568 Bytes)