Arduino "Automatisk tænd lyset"

Jeg lavede jo et lille stykke elektronik, der forsynede en Pir med

Jeg har ikke testet programmet endnu (men jeg tror da det virker).

Forbedringer er som altid velkommen:

byte relayPin[2] = {2,3}; const int SunPin = 10; const int PirPin = 9; long interval = 120000; long timer = 0;

//Digital pin 2 -> RELAY 1 //Digital pin 3 -> RELAY 2 //Digital pin 10 -> LIGHTSWITCH //Digital pin 9 -> PIR

void setup(){ Serial.begin(9600); for(int i = 0; i < 2; i++) pinMode(relayPin[i],OUTPUT); pinMode(SunPin, INPUT); pinMode(PirPin, INPUT); } void loop(){ if(digitalRead(SunPin) == LOW && digitalRead(PirPin) == LOW) { Serial.println("Waiting for signal from darkdetector"); } if(SunPin == HIGH) { digitalWrite(relayPin[0],HIGH); Serial.println("Pir is on"); Serial.println("Waiting for signal from Pir"); } else { digitalWrite(relayPin[0],LOW); } if(PirPin == HIGH) { timer = millis(); digitalWrite(relayPin[1],HIGH); Serial.println("Light is on"); } if(timer > interval) { timer = 0; digitalWrite(relayPin[1],LOW); Serial.println("Light is off"); } }

Karl Erik.

Reply to
Karl Erik Christensen
Loading thread data ...

Den 04-01-2014 04:17, Karl Erik Christensen skrev:

if(PirPin == HIGH) { timer = 0; timer = millis(); digitalWrite(relayPin[1],HIGH); Serial.println("Light is on"); }

Karl Erik.

Reply to
Karl Erik Christensen

Karl Erik Christensen skriver:

eksemplet.

if(PirPin == HIGH) { timer = millis(); digitalWrite(relayPin[1],HIGH); Serial.println("Light is on"); if(timer+interval > millis) { digitalWrite(relayPin[1],LOW); Serial.println("Light is off" } }

Klaus

--
 Modelbane Europas hjemmeside: http://www.modelbaneeuropa.dk 
        Min egen hjemmeside: http://www.moppe.dk 
 Click to see the full signature
Reply to
Klaus D. Mikkelsen

Den 04-01-2014 09:22, Klaus D. Mikkelsen skrev:

Tak for svar.

Det er netop fra "BlinkWithoutDelay" jeg hentede inspiration.

var "smart" :-)

jeg hopper i stolen.

Karl Erik.

Reply to
Karl Erik Christensen

Den 04-01-2014 09:54, Karl Erik Christensen skrev:

if(PirPin == HIGH) { timer = millis(); digitalWrite(relayPin[1],HIGH); Serial.println("Light is on"); } if(timer+interval = millis) { digitalWrite(relayPin[1],LOW); Serial.println("Light is off" }

vil fungere.

med timer+interval, slukker lyset - viola :-)

Karl Erik.

Reply to
Karl Erik Christensen

Den 04-01-2014 10:22, Karl Erik Christensen skrev:

if(millis() > timer+interval) { digitalWrite(relayPin[1],LOW); Serial.println("Light is off" }

Karl Erik.

Reply to
Karl Erik Christensen

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.