#define NUM_LEDS 10
#define DELAY_TIME 500
int ledPins[NUM_LEDS] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
int patternIndex = 0;
void setup() {
// Initialize all LED pins as outputs
for (int i = 0; i < NUM_LEDS; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
// Call different patterns based on patternIndex
switch (patternIndex) {
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;
}
// Move to the next pattern
patternIndex = (patternIndex + 1) % 10;
delay(3000); // Display each pattern for 3 seconds
}
void pattern0() {
// All LEDs ON and OFF
for (int i = 0; i < NUM_LEDS; i++) {
digitalWrite(ledPins[i], HIGH);
}
delay(DELAY_TIME);
for (int i = 0; i < NUM_LEDS; i++) {
digitalWrite(ledPins[i], LOW);
}
delay(DELAY_TIME);
}
void pattern1() {
// Alternate LEDs ON and OFF
for (int i = 0; i < NUM_LEDS; i += 2) {
digitalWrite(ledPins[i], HIGH);
}
delay(DELAY_TIME);
for (int i = 0; i < NUM_LEDS; i += 2) {
digitalWrite(ledPins[i], LOW);
}
delay(DELAY_TIME);
}
void pattern2() {
// LEDs ON one by one
for (int i = 0; i < NUM_LEDS; i++) {
digitalWrite(ledPins[i], HIGH);
delay(DELAY_TIME);
digitalWrite(ledPins[i], LOW);
}
}
void pattern3() {
// LEDs OFF one by one
for (int i = NUM_LEDS - 1; i >= 0; i--) {
digitalWrite(ledPins[i], HIGH);
delay(DELAY_TIME);
digitalWrite(ledPins[i], LOW);
}
}
void pattern4() {
// LEDs blink in pairs
for (int i = 0; i < NUM_LEDS; i += 2) {
digitalWrite(ledPins[i], HIGH);
digitalWrite(ledPins[i+1], HIGH);
delay(DELAY_TIME);
digitalWrite(ledPins[i], LOW);
digitalWrite(ledPins[i+1], LOW);
delay(DELAY_TIME);
}
}
void pattern5() {
// LEDs blink from the edges to the center
for (int i = 0; i < NUM_LEDS / 2; i++) {
digitalWrite(ledPins[i], HIGH);
digitalWrite(ledPins[NUM_LEDS-1-i], HIGH);
delay(DELAY_TIME);
digitalWrite(ledPins[i], LOW);
digitalWrite(ledPins[NUM_LEDS-1-i], LOW);
delay(DELAY_TIME);
}
}
void pattern6() {
// LEDs blink from the center to the edges
for (int i = 0; i < NUM_LEDS / 2; i++) {
digitalWrite(ledPins[NUM_LEDS/2 - 1 - i], HIGH);
digitalWrite(ledPins[NUM_LEDS/2 + i], HIGH);
delay(DELAY_TIME);
digitalWrite(ledPins[NUM_LEDS/2 - 1 - i], LOW);
digitalWrite(ledPins[NUM_LEDS/2 + i], LOW);
delay(DELAY_TIME);
}
}
void pattern7() {
// All LEDs blink rapidly
for (int j = 0; j < 10; j++) {
for (int i = 0; i < NUM_LEDS; i++) {
digitalWrite(ledPins[i], HIGH);
}
delay(DELAY_TIME / 10);
for (int i = 0; i < NUM_LEDS; i++) {
digitalWrite(ledPins[i], LOW);
}
delay(DELAY_TIME / 10);
}
}
void pattern8() {
// Chaser effect
for (int i = 0; i < NUM_LEDS; i++) {
digitalWrite(ledPins[i], HIGH);
delay(DELAY_TIME);
digitalWrite(ledPins[i], LOW);
}
for (int i = NUM_LEDS - 2; i >= 0; i--) {
digitalWrite(ledPins[i], HIGH);
delay(DELAY_TIME);
digitalWrite(ledPins[i], LOW);
}
}
void pattern9() {
// Random LED blinking
for (int j = 0; j < 20; j++) {
int randomLED = random(NUM_LEDS);
digitalWrite(ledPins[randomLED], HIGH);
delay(DELAY_TIME / 2);
digitalWrite(ledPins[randomLED], LOW);
delay(DELAY_TIME / 2);
}
}