/*
set the delay times
*/
int delayTime1 = 250;
int delayTime2 = 100;
/*
setup a flag to keep track of which delay time to use
if flag = 1 use delayTime1
if flag = 2 use dealyTime2
*/
int delayTimerFlag = 1;
/*
i to keep track of which LED should be high at a given time
i goes from 1 to 4. once it goes to 5 it is reset at 1.
in every loop() call i is increased by 1
*/
int i = 1;
/*
setup() function is called once when the Arduino board is powered up or reset
*/
void setup() {
/*
using for loop to set pin modes (from 2 to <9)
*/
for (int pin = 2; pin < 9; pin = pin + 2) {
/*
set pins 2, 4, 6, and 8 as output pins
*/
pinMode(pin, OUTPUT);
}
}
/*
loop() function is called repeatedly after setup() function
indefinitely as long as the Arduino is powered on
*/
void loop() {
/*
i==5 means that one round is complete
if i is 5 reset it i to 1
and change the delay time flag
*/
if (i == 5) {
i = 1;
if (delayTimerFlag == 1) {
delayTimerFlag = 2;
} else {
delayTimerFlag = 1;
}
}
/*
using for loop to write pin (from 2 to <9 i.e. 2,4,6,8)
*/
for (int pin = 2; pin < 9; pin = pin + 2) {
/*
if pin == 2*i it should be HIGH else LOW
for example when i=2 and pin =4
pin 2 will be LOW
pin 4 will be HIGH cause pin(4) == 2*i(2)
pin 6 will be LOW and
pin 8 will be LOW
*/
if (pin == 2 * i) {
digitalWrite(pin, HIGH);
} else {
digitalWrite(pin, LOW);
}
}
/*
increase i so that next LED can be HIGH
*/
i++;
/*
delay the execution based on flag
*/
if (delayTimerFlag == 1) {
delay(delayTime1);
} else {
delay(delayTime2);
}
}