Wie wird "i" definiert?

Kleiner Tipp von mir:
Pass auf mit Array-Grenzen, denn das merkt der Compiler meist nicht, und es führt zu Fehler, welche sehr schwer zu finden sind.

Ich persönlich verwende für Array-Grössen meistens eine Konstante. Siehe Beispiel unten. Es hat 2 zentrale Vorteile:

  1. Wenn du das Array grosser/kleiner machst, musst du nur die Konstante ändern. (aber zuerst überlegen, insbesondere bei Ein/Ausgängen
  2. Du hälst die Grenzen immer ein
#define MY_SIZE 5
int myarray[MY_SIZE];

for( int i=0 i <  MY_SIZE; i++)
  myarray[i] = i ;

Noch eine Falle für Anfänger: Ein Array beginnt immer bei 0. Also der erste Eintrag ist auf Position 0, bei deinem Beispiel mit 8 Einträgen wäre der 7. der Letzte.

Habe alles von da: http://www.arduino.cc/en/Reference/Array