Brauche mal wieder Eure Hilfe.
Dies ist mein erster Versuch mit millis.
Mein Ziel ist die Beleuchtung der einzelne Räume so zu schalten, das erst im Treppenhaus die Beleuchtung angeht danach in einem Raum. Die Zeiten sollen sich überschneiden, so dass das Preiserlein nicht im Dunklen steht.
Den Sketch den ich geschrieben habe funktioniert beim ersten Durchlauf. Danach verschieben sich die einzelnen Zeiten. Erst bei jedem siebten Durchlauf stimmt die Reihenfolge wieder.
Wäre Euch dankbar wenn mir jemand erklärt wo mein Denkfehler liegt.
Danke im Voraus
unsigned long LED1_timestore;
int LED1Status = LOW;
int LED1Pin = 13;
unsigned long LED2_timestore;
int LED2Status = LOW;
int LED2Pin = 12;
void setup()
{
pinMode(LED1Pin, OUTPUT);
pinMode(LED2Pin, OUTPUT);
}
void loop() {
if (LED1Status == LOW) {
if (millis() - LED1_timestore > 10000 )
{
digitalWrite(LED1Pin, HIGH);
LED1_timestore = millis();
LED1Status = HIGH;
}
}
else
{
if (millis() - LED1_timestore > 4000)
{
digitalWrite(LED1Pin, LOW);
LED1Status = LOW;
}
}
if (LED2Status == LOW)
{
if (millis() - LED2_timestore > 12000 )
{
digitalWrite(LED2Pin, HIGH);
LED2_timestore = millis();
LED2Status = HIGH;
}
}
else
{
if (millis() - LED2_timestore > 4000)
{
digitalWrite(LED2Pin, LOW);
LED2Status = LOW;
}
}
}