int led = 13;
int led2 = 12;
int led3 = 11;
int buttonPin = 2; // Define the button pin
int pattern = 0; // Variable to store the current pattern
int maxPattern = 3; // Maximum pattern value
void setup() {
pinMode(led, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP); // Set button pin as input with internal pull-up resistor
}
void loop() {
// Check if the button is pressed
if (digitalRead(buttonPin) == LOW) {
// If button is pressed, increment pattern variable and wrap around at the maximum pattern
pattern = (pattern + 1) % (maxPattern + 1);
delay(200); // Debounce delay to prevent rapid button presses
}
// Execute different blinking patterns based on the value of the pattern variable
switch (pattern) {
case 0:
// Blink all LEDs simultaneously
digitalWrite(led, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
delay(500);
digitalWrite(led, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
delay(500);
break;
case 1:
// Blink LEDs sequentially
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
digitalWrite(led2, HIGH);
delay(500);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
delay(500);
digitalWrite(led3, LOW);
delay(500);
break;
case 2:
// Alternate blinking pattern
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led2, HIGH);
delay(500);
digitalWrite(led, LOW);
digitalWrite(led3, HIGH);
delay(500);
digitalWrite(led2, LOW);
delay(500);
digitalWrite(led3, LOW);
delay(500);
break;
case 3:
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
delay(500);
break;
default:
// This case will handle unexpected values of pattern
// You can add any necessary error handling code here
break;
}
}