Frage von klops1313, 42

Mein Arduino Programm funktioniert nicht. Wo ist mein Denkfehler?

Ich versuche zur Zeit 9 LEDs in einer Art Welle zu faden. Ich denke wenn man das Programm liest wird klar, was ich vorhabe, aber es geht lediglich die erste LED an und fadet nicht einmal an und aus.

Hier das Programm:

int LedFadeValue[9];

void setup() {

}

void loop() { for (int LedPin = 0 ; LedPin <= 9; LedPin += 1) {

for (int fadeValue = 0 ; fadeValue >= 255; fadeValue += 10) {
  LedFadeValue[LedPin+1] = ( 255 / 9 ) * LedPin + fadeValue;
  if (LedFadeValue[LedPin+1] >= 255) {
    LedFadeValue[LedPin+1] = LedFadeValue[LedPin+1] - 255;
  }
  analogWrite(LedPin, LedFadeValue[LedPin+1]);
  delay(10);
}
for (int fadeValue = 255 ; fadeValue <= 0; fadeValue -= 10) {
  LedFadeValue[LedPin+1] = ( 255 / 9 ) * LedPin + fadeValue;
  if (LedFadeValue[LedPin+1] >= 255) {
    LedFadeValue[LedPin+1] = LedFadeValue[LedPin+1] - 255;
  }
  analogWrite(LedPin, LedFadeValue[LedPin+1]);
  delay(10);
}

} }

Antwort
von JupStrunk, 24

außerdem laufen die beiden anderen Schleifen überhaupt nicht !!!

for (int fadeValue = 0 ; fadeValue >= 255; fadeValue += 10)

fadeValue startet mit 0 und läuft solange wie fadeValue >= 255 ist !?!?!
beachte, es heißt "solange wie", nicht "solange bis" !!! ;)
also überhaupt nicht, da fadeValue nie größer 254 sein wird !!!

bei der anderen Schleife ähnlich... ;)

Kommentar von klops1313 ,

Das wusste ich nicht. Bin Neuling in C.

Vielen Dank erstmal! Ich ändere das!

Antwort
von Borgler94, 31

pinMode hast du im setup vergessen...
weiter hab ich (noch nicht geschaut)

Kommentar von klops1313 ,

Bei analogen Ausgängen muss man keinen pinMode setzen.

Antwort
von JupStrunk, 20

9 LEDs, warum dan einen Loop für 10 (0 bis 9) ???

for (int LedPin = 0 ; LedPin <= 9; LedPin += 1)

sollte so aussehen

for (int LedPin = 0 ; LedPin < 9; LedPin += 1)

Sie kennen die Antwort?

Fragen Sie die Community

Weitere Fragen mit Antworten