#include <WiFi.h>
#include <ezButton.h>
const int ledDO = 19;
const int ledXANHLA = 2;
const int ledXANHDUONG = 4;
const int ledVANG = 5;
const int ledCAM = 18;
const int buttonPin = 25;
int lastButtonState; // Trạng thái trước đó của nút
int currentButtonState; // Trạng thái hiện tại của nút
int cycleCounter = 0; // Đếm số lần hoàn thành chu kỳ
void setup() {
Serial.begin(115200);
pinMode(buttonPin, INPUT_PULLUP);
pinMode(ledDO, OUTPUT);
pinMode(ledXANHLA, OUTPUT);
pinMode(ledXANHDUONG, OUTPUT);
pinMode(ledVANG, OUTPUT);
pinMode(ledCAM, OUTPUT);
currentButtonState = digitalRead(buttonPin);
}
void loop() {
lastButtonState = currentButtonState;
currentButtonState = digitalRead(buttonPin);
if (lastButtonState == HIGH && currentButtonState == LOW) {
Serial.println("The button is pressed");
while (currentButtonState == LOW) {
for (int i = 0; i < 5; ++i) {
digitalWrite(ledDO, HIGH);
delay(50);
digitalWrite(ledDO, LOW);
delay(50);
digitalWrite(ledXANHLA, HIGH);
delay(50);
digitalWrite(ledXANHLA, LOW);
delay(100);
digitalWrite(ledXANHDUONG, HIGH);
delay(50);
digitalWrite(ledXANHDUONG, LOW);
delay(150);
digitalWrite(ledVANG, HIGH);
delay(50);
digitalWrite(ledVANG, LOW);
delay(200);
digitalWrite(ledCAM, HIGH);
delay(50);
digitalWrite(ledCAM, LOW);
delay(250);
// Cập nhật trạng thái nút trong quá trình chạy vòng lặp
currentButtonState = digitalRead(buttonPin);
if (currentButtonState == HIGH) {
return; // Nếu nút được nhấn trong khi đèn đang sáng, thoát chương trình
}
}
// Tăng biến đếm chu kỳ sau khi hoàn thành một chu kỳ
cycleCounter++;
}
}
delay(50);
}