www.mikrocontroller.net

Forum: Compiler & IDEs Algortihmus für Sonnenauf- und untergang gesucht


Autor: UBoot-Stocki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich bin auf der Suche nach einem Algorithmus zur Berechnung der 
Sonnenauf- und untergangszeit.

Hat jemand sowas schonmal auf einem AVR gemacht? Kennt jemand eine 
Beschreibung des Algortihmus ?

Gruß

Andreas

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://de.wikipedia.org/wiki/Sonnenaufgang
Weblinks: Berechnung von Tageslängen und Dämmerungsdauer in Abhängigkeit 
von Breitengrad und Tag im Jahr. Herleitung der Formeln.

http://herbert.gandraxa.com/herbert/lod.asp
http://www.mzmsoft.de/sheets/sasu_1.htm

da gibts  "bürgerliche" Dämmerungszeiten

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist ansonsten mit grundlegenden Geometrie-/Astronomiekenntnissen selbst 
herleitbar - sind einfach zwei überlagerte Sinusschwingungen (Jahr und 
Tag). Wenn du die richtig zusammenfügst ist das eine einfache Abfrage 
des Vorzeichens, ob es Tag oder Nacht ist.

Gruß

Kai

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: UBoot-Stocki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

alles klar - vielen Dank an alle!

Gruß

Andreas

Autor: UBoot-Stocki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

wenn ich diese Formelmonster so sehe, frage ich mich ob ich das meinem 
Mega16 antun will. Folgendes habe ich mir überlegt:

So wie ich das sehe, hängt das Ergebnis (Sonnenauf- und Untergang) nicht 
vom Jahr ab. D.h. die Zeiten sind jedes Jahr gleich!

Wenn ich mich jetzt damit zufrieden gebe, dass ich nur jede Woche die 
Schaltzeiten anpasse (Es geht um meine Rolladensteuerung, die 
automatisch bei Sonnen-aufgang die Rolläden offnen bzw. bei -untergang 
schliessen soll) habe ich nur 52 verschiedene Start- und Schlieszeiten.

Mit ein bischen zusätzlichem Code komme ich auf eine 52-zeilige Tabelle 
mit 2 Spalten macht ein paar hundert Byte im Flash.

Ist so eine Tabellenorientierte Lösung nicht einfacher, schneller und 
evtl. sogar noch kürzer als wenn ich die Formelmonster der Links mit 
Floatingpoint-Variablen, Sinus, Cosinus etc. umsetze ???

Wer hat hier Erfahrung? Eine Meinung ?

Gruß und Danke

Andreas

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
UBoot-Stocki wrote:

> wenn ich diese Formelmonster so sehe, frage ich mich ob ich das meinem
> Mega16 antun will.

Na ja. So schlimm ist es dann auch wieder nicht.
Du kriegst von Atmel für nicht benötigten Flash kein Geld zurück :-)

> Wer hat hier Erfahrung? Eine Meinung ?

Solange du das nur für dich baust, ist eine Tabellenlösung
sicher mehr als ausreichend.

Wenn du das aber kommerziell vertreiben willst, brauchst du
die Formeln. Die Auf und Untergangszeiten sind am gleichen
Tag in Rom nun mal anders als in Hamburg.

Implementiere es so, wie es für dich am einfachsten ist.
Ich würde die Formeln nehmen.
Grund: die 5 Formeln einmal abzutippen geht (für mich) allemal
schneller als das ganze in Excel abzutippen, eine Tabelle zu
erstellen, diese Tabelle abspeichern, in den C Code zu übernehmen
und den Tabellenzugriff zu programmieren. Da ist es mir doch
lieber der Mega rechnet einmal am Tag was ordentliches aus
anstatt nur so vor sich hinzudösen. Er hat ja Zeit. :-)

Autor: Uwe Nagel (ulegan)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mal den hier
http://williams.best.vwh.net/sunrise_sunset_algorithm.htm
angegebenen Algoritmus angepasst.
Die errechneten Werte weichen von den im 'Himmelsjahr' gelisteten Zeiten 
um +-1 Minute ab, was wohl mit Rundungseffekten zu tun hat.
Auf einem Mega32 belegt der Code (ohne die Math-lib) 1284 Byte.

Gruß Uwe

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.