const int ld = 2;
const int pb1 = 3;
const int pb2 = 4;
unsigned long previousMillisAlarm = 0; // Waktu sebelumnya Alarm
unsigned long previousMillisNotifikasi = 0; // Waktu sebelumnya Notifikasi
const long AlarmDuration = 30000; // Durasi LED 1 aktif (30 detik)
const long NotifikasiInterval = 5000; // Interval Notifikasi (5 detik)
const long NotifikasiDuration = 1000; // Durasi Notifikasi (1 detik)
bool AlarmActive = false; // Status Alarm
void setup() {
Serial.begin(9600);
pinMode(ld, OUTPUT);
pinMode(pb1, INPUT_PULLUP);
pinMode(pb2, INPUT_PULLUP);
digitalWrite(ld, 0);
}
void loop() {
int pbs1 = digitalRead(pb1);
int pbs2 = digitalRead(pb2);
if (pbs1 == 0 && !AlarmActive) {
AlarmActive = true;
previousMillisAlarm = millis(); // Reset waktu Alarm
}
if (pbs2 == 0){
digitalWrite(ld, 0);
AlarmActive = false;
}
if (AlarmActive) {
digitalWrite(ld, 1);
unsigned long currentMillisAlarm = millis(); // Wktu Alarm saat ini
if (currentMillisAlarm - previousMillisAlarm >= AlarmDuration) {
digitalWrite(ld, 0);
AlarmActive = false;
}
unsigned long currentMillisNotifikasi = millis(); //Waktu notif saat ini
if (currentMillisNotifikasi - previousMillisNotifikasi >= NotifikasiInterval) {
previousMillisNotifikasi = currentMillisNotifikasi;
Serial.println("!!! ADA AKTIVITAS ILEGAL !!!");
//digitalWrite(ld, 1);
//if (digitalRead(led2Pin == 1)){
//Serial.println("led 2 aktif");}
//delay(NotifikasiDuration);
//digitalWrite(led2Pin, LOW);
}
}
//Serial.println(AlarmActive);
delay(10);
}