Go Down

Topic: Alarm / Zeitschaltuhr (Read 8664 times) previous topic - next topic

Gerlitschka

So, für alle die jetzt noch nicht wissen, wie das mit der Zeitschaltuhr funktioniert!

Hier der Weg um eine Zeitschaltuhr über Mitternacht laufen zu lassen!
Code: [Select]

//Ich möchte mein Mondlichtpin 23.30Uhr ein schalten und um 8Uhr aus!
//23 * 60 + 30 = 1410 ein!
//8 * 60 + 0 = 480 aus!
now.hours * 60 + now.minute = Minutenuhrzeit
if ( ((1410 < 480) && (Minutenuhrzeit >= 480)) || ((1410 >= 480) && (Minutenuhrzeit < 1410) && (Minutenuhrzeit >= 480) )
  {digitalWrite(Schaltpin, LOW);}
else
  {digitalWrite(Schaltpin, HIGH);}
}



Hier der Weg wenn sie nach 00:00 anfängen und auch wieder vor 00:00 ausgehen soll!
Code: [Select]

//Ich möchte mein Tageslichtpin um 12 Uhr einschalten und um 22 Uhr ausschalkten
//12 * 60 + 0 = 720 ein!
//22 * 60 + 0 = 1320 aus!
now.hours * 60 + now.minute = Minutenuhrzeit
if (minutenUhrzeit >= 720 && minutenUhrzeit < 1320)
  {digitalWrite(SCHALTPIN, HIGH);}
else
  {digitalWrite(SCHALTPIN, LOW);}


Funktioniert so sehr gut =)

Also schönen Abend noch!

maverick1509

#16
Aug 05, 2011, 07:03 pm Last Edit: Aug 05, 2011, 07:49 pm by maverick1509 Reason: 1
Hallo,
also einige Abfragen verstehe ich jetzt aber nicht die sind wohl über.
Was soll z.B. if 1410 < 480 das ist wohl immer der Fall.
Ebenso ist 1410  immer >= 480 oder meinst du nicht?

Warum nicht:
if (Minutenuhrzeit >= 480 && Minutenuhrzeit < 1410)
 {digitalWrite(Schaltpin, LOW);}
else
 {digitalWrite(Schaltpin, HIGH);}
}


Gruß
Bernward

TelosNox

Der Code von Gerlitschka zeigt genau die beiden Varianten, die ich aufgezeigt habe (normale Abfrage und die Invertierung). Allerdings ohne Variablen für die Schaltzeiten, sondern direkt mit den Werten. In dem Moment ist das Ganze aber witzlos, denn dann sind teile der Abfrage überflüssig. Das hatte ich aber früher auch schon erwähnt.

Ich ging davon aus, dass hier eine Zeitschaltuhr entstehen soll, bei der man die Zeiten variabel einstellen kann. Wenn alles im Programm hardcodiert ist, dann muss man sich natürlich nicht mit so Fragen wie dem 0:00 Durchgang befassen, weil man ja die Zeiten kenn und eben weiß ob man den Durchgang mit dabei hat oder nicht.

Go Up