unsigned long prevMillis = 0;
// Counter (seconds)
int counter;
int counter2;
const int ledPin = LED_BUILTIN;
unsigned long previousMillis = 0;
bool counter1start = false;
bool counter2start = false;
bool counter1done = false;
bool counter2done = false;
const int buttonPin = 4;
int buttonState = 0;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
counter = 10;
counter2 = 20;
prevMillis = millis();
Serial.println("Please enter your name:");
}
void loop () {
buttonState = digitalRead(buttonPin);
if (millis() - previousMillis >= 1000) {
//kode dibawah ini akan di eksekusi setiap 1 detik
previousMillis = millis();
digitalWrite(ledPin, !digitalRead(ledPin));
//counter1 countdown 10 detik
if ((buttonState == HIGH) && counter1start == false) {
//kode dibawah akan di eksekusi 1 x saja karean cyle selanjutnya counter1start sudah true
counter1start = true;
//untuk mereset conter 2
counter2start = false;
counter2done = false;
counter2 = 20;
}
//dibawah akan mulai countdown counter1 karena sudah di enable code block sebelumnya
//counter1start akan terus countdown sampai nilai 0
//ditambah syaratuntuk menghentikan counter1
if (counter1start && !counter1done) Serial.println(counter--); //ini adalah process countdown
//setiap selesai countdown seslalu check apakah sudah nol atau tidak sebenarnya bisa juga
//counter == 0 karena tidak mungkin counter-- akan mengurangi 2 x
if (counter <= 0) {
counter1done = true; // untuk menghentikan counter
counter = 1; //supaya dieksekusi 1x saja jadi syarat counter <=0 tidak terpenuhi
Serial.println("Done1");
}
//commnent untuk counter 2 identik
//counter2 countdown 20 detik
if (buttonState == LOW && counter2start == false) {
counter2start = true;
//untuk mereset conter 1
counter1start = false;
counter1done = false;
counter = 10;
}
if (counter2start && !counter2done) Serial.println(counter2--);
if (counter2 <= 0) {
counter2done = true; // untuk menghentikan counter
counter2 = 1; //supaya dieksekusi 1x saja jadi syarat counter2 <=0 tidak terpenuhi
Serial.println("Done2");
}
}
}