Hallo an alle! Sicher ein Klacks für euch, aber ich hab mir die Zähne ausgebissen (und eine weitere Nacht um die Ohren gehauen). Für die weitere Verwendung eines Codeschalters muss ich die Zustände in einer If Schleife abfragen und will dann einer anderen Variablen einen entsprechenden Wert zuweisen (das später, wenn der Code funktioniert). Das Abfragen klappt mit dem Array, aber sobald ich wissen will, ob Pin 2 und Pin 5 LOW sind (oder jede andere Schalterstellung) und erst dann die If Schleife durchlaufen werden soll, dann klappt das nicht. Also immer, wenn mehr als eine "&&" Verknüpfung da sind. Es ist zwar Arduino, soll aber mit C Ähnlichkeit haben. Hier der Code: /* Codeschalter auslesen.*/ int inputPins[] = {2,3,4,5}; //Array für die Eingänge; analog zum Array Aufruf void setup() { for(int index = 0; index < 4; index++) { pinMode(inputPins[index],INPUT); // Pins als Eingänge deklarieren digitalWrite(inputPins[index],HIGH); Serial.begin(9600); } } void loop() { for(int index = 0; index < 4; index++) { int val = digitalRead(inputPins[index]); if ((val == LOW) && (index == 0) && (index == 3)) // LOW => Schalter(Pin) ist geschaltet { Serial.print("Jau! "); Serial.print(inputPins[index]); //Was hier steht ist Quatsch, soll Serial.println(); //nur helfen den Code zu prüfen. Serial.print(index); Serial.println(); delay(500); } } // while(1); // soll später genutzt werden. } Vielen Dank schon mal für eure Hilfe! Lieben Gruß Frank
Frank O. schrieb: > if ((val == LOW) && (index == 0) && (index == 3)) Das wird nie wahr, denn index kann nicht gleichzeitig 0 und 3 sein. Möchtest Du, daß die Bedinung zutrifft, wenn val LOW und index 0 oder 3 ist? Dann formuliere das um: > if ((val == LOW) && ((index == 0) || (index == 3))) Was ist eine "IF-Schleife"?
Frank O. schrieb: > if ((val == LOW) && (index == 0) && (index == 3)) // LOW => Wie kann der Index gleichzeitig 0 und 3 sein? Die Bedingung wird niemals erfüllt werden.
kann so nicht gehen: "index" der for Schleife kann nie gleichzeitig 0 und 3 sein!
Danke! Ich bin sooo doooof. Wenn ich das nur mit val == LOW laufen lasse, dann zeigt er mir alle Pins nacheinander! (und da war mein Denkfehler) an. Das muss ich jetzt wohl ganz anders machen?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.