#define BUTTON_PIN 4
#define LED_PIN 13
void setup() {
Serial.begin(115200);
pinMode(BUTTON_PIN, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT); // Set pin 13 sebagai OUTPUT
}
bool buttonPressed = false;
bool isModeHidup = false;
unsigned long buttonPressTime = 0;
unsigned long debounceTime = 1000000; // 1 detik (dalam milidetik)
void loop() {
int value = digitalRead(BUTTON_PIN);
if (value == LOW) {
if (!buttonPressed) {
buttonPressTime = millis();
buttonPressed = true;
Serial.println("Tombol ditekan");
// Jika mode sebelumnya adalah mode hidup, ubah ke mode mati
if (isModeHidup) {
isModeHidup = false;
digitalWrite(LED_PIN, LOW); // Matikan LED (Pin 13)
Serial.println("Mode Mati");
// Lakukan tindakan apa pun yang diperlukan untuk mode mati di sini
} else {
isModeHidup = true;
digitalWrite(LED_PIN, HIGH); // Nyalakan LED (Pin 13)
Serial.println("Mode Hidup");
// Lakukan tindakan apa pun yang diperlukan untuk mode hidup di sini
}
}
} else {
buttonPressed = false;
}
if (buttonPressed && (millis() - buttonPressTime >= debounceTime)) {
// Tombol telah ditekan selama 1 detik atau lebih
Serial.println("Mode Hidup");
isModeHidup = true;
digitalWrite(LED_PIN, HIGH); // Nyalakan LED (Pin 13)
// Lakukan tindakan apa pun yang diperlukan untuk mode hidup di sini
// Reset buttonPressed ke false untuk menghindari mode hidup berulang
buttonPressed = false;
}
}