Arduino nano, Motion sensor and Relay with transformerless power supply
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

25 lines
564B

  1. const int lightDelay = 90000;
  2. const byte movePin = 3;
  3. const byte relayPin = 4;
  4. long lastmoveMillis = 0;
  5. void setup() {
  6. pinMode(movePin, INPUT);
  7. pinMode(relayPin, OUTPUT);
  8. digitalWrite(relayPin, HIGH);
  9. }
  10. void loop(){
  11. if (digitalRead(movePin) == 1) lastmoveMillis = millis();
  12. delay(100);
  13. if (lastmoveMillis > 0) activateRelay();
  14. }
  15. void activateRelay() {
  16. if ((millis() - lastmoveMillis) < lightDelay) digitalWrite(relayPin, LOW);
  17. if ((millis() - lastmoveMillis) > lightDelay) {
  18. digitalWrite(relayPin, HIGH);
  19. lastmoveMillis = 0;
  20. }
  21. }