char led[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
char l;
float delayTime = 18;
char runSW = 3;
bool runSWstate = 0;
char resetSW = 2;
bool resetSWstate = 0;
void setup()
{
for(char l=0; l<=9; l++)
{
pinMode(led[l], OUTPUT);
digitalWrite(led[l], LOW);
}
pinMode(runSW, INPUT_PULLUP);
pinMode(resetSW, INPUT_PULLUP);
}
void loop()
{
runSWstate = !digitalRead(runSW);
//let the leds run very fast
if(runSWstate==HIGH)
{
for(l=0; l<=9; l++)
{
digitalWrite(led[l], HIGH);
delay(18);
digitalWrite(led[l], LOW);
}
delayTime = 18;
}
//gives it some "dynamically friction" when slowing down
if(runSWstate==LOW)
{
for(l=0; l<=9; l++)
{
if(delayTime < 600)
{
digitalWrite(led[l], HIGH);
delay(delayTime*1.2);
digitalWrite(led[l], LOW);
}
delayTime = delayTime*1.2;
}
}
}