// Declare the pins for the LEDs
int ledPins[17] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
// Declare the variables for the chasing LEDs
int currentLED = 0;
int delayTime = 1000;
void setup() {
// Set the pins for the LEDs as outputs
for (int i = 0; i < 17; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void chaseLEDs(int start, int end, int step) {
// Chase LEDs forward
for (int i = start; i <= end; i += step) {
digitalWrite(ledPins[i], HIGH);
delay(delayTime);
digitalWrite(ledPins[i], LOW);
}
// Chase LEDs backward
for (int i = end; i >= start; i -= step) {
digitalWrite(ledPins[i], HIGH);
delay(delayTime);
digitalWrite(ledPins[i], LOW);
}
}
void loop() {
// Chase even-numbered LEDs forward and backward
chaseLEDs(0, 15, 2);
// Chase odd-numbered LEDs forward and backward
chaseLEDs(1, 16, 2);
// Blink all LEDs twice
for (int j = 0; j < 2; j++) {
for (int i = 0; i < 17; i++) {
digitalWrite(ledPins[i], HIGH);
}
delay(delayTime);
for (int i = 0; i < 17; i++) {
digitalWrite(ledPins[i], LOW);
}
delay(delayTime);
}
// Blink odd-numbered LEDs twice
for (int j = 0; j < 2; j++) {
for (int i = 1; i < 17; i += 2) {
digitalWrite(ledPins[i], HIGH);
}
delay(delayTime);
for (int i = 1; i < 17; i += 2) {
digitalWrite(ledPins[i], LOW);
}
delay(delayTime);
}
// Blink even-numbered LEDs twice
for (int j = 0; j < 2; j++) {
for (int i = 0; i < 17; i += 2) {
digitalWrite(ledPins[i], HIGH);
}
delay(delayTime);
for (int i = 0; i < 17; i += 2) {
digitalWrite(ledPins[i], LOW);
}
delay(delayTime);
}
}