Hallo Oliver,
ich weiß jetzt nicht, ob du meinen Sketch vom beleuchteten Haus meinst, da ich aber den TV auf Pin 8 habe gehe ich mal davon aus.
Ich weiß nicht, wie der Pin 8 am Arduino selbst ausgeführt ist... ich habe Pin 8 genommen, da dieser mit PWM umgehen kann (Beim Arduino 44 können Das die Pins 5,6,7,8). Alle anderen Pins sind beim Arduino reine Ein/Ausschalter, können also nicht Flimmern. Also musst du dir da einen anderen Pin aussuchen, der beim Arduino selbst auch PWM beherrscht, denk ich jetz mal
Das mit den vielen i's
i ist nur eine definierte Variable, die man in diesem Fall nur als Zähler in einer For-Schleife benutzt. Du kannst da auch jede andere Variable definieren, das ist egal. Hier mal nur kurz ein Auszug:
for(int i=0;i<sizeof(nightPins);i++)
{
pinMode(nightPins[i],OUTPUT);
}
Mal kurz aufgedröselt
int i=0;
-> Hier wird die Variable definiert und mit dem Wert 0 belegt.
i<sizeof(nightPins);
-> Hier wird in der For-Schleife die Bedingung festgelegt, die festlegt, wie lange die For-Schleife durchlaufen werden soll. sizeof(nightPins) ermittelt dabei die Anzahl der in nightPins enthaltenen Elemente (nightPins ist ein Array); Wenn du genau weißt, wie weit du Zählen willst, dann kannst du auch direkt eine Zahl hineinschreiben, z.B: i<5... dann musst du dich aber später, wenn sich die Anzahl der Elemente in nightPins mal ändert, diese For-Schleife aber anpassen... mit sizeOf kriegst du immer die exakte Anzahl der Elemente
i++
-> das bedeutet, das bei jedem Schleifendurchlauf der For-Schleife i um 1 erhöht wird. Du könntest auch i+1 oder i+2 schreiben, dann wird i halt auch um 1 oder um 2 erhöht.... genau so gäbe es i-- bzw. i-1 oder so.... wie mans halt grad braucht
das was dann in den geschweiften Klammern steht {} ist der Teil der for-Schleife, der bei jedem Schleifendurchlauf ausgeführt wird.
pinMode(nightPins[i],OUTPUT);
In diesem Fall werden die einzelnen Pins auf OUTPUT gesetzt. Das i wird bei jedem Durchlauf dabei durch die entsprechende Zahl ersetzt.
Anstatt der oben genannten for-Schleife könntest du also auch das hier schreiben:
pinMode(nightPins[1],OUTPUT);
pinMode(nightPins[2],OUTPUT);
pinMode(nightPins[3],OUTPUT);
pinMode(nightPins[4],OUTPUT);
pinMode(nightPins[5],OUTPUT);
pinMode(nightPins[6],OUTPUT);
pinMode(nightPins[7],OUTPUT);
pinMode(nightPins[8],OUTPUT);
pinMode(nightPins[9],OUTPUT);
pinMode(nightPins[10],OUTPUT);
Wie du siehst, ist eine for-Schleife da wesentlich eleganter und vor allem auch flexibler
Ich hoffe, das dies auch die Erklärung war, die du gerne haben wolltest ? Ansonsten kannst du mir ja auch mal ne PN schreiben, wenn du mehr wissen willst
Grüße
Tom75