#include <Arduino.h>
const int led1 = 21; // LED pin connected to GPIO25
const int led2 = 22; // LED pin connected to GPIO26
const int led3 = 23; // LED pin connected to GPIO27
const int button1 = 19; // Push button 1 pin connected to GPIO14
const int button2 = 18; // Push button 2 pin connected to GPIO12
int ledState = LOW; // Current state of the LEDs (LOW - off, HIGH - on)
int blinkDelay = 500; // Delay between LED blinks (in milliseconds)
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(button1, INPUT_PULLUP); // Enable internal pull-up resistor
pinMode(button2, INPUT_PULLUP); // Enable internal pull-up resistor
}
void loop() {
// Initial LED behavior (all on for 3 seconds)
if (millis() < 3000) {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
} else {
// Turn off LEDs after initial lighting
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
}
// Check for button presses (both buttons pressed)
if (!digitalRead(button1) && !digitalRead(button2)) {
blinkLEDsSequentially(); // Blinking LEDs sequentially
} else {
// Check for single button press
if (!digitalRead(button1) || !digitalRead(button2)) {
blinkAllLEDsTogether(); // Blinking all LEDs together
}
}
delay(10); // Short delay to avoid excessive loop cycles
}
void blinkLEDsSequentially() {
for (int i = 0; i < 3; i++) {
digitalWrite(led1 + i, HIGH);
delay(blinkDelay);
digitalWrite(led1 + i, LOW);
delay(blinkDelay);
}
}
void blinkAllLEDsTogether() {
while (true) {
digitalWrite(led1, ledState);
digitalWrite(led2, ledState);
digitalWrite(led3, ledState);
ledState = !ledState; // Toggle LED state for blink effect
delay(blinkDelay);
}
}