LG046:
ok heeft even wat uurtjes experimenteren gekost maar het werkt in basis nu.nu nog alleen de code aanpassen voor de verschillende relays uitgangen en ik ben up and running
hier is de code tot nu toe
wat ik vreemd vind is als ik delay(500) ( of andere hogere waarde ) niet erin zet dan werkt het niet , zet ik hem wel erin dan na ~10 sec blijft de led uit ongeacht de input status.
unsigned long starttime = 0;
unsigned long endtime = 0;
starttime = millis(); // huidige 'tijd'
endtime = 10000; // gewenste vertragingstij voor test 5 sec = 40minuten * 60 * 1000// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (millis() > endtime) { //tijd verstreken?
digitalWrite(ledPin, LOW); //relais afschakelen
delay(500);
}
millis() is een altijd optellende waarde welke aangeeft hoelang het huidige programma aan het lopen is. Deze waarde loopt over na 4294967296 ms (+/- 50 dagen.
Je moet daarom je eindtijd bepalen door de huidige waarde van millis() te nemen en daar de gewenste vertraging bij op te tellen.
In Uw code zal het 1x werken, nl. na 10 seconden. Daarna is millis() 10000 voorbij en zal het een dag of 50 later, als millis voorbij 4294967295 gaat en terug op 0 komt, nog eens werken...