Anbei mal ein Codeschnipsel, ist fast auf die Minute genau das ganze
Jahr.
Compiler GCC, müste nur gering angepasst werden. Ergebnisse stehen im
Sonnen_AUF_UNTER Struct als Ganzahlen und floats.
Voraussetzung: RTC schreibt laufend aktuelle Uhrzeit im Typ:
1
zeit_tZeit;
2
3
typedefstruct
4
{
5
uint32_tstunde,
6
minute,
7
sekunde,
8
tag,
9
monat,
10
jahr,
11
wtag,
12
jahrtag;
13
}zeit_t;
Aufruf mit
tage = CalcDayOfYear(&Zeit); // Tag des Jahres ausrechnen
CalcSonnenAufgang(&Zeit, &Sonnen_AUF_UNTER,tage);
Hi,
Ich verwende in meiner Rolladensteuerung einen ähnlichen Algorithmus
(Kommt auf die selben Werte). Allerdings beobachte ich, dass es zum
Zeitpunkt des errechneten Sonnenaufgangs schon hell, bzw. zum Zeitpunkt
des Sonnenuntergangs es noch nicht dunkel ist.
Ich habe mit schon überlegt eine additive Konstante einzubauen.
Allerdings frage ich mich wie das bei "professionellen" Geräten gelöst
wird ?!
Gruß
Andreas
Uboot- Stocki schrieb:
> Hi,>> Ich verwende in meiner Rolladensteuerung einen ähnlichen Algorithmus> (Kommt auf die selben Werte). Allerdings beobachte ich, dass es zum> Zeitpunkt des errechneten Sonnenaufgangs schon hell, bzw. zum Zeitpunkt> des Sonnenuntergangs es noch nicht dunkel ist.>> Ich habe mit schon überlegt eine additive Konstante einzubauen.> Allerdings frage ich mich wie das bei "professionellen" Geräten gelöst> wird ?!
Hi, vielleicht interessiert folgendes kleines Projekt in Java?
http://www.qcontinuum.org/compass/
Ich hab das auf meinem Händi, als Kompass.
Neben dem Sonnen- und Mondstand kann man auch anzeigen lassen, wann
Mond- und Sonnenauf und -untergang sind, ausserdem die Zeiten für
"Zivile Dämmerung", "Nautische Dämmerung" und "Astronomische Dämmerung".
Für dich wäre dann wohl die "Zivile Dämmerung" interessent.
Das Tool von Dana Peters ist nett. Zum Code und zum Algorithmus kann ich
nichts sagen. Jedenfalls kommt's gut hin mit dem Dämmern.
Fehlt nur noch die Zeit für "Götterdämmerung" :-)
Johann
>Allerdings beobachte ich, dass es zum>Zeitpunkt des errechneten Sonnenaufgangs schon hell, bzw. zum Zeitpunkt>des Sonnenuntergangs es noch nicht dunkel ist.
Kann es daran liegen, dass der Zeitpunkt "Sonnenuntergang" astronomisch
betrachtet, der Zeitpunkt ist, wo der Mittelpunkt der Sonne den Horizont
berührt?
Dann ist es selbstverständlich noch nicht dunkel bzw. schon hell.
hatte da mal ein Programm, das unterschied zwischen
offizieller -0° 50'
bürgerlicher oder ziviler -6°
nautischer -12° und zuletzt
astronomischer Dämmerung mit -18°.
Gemeint ist die Höhe der Sonnenmitte.
Im hier verwendeten Programm lässt sich das wohl mit der Zeile
#define hoehe -0.0145 // Sonnenhöhe in RAD
einstellen.
Rechnet man mit dem Wert für die Offizielle Dämmerung, erhält man die
Werte, wie sie in der Zeitung oder im Himmelsjahr angegeben werden.
Nimmt man die Werte für die bürgerliche Dämmerung, erhält man die
Zeiten, zu denen es gefühlsmässig hell bzw. dunkel wird.
Die Seefahrer sehen den erhellten Himmel früher, und für Astronomen muss
es richtig finster sein...
Siehe auch:
http://de.wikipedia.org/wiki/B%C3%BCrgerliche_D%C3%A4mmerung
Uwe
Hallo,
ich sehe da noch einen Fehler:
Da es ursprünglich für einen DS1306 geschrieben wurde, die die
Jahreszahl zweistellig hat muss das zB für den Arm, der zb 2009 intern
stehen hat angepasst werden, d.h. es müssen 2000 vom Jahr abgezogen
werden, sonst zeigt der Zabellenzeiger ins Leere.
1
uint32_tIsSommerzeit(zeit_t*zeit)
2
{
3
#define MONAT_SZ_BEGINN 3
4
#define MONAT_SZ_ENDE 10
5
6
// Sommerzeiten 2000 - 2019, Beginnend im März, endend im Oktober