const int ledPin = 2; // Pin LED (sesuaikan dengan setup kamu)
const int pb = 7;
unsigned long previousMillis = 0; // Untuk menyimpan waktu sebelumnya
const long intervalOn = 1000; // Interval LED hidup (1 detik)
const long intervalOff = 500; // Interval LED mati (0,5 detik)
unsigned long cekstar = 0;
const long intervalcek = 10000;
bool cek = false;
bool ledState = false; // Status LED, true = hidup, false = mati
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW); // Pastikan LED mati saat awal
pinMode(pb, INPUT_PULLUP);
}
void loop() {
unsigned long currentMillis = millis(); // Waktu saat ini
int spb = digitalRead(pb);
if(spb == 0){
cek = true;
}
unsigned long cekstartnow = millis();
if (cek == true && (cekstartnow - cekstar < 10000)){
if (ledState) {
// Jika LED hidup
if (currentMillis - previousMillis >= intervalOff) {
previousMillis = currentMillis; // Simpan waktu saat ini
ledState = false; // Matikan LED
digitalWrite(ledPin, 1); // Matikan LED secara fisik
Serial.println("led on");
}
} else if(ledState == false){
// Jika LED mati
if (currentMillis - previousMillis >= intervalOn) {
previousMillis = currentMillis; // Simpan waktu saat ini
ledState = true; // Hidupkan LED
digitalWrite(ledPin, 0); // Hidupkan LED secara fisik
}
}
cek = false;
}
}