l' esempio é scritto da schifo. Scrive oltre l' array:
for (i = 0; i < 8; i++) //loop from 0 to 2
{
SoftPWMSet(leds[i+1], 255); // set LED value to 255
SoftPWMSet(leds[i], 0);
delay(DELAY);
}
l' indice di leds[i+1] arriva a leds[8] che é fuori indice di un array
int leds[8] = {2, 3, 4, 5, 6, 7, 8, 9};
semplicissimo. Se un codice che sembra di funzionare fa cose strane é spesso un problema di array che accedi fuori dal indice.
rimedio:
void loop()
{
int i;
for (i = 0; i < 8; i++) //loop from 0 to 2
{
SoftPWMSet(leds[i], 255); // set LED value to 255
delay(DELAY);
if(i!=7)SoftPWMSet(leds[i], 0);
}
delay(150);
for (i = 7; i >= 0; i--)
{
SoftPWMSet(leds[i], 255);
delay(DELAY);
if(i!=0)SoftPWMSet(leds[i], 0);
}
delay(150);
}
Ciao Uwe