Re: Zeitschaltuhr mit Serialzeit Kategorie: Programmierung (von nitraM - 9.04.2010 11:33) | ||
Als Antwort auf Re: Zeitschaltuhr mit Serialzeit von ChristianS - 9.04.2010 10:25 | ||
| ||
> @nitraM > ich habe jetzt mal DeinenCode eingebaut. Das funktioniert auch supergut, allerdings hat > die Sache doch noch einen Haken: > Die Einschaltzeit des Zeitschalters wird duch den Sonnenuntergang +offset bestimmt. (der offset ist > notwendig, da es bei SU teilweise noch zu hell ist, der Effekt ist zur Winterzeit anders, als zur > Sommerzeit, deshalb benutze ich zwei verschiedene Offsets). > Wertags wird gegen 21:00Uhr die Beleuchtung abgeschaltet. Jetzt wird es aber irgendwann so sein, > dass der SU+Offset nach 21:00Uhr liegt. Dann funktioniert meine Routine nicht mehr, da dann der > Abschnitt. > > if gartenlicht_on > gartenlicht_off // Schaltzeit über 0:00Uhr hinaus > greift. Der darf allerdings nur kommen, wenn nach 0:00Uhr abgeschaltet wird und das ist an speziellen > Tagen der Fall. Ich nehme man an, das ich komplett umdenken muss und mir eine eigene Uhr baue, > die nicht um 0:00Uhr mit der Serialzeit 0 beginnt, sondern morgens um 04:00Uhr, dann habe ich das > Problem nicht. Und Ausschaltzeiten nach 03:00Uhr gibt es auch nicht. Das ist aber auch wieder von hinten > durch die Brust... mach es dir doch nicht so schwer , füge doch die bedingung einfach hinzu... .... schnipp........ function Gartenlicht () { byte Licht_per_zeitschaltuhr_an; // Zwischenspeicher byte Licht_ein; Licht_per_zeitschaltuhr_an = 0; // Variable wird immer zu Beginn gelöscht Licht_ein=0; if gartenlicht_on > gartenlicht_off // Schaltzeit über 0:00Uhr hinaus { gartenlicht_duration = 86400 - gartenlicht_on + gartenlicht_off; // Gesamteinschaltzeit ermitteln // Bedingung einfach erweitern... if gartenlicht_duration >= gartenlicht_offset and gartenlicht_off < 4:00 uhr // nur weiter prüfen wenn min. Einschaltzeit erreicht // { if timeserial >= gartenlicht_on or timeserial < gartenlicht_off // prüfen auf Uhrzeit "ein" => wichtig _oder_ ! { Licht_per_zeitschaltuhr_an = 1; // wenn die Bedingung erfüllt => merken! } ....schnapp....... nitraM | ||
Antwort schreiben Antworten: |