aiuto su codice per led chaser supercar

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