unsigned long previousMillis = 0;
const long interval = 100; // Interval setiap 1 detik (1000 milidetik)
int minutes1 = 0; // Ubah sesuai kebutuhan awal countdown
int seconds1 = 10;
int milliseconds1 = 0;
boolean aktif;
const int ledPin = 13; // Ubah pin LED sesuai kebutuhan Anda
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT); // Inisialisasi pin LED sebagai output
aktif = true;
}
void loop() {
// put your main code here, to run repeatedly:
countdown(minutes1); // Memanggil fungsi countdown dengan parameter
}
void countdown(int &minutes) {
if ((millis() - previousMillis >= interval) && (aktif == true)) {
printCountdown(minutes); // Memanggil fungsi printCountdown dengan parameter
previousMillis = millis();
if (milliseconds1 > 0) {
milliseconds1--;
} else {
if (seconds1 > 0) {
seconds1--;
milliseconds1 = 9;
} else {
if (minutes > 0) {
minutes--;
seconds1 = 59;
milliseconds1 = 9;
} else {
resetCountdown(); // Memanggil fungsi resetCountdown saat hitungan selesai
aktif = false;
}
}
}
}
}
void resetCountdown() {
// Hitungan selesai, lakukan reset
minutes1 = 1; // Atur ulang sesuai kebutuhan awal countdown
seconds1 = 0;
milliseconds1 = 0;
// Matikan LED setelah hitungan selesai
digitalWrite(ledPin, LOW);
}
void printCountdown(int minutes) {
Serial.print("Countdown: ");
Serial.print(minutes);
Serial.print("m ");
Serial.print(seconds1);
Serial.print("s ");
Serial.print(milliseconds1);
Serial.println("ms");
}