// Define pin connections
#define BUTTON_PIN 12
#define LED_COUNT 10
// LED pins array
const int ledPins[LED_COUNT] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
// Variable to hold the current pattern
int currentPattern = 0;
void setup() {
// Initialize LED pins as outputs
for (int i = 0; i < LED_COUNT; i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW); // Turn off initially
}
// Initialize button pin
pinMode(BUTTON_PIN, INPUT_PULLUP);
}
void loop() {
// Check if the button is pressed
if (digitalRead(BUTTON_PIN) == LOW) {
delay(50); // Simple debounce
if (digitalRead(BUTTON_PIN) == LOW) {
currentPattern = (currentPattern + 1) % 3; // Cycle through patterns
applyPattern(currentPattern);
while (digitalRead(BUTTON_PIN) == LOW); // Wait for button release
}
}
}
void applyPattern(int pattern) {
// Clear all LEDs
for (int i = 0; i < LED_COUNT; i++) {
digitalWrite(ledPins[i], LOW);
}
// Apply the selected pattern based on button press
switch (pattern) {
case 0: // Pattern 1: First three LEDs on
digitalWrite(ledPins[0], HIGH);
digitalWrite(ledPins[1], HIGH);
digitalWrite(ledPins[2], HIGH);
break;
case 1: // Pattern 2: Every second LED on
for (int i = 0; i < LED_COUNT; i += 2) {
digitalWrite(ledPins[i], HIGH);
}
break;
case 2: // Pattern 3: All LEDs on
for (int i = 0; i < LED_COUNT; i++) {
digitalWrite(ledPins[i], HIGH);
}
break;
}
}