#define pirPin 2
unsigned long previousMillis = 0;
const long interval = 1000; // Adjusted interval to 1000 milliseconds (1 second)
int hours = 0;
int minutes = 0;
int seconds = 0;
void setup() {
Serial.begin(115200);
pinMode(pirPin, INPUT);
attachInterrupt(digitalPinToInterrupt(pirPin), handleInterrupt, CHANGE);
}
void loop() {
// Empty loop
}
void handleInterrupt() {
if (digitalRead(pirPin) == HIGH) {
Serial.println("Motion Detected....");
}
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
seconds++;
if (seconds >= 60) {
seconds = 0;
minutes++;
if (minutes >= 60) {
minutes = 0;
hours++;
if (hours >= 24) {
hours = 0;
}
}
}
Serial.print("Time: ");
if (hours < 10) {
Serial.print("0");
}
Serial.print(hours);
Serial.print(":");
if (minutes < 10) {
Serial.print("0");
}
Serial.print(minutes);
Serial.print(":");
if (seconds < 10) {
Serial.print("0");
}
Serial.println(seconds);
}
}