// Define the LED pins
const int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
const int numLeds = sizeof(ledPins) / sizeof(ledPins[0]);
const int delayTime = 100; // Delay time in milliseconds
void setup() {
// Initialize each pin as an output
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
// First pattern: moving forward
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], HIGH);
delay(delayTime);
digitalWrite(ledPins[i], LOW);
}
// Second pattern: moving backward
for (int i = numLeds - 1; i >= 0; i--) {
digitalWrite(ledPins[i], HIGH);
delay(delayTime);
digitalWrite(ledPins[i], LOW);
}
// Third pattern: alternate LEDs on/off
for (int i = 0; i < numLeds; i++) {
if (i % 2 == 0) {
digitalWrite(ledPins[i], HIGH);
}
}
delay(2 * delayTime);
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], LOW);
}
for (int i = 0; i < numLeds; i++) {
if (i % 2 != 0) {
digitalWrite(ledPins[i], HIGH);
}
}
delay(2 * delayTime);
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], LOW);
}
// Fourth pattern: two LEDs moving toward the center
for (int i = 0; i < numLeds / 2; i++) {
digitalWrite(ledPins[i], HIGH);
digitalWrite(ledPins[numLeds - 1 - i], HIGH);
delay(delayTime);
digitalWrite(ledPins[i], LOW);
digitalWrite(ledPins[numLeds - 1 - i], LOW);
}
// Fifth pattern: two LEDs moving away from the center
for (int i = numLeds / 2 - 1; i >= 0; i--) {
digitalWrite(ledPins[i], HIGH);
digitalWrite(ledPins[numLeds - 1 - i], HIGH);
delay(delayTime);
digitalWrite(ledPins[i], LOW);
digitalWrite(ledPins[numLeds - 1 - i], LOW);
}
// Add more patterns here if you like
}