const int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
const int numPatterns = 10;
int currentPattern = 0;
void setup() {
for (int i = 0; i < 10; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
switch (currentPattern) {
case 0: pattern0(); break;
case 1: pattern1(); break;
case 2: pattern2(); break;
case 3: pattern3(); break;
case 4: pattern4(); break;
case 5: pattern5(); break;
case 6: pattern6(); break;
case 7: pattern7(); break;
case 8: pattern8(); break;
case 9: pattern9(); break;
}
currentPattern = (currentPattern + 1) % numPatterns;
delay(1000); // Change pattern every second
}
void pattern0() {
// All LEDs on and off
for (int i = 0; i < 10; i++) {
digitalWrite(ledPins[i], HIGH);
}
delay(500);
for (int i = 0; i < 10; i++) {
digitalWrite(ledPins[i], LOW);
}
delay(500);
}
void pattern1() {
// One by one on and off
for (int i = 0; i < 10; i++) {
digitalWrite(ledPins[i], HIGH);
delay(100);
digitalWrite(ledPins[i], LOW);
delay(100);
}
}
void pattern2() {
// Two at a time
for (int i = 0; i < 9; i += 2) {
digitalWrite(ledPins[i], HIGH);
digitalWrite(ledPins[i + 1], HIGH);
delay(200);
digitalWrite(ledPins[i], LOW);
digitalWrite(ledPins[i + 1], LOW);
delay(200);
}
}
void pattern3() {
// Alternate LEDs
for (int i = 0; i < 10; i += 2) {
digitalWrite(ledPins[i], HIGH);
}
delay(500);
for (int i = 1; i < 10; i += 2) {
digitalWrite(ledPins[i], HIGH);
}
delay(500);
for (int i = 0; i < 10; i++) {
digitalWrite(ledPins[i], LOW);
}
delay(500);
}
void pattern4() {
// Chase effect
for (int i = 0; i < 10; i++) {
digitalWrite(ledPins[i], HIGH);
delay(100);
digitalWrite(ledPins[i], LOW);
}
}
void pattern5() {
// Ping-pong effect
for (int i = 0; i < 10; i++) {
digitalWrite(ledPins[i], HIGH);
delay(100);
digitalWrite(ledPins[i], LOW);
}
for (int i = 8; i > 0; i--) {
digitalWrite(ledPins[i], HIGH);
delay(100);
digitalWrite(ledPins[i], LOW);
}
}
void pattern6() {
// Random LEDs on and off
for (int i = 0; i < 10; i++) {
int randomLed = random(0, 10);
digitalWrite(ledPins[randomLed], HIGH);
delay(100);
digitalWrite(ledPins[randomLed], LOW);
}
}
void pattern7() {
// Knight rider effect
for (int i = 0; i < 10; i++) {
digitalWrite(ledPins[i], HIGH);
if (i > 0) digitalWrite(ledPins[i - 1], LOW);
delay(100);
}
for (int i = 8; i >= 0; i--) {
digitalWrite(ledPins[i], HIGH);
if (i < 9) digitalWrite(ledPins[i + 1], LOW);
delay(100);
}
}
void pattern8() {
// Two LEDs moving towards center
for (int i = 0; i < 5; i++) {
digitalWrite(ledPins[i], HIGH);
digitalWrite(ledPins[9 - i], HIGH);
delay(200);
digitalWrite(ledPins[i], LOW);
digitalWrite(ledPins[9 - i], LOW);
}
}
void pattern9() {
// Blink all LEDs twice
for (int j = 0; j < 2; j++) {
for (int i = 0; i < 10; i++) {
digitalWrite(ledPins[i], HIGH);
}
delay(200);
for (int i = 0; i < 10; i++) {
digitalWrite(ledPins[i], LOW);
}
delay(200);
}
}