/* https://create.arduino.cc/projecthub/tarantula3/using-an-ldr-sensor-with-arduino-807b1c https://create.arduino.cc/projecthub/muhammed-shameel-k-v/how-to-use-a-relay-with-arduino-e04e3c https://docs.arduino.cc/built-in-examples/digital/BlinkWithoutDelay */ const int ledPin = 13; const int relayPin = 9; const int swtPin = 4; int swtStatus; unsigned long currentMillis; unsigned long resetMillis; void setup() { Serial.begin(9600); pinMode(ledPin, OUTPUT); pinMode(swtPin, INPUT); pinMode(relayPin, OUTPUT); swtStatus = 0; currentMillis = millis(); resetMillis = millis(); } void loop() { swtStatus = digitalRead(swtPin); // digitalWrite(ledPin, HIGH); if (swtStatus == 1) { resetMillis = millis(); digitalWrite(relayPin, HIGH); delay(100); } currentMillis = millis(); unsigned long delta = currentMillis - resetMillis; if (delta > (10 * 60 * 1000)) //10 mins x 60 sec x 1000 milliseconds { digitalWrite(relayPin, LOW); } }