Zeile 1: |
Zeile 1: |
| + | =Allgemeines= |
| + | Für die Bestimmung des Sonnenstandes auf einem (ortsfesten) Microcontroller |
| + | müssen vor allem zwei Probleme gelöst werden: |
| + | Der Microcontroller muss die Zeit batteriegepuffert bestimmen können, |
| + | und er muss mit einem hinreichend einfachen Algorithmus aus Datum, Zeit und |
| + | Ort daraus den Sonnenstand berechnen können. |
| + | Der Algorithmus muss ggf. noch auf die Einschränkungen des verwendeten |
| + | Microcontrollers Rücksicht nehmen und entsprechend adaptiert werden. |
| + | Bei Arduino gibt es beispielsweise das Problem, dass der Datentyp double |
| + | in Wirklichkeit nur mit Präzision von float rechnet (also 23 Bit Mantisse). |
| + | |
| + | ==Die Zeit== |
| + | [[Image:Arduino_DS1307.jpg|thumb|Zeitgeberbaustein DS1307]] |
| + | Die Zeit (Greenwich Time aka UT) bestimme ich mit den DS1307 Baustein. |
| + | Nach der Beschreibung von http://www.glacialwanderer.com/hobbyrobotics/?p=12 |
| + | hat das auf Anhieb funktioniert. Ich hatte keinen 2.2K Widerstand, mit einem |
| + | 4.7K war es auch kein Problem. |
| + | |
| + | ==Berechnung von Azimut und Elevation== |
| [[Image:SonnenstandberechnerGUI.png|thumb|GUI zur Sonnenstandberechnung]] | | [[Image:SonnenstandberechnerGUI.png|thumb|GUI zur Sonnenstandberechnung]] |
| Mit dem Programm Sonnenstandsberechner kann der jeweilige | | Mit dem Programm Sonnenstandsberechner kann der jeweilige |