int count_time = 0;
bool lastButtonState = false;
void setup() {
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(33, INPUT_PULLUP);
pinMode(27, OUTPUT);
pinMode(2, OUTPUT);
pinMode(4, OUTPUT);
pinMode(16, OUTPUT);
pinMode(17, OUTPUT);
// Initialize all LEDs to OFF
digitalWrite(27, LOW);
digitalWrite(2, LOW);
digitalWrite(4, LOW);
digitalWrite(16, LOW);
digitalWrite(17, LOW);
}
void loop() {
delay(10);
boolean currentButtonState = !digitalRead(33);
// Check for button press (transition from not pressed to pressed)
if (currentButtonState == true && lastButtonState == false) {
// Increment counter on each new press
count_time++;
// Reset after 5 presses
if (count_time > 5) {
count_time = 1;
}
Serial.print("Button pressed. Count: ");
Serial.println(count_time);
}
// Turn on the appropriate LED based on count_time when button is pressed
if (currentButtonState == true) {
// Button is currently pressed - turn on the selected LED
digitalWrite(27, (count_time == 1) ? HIGH : LOW);
digitalWrite(2, (count_time == 2) ? HIGH : LOW);
digitalWrite(4, (count_time == 3) ? HIGH : LOW);
digitalWrite(16, (count_time == 4) ? HIGH : LOW);
digitalWrite(17, (count_time == 5) ? HIGH : LOW);
} else {
// Button is released - turn off ALL LEDs
digitalWrite(27, LOW);
digitalWrite(2, LOW);
digitalWrite(4, LOW);
digitalWrite(16, LOW);
digitalWrite(17, LOW);
}
lastButtonState = currentButtonState;
}