// https://wokwi.com/projects/391667794741666817
// https://forum.arduino.cc/t/built-in-and-out-led-effect-direction-help/1230282
# define SIZE 9
byte pins[9] = {2, 3, 4, 5, 6, 7, 8, 9, 10};
# define t0 100
# define t1 300
# define t2 800
void setup() {
Serial.begin(115200);
Serial.println("for loop version N\n");
for (int ix = 0; ix < SIZE; ix++)
pinMode(pins[ix], OUTPUT);
}
void loop() {
fileOnLeft();
fileOffRight();
}
// turn on from the left starting from all off
void fileOnLeft()
{
for (int ix = 0; ix < SIZE; ix++) {
byte K = SIZE - 1;
for (int iy = 0; iy < SIZE - ix; iy++) {
digitalWrite(pins[K - iy], HIGH);
delay(t0);
if (K - iy != ix) digitalWrite(pins[K - iy], LOW);
}
delay(t1);
}
delay(t2);
}
// turn off from the right starting from all on
void fileOffRight()
{
for (int ix = 0; ix < SIZE; ix++) {
byte K = ix - 1;
digitalWrite(pins[ix], LOW);
for (int iy = 0; iy < ix; iy++) {
digitalWrite(pins[K - iy], HIGH);
delay(t0);
digitalWrite(pins[K - iy], LOW);
}
delay(t1);
}
delay(t2);
}