Sonnenaufgang

#1059937
Lesenswert?

Hallo User,

hoffentlich kann mir hier jemand weiter helfen. Ich versuche den
Zeitpunkt des Sonnenaufgangs und des Sonnenuntergangs zu ermitteln.
Leider berechnet mir mein ATMega 32 nicht den erwuenschten Wert. Hab es
manuell nachgerechnet und komme auf in etwa eine Stunde Unterschied zu
dem Ergebnis des Mikrocontrollers.

Sieht jemand auf Anhieb den Fehler. Wuerde mich freuen wenn mir hier
jemand weiterhelfen kann! Alle Variablen sind als float deklariert.

Gruss
Daniel



void sunset(void)
{
  unsigned int dd;

  b=3.141592654*(-26.4)/180;
  hh=-0.1145;

  dekli=0.4095*sin(0.016906*(330-80.086));

  timedifferenz=12*acos((sin(hh)-sin(b)*sin(dekli))/(cos(b)*cos(dekli)))/3 
.141592654;

  realtime=12-timedifferenz;

  sunrisetime=realtime+(15-28.08)*4/60;
#1059975
Lesenswert?

@ Benjamin  Wo stell ich den Rechner auf Rad um. Ich dachte math.h 
rechnet schon in Rad. Weiterhin kann ich nicht viel vorher berechnen, da 
die Tage (hier sind es 330Tage) sich ja aendern und dann alles wieder 
neu berechnet werden muss.

Die Umschreibung in float hat leider nichts bewirkt.

Danke schon mal!!!!

Gruss
Daniel
Persönliche Seite #1060115
Lesenswert?

Die Deklination ist offenbar konstant --> Ausrechnen und Konstante ins 
Programm eintragen. Rumrechnen vergrößert nur die Ungenauigkeit. 
Gleiches gilt für ihre sin- und cos-Werte und 12/pi

d.h. anstatt

Berechnest du

...und das gilt auch für b

Was an der Formel ist denn überhaupt variabel? Nur hh ? In dem Fall 
wäre zu berechnen
#1098165
Lesenswert?

Moin Daniel

Daniel K. wrote:
> Danke an alle. Ich hab das Problem wieder mal mit eurer Hilfe geloesst.
> Ich hab teilweise eure Ratschlaege umgesetzt und die Genauigkeit der
> Werte erhoeht und nun ist die Rechnung Praezise.

Ich bin auch gerade auf der Suche nach einer entsprechenden 
Berechnungsroutine. Kannst du deine Routine eventuell zur Verfuegung 
stellen oder mir zumindest privat zuschicken?
Tausend Dank.

Gruss Ansgar

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren