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);
}
void loop() {
delay(10);
boolean currentButtonState = !digitalRead(33);
// كشف بداية الضغطة فقط
if (currentButtonState == true && lastButtonState == false) {
// زود العداد مع كل ضغطة
count_time++;
Serial.print("press num : ");
Serial.println(count_time);
// بعد الضغطة الخامسة، نطفى كل حاجة ونبدأ من الصفر
if (count_time > 5) {
count_time = 0;
// أطفي كل الـ LEDs
digitalWrite(27, LOW);
digitalWrite(2, LOW);
digitalWrite(4, LOW);
digitalWrite(16, LOW);
digitalWrite(17, LOW);
Serial.println("start again LEDs ");
}
}
// شغل الـ LEDs حسب العدد المطلوب (بغض النظر عن حالة الزر)
if (count_time >= 1) digitalWrite(27, HIGH);
else digitalWrite(27, LOW);
if (count_time >= 2) digitalWrite(2, HIGH);
else digitalWrite(2, LOW);
if (count_time >= 3) digitalWrite(4, HIGH);
else digitalWrite(4, LOW);
if (count_time >= 4) digitalWrite(16, HIGH);
else digitalWrite(16, LOW);
if (count_time >= 5) digitalWrite(17, HIGH);
else digitalWrite(17, LOW);
lastButtonState = currentButtonState;
}