Forum: Mikrocontroller und Digitale Elektronik Sonnenaufgang/Sonnenuntergang in Tabelle (Astro-Uhr/Dämmerungsschalter)?


von Idefix (Gast)


Lesenswert?

Manche RTC Module (China DS3231, 
https://datasheets.maximintegrated.com/en/ds/DS3231.pdf) haben ein 4kB 
EEPROM mit dabei, das würde locker reichen, um für 365 Tage Stunde (5 
bits) und Minute (6 bits) von Sonnenauf- und Untergang abzulegen, um die 
Berechnung zu sparen.

Mit CR2032 und einer Laufzeit von 10 Jahren (?) und einer Ungenauigkeit 
von 1 min/Jahr wäre das für mich eine gute Lösung.

2x am Tag:
- mit Alarmsignal MCU starten,
- EEPROM lesen
- Alarmzeit in RTC schreiben
- Ausgang schalten

Tagsüber müsste nur die RTC aus der Batterie laufen, nachts wäre die 
Schaltung aus dem Stromnetz versorgt. Die Energie zum Einschalten (SSR, 
einige mA für einige 10 ms) müsste also aus einem Puffer kommen (der den 
Tag über halten muss).

Dann ist evtl. ein Superkondensator besser als die Lithium-Batterie.
Oder eine Kombination, da keine Einschränkung der Gangreserve.

Die eigentliche Frage ist aber die nach den Tabellendaten.
Was gibt es bei der Erstellung dieser Tabelle außer Schaltjahren 
(https://de.wikipedia.org/wiki/Schaltjahr) noch zu berücksichtigen?
Wie erfolgt der Lookup am günstigsten?
Der DS3231 berücksichtigt Schaltjahre bis 2100.
Allerdings sehe ich nicht, wie man ein Schaltjahr erkennt (Status bit?).
Ansonsten sollte es einfach sein, Monat und Tag auf EEPROM Index zu 
mappen.

struct day {
  uint8_t rise_hour;
  uint8_t rise_min;
  uint8_t set_hour;
  uint8_t set_min;
};

// struct day eeprom[366];

von PittyJ (Gast)


Lesenswert?

Theoretisch würde auch ein Viertel der Daten reichen.
Die Daten von 21.12. bis 20.6. spiegeln, und dann erhält man die Daten 
für 21.6 bis 20.12.

Und die Daten 21.12. bis 20.3. sind die gleichen wie von 21.3. bis 20.6. 
, wenn man die Differenz vom Mittelwert (also 21.3.) betrachtet.

Also würden die Daten 21.12 bis 20.3. reichen, der Rest kann einfach 
berechnet werden.

von MaWin (Gast)


Lesenswert?

Idefix schrieb:
> um die Berechnung zu sparen.

Warum sollte man sich die Berechnung sparen, kein uC zu Hand ? Berechnet 
passt die Tabelle wenigstens zum eingegebenen Breitengrad.  Der uC hat 
24 Stunden Zeit, so langsam kann er gar nicht rechnen.

Übrigens wird es bei den allermeisten Fällen nichts aus machen, wenn die 
Uhrzeit nur wôchentlich nachgestellt wird.

von Wolfgang (Gast)


Lesenswert?

Idefix schrieb:
> Die eigentliche Frage ist aber die nach den Tabellendaten.
> Was gibt es bei der Erstellung dieser Tabelle außer Schaltjahren
> (https://de.wikipedia.org/wiki/Schaltjahr) noch zu berücksichtigen?

Die Sonnenauf- und -untergangsdaten ändern sich nicht erratisch, d.h. du 
brauchst nur ein paar Eckdaten und kannst dazwischen interpolieren. Wenn 
dein Dämmerungsschalter 5 Minuten falsch geht, stört das selbst in den 
Tropen nicht so wirklich. Für die Sonnenhöhe würde das einen Fehler von 
gerade mal gut 1° bedeuten (halbe Daumenbreite am ausgestreckten Arm).
Die maximale tägliche Änderung von Aufgangs- bzw. Untergangszeit hast du 
bei Tag- und Nachtgleiche und die beträgt dort auch nur gut 2 Minuten.
Und das Schaltjahr spielt auch keine Nennenswerte Rolle, weil das 
sowieso nur das langfristige Aufsummieren von Rundungsfehler zwischen 
Jahreslänge und Rotationsdauer vermeidet. Um das auch zu 
berücksichtigen, bräuchtest du eine Tabelle über 4 Jahre.
Kurz: Auf einen Tag kommt es für einen Dämmerungsschalter nicht an.
Was ist denn das für ein Controller, auf dem die Sonnenstandrechnung 
nicht unterzubringen ist. Sobald eine Float-Bibliothek von vielleicht 1k 
rein passt, ist es doch einfacher die Rechnung direkt dort 
durchzuführen.

von Wolfgang (Gast)


Lesenswert?

PittyJ schrieb:
> Theoretisch würde auch ein Viertel der Daten reichen.
> Die Daten von 21.12. bis 20.6. spiegeln, und dann erhält man die Daten
> für 21.6 bis 20.12.

Dann verwendest du eine falsche Theorie.

Praktisch ist die Erdbahn elliptisch und entsprechend verschieben sich 
die Zeiten (Stichwort: Zeitgleichung)
https://de.wikipedia.org/wiki/Zeitgleichung

Das war's dann mit der Symmetrie

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Wolfgang schrieb:
> Das war's dann mit der Symmetrie
Allerdings ist das auch ziemlich unwichtig, denn die Astronomie 
ignoriert im Weiteren völlig, wie hell es denn tatsächlich ist.

Es kann durchaus sein dass es heute dank stammer Bewölkung abends um 6 
schon richtig dunkel, es aber tags drauf eine halbe Stunde später bei 
einem schönen Sonnenuntergang noch ziemlich hell ist.

Einen Dämmerungsschalter würde ich deshalb nur ganz grob nach der Zeit 
und in der Summe vorrangig nach der tatsächlichen Helligkeit steuern.

von Wolfgang (Gast)


Lesenswert?

Lothar M. schrieb:
> Allerdings ist das auch ziemlich unwichtig, denn die Astronomie
> ignoriert im Weiteren völlig, wie hell es denn tatsächlich ist.

Das war aber nicht die Frage des TO.
Sonst könnte er einfach einen Helligkeitssensor zur Steuerung verwenden.

von Harald W. (wilhelms)


Lesenswert?

Idefix schrieb:

> Was gibt es bei der Erstellung dieser Tabelle außer Schaltjahren
> (https://de.wikipedia.org/wiki/Schaltjahr) noch zu berücksichtigen?

Der Ort, für den diese Tabelle gelten soll. Sonnenauf- und
untergänge sind ortsabhängig.

von Wolfgang (Gast)


Lesenswert?

Harald W. schrieb:
> Der Ort, für den diese Tabelle gelten soll. Sonnenauf- und
> untergänge sind ortsabhängig.

Aach - das ändert aber nichts am Prinzip

von Harald W. (wilhelms)


Lesenswert?

Wolfgang schrieb:

>> Der Ort, für den diese Tabelle gelten soll. Sonnenauf- und
>> untergänge sind ortsabhängig.
>
> Aach - das ändert aber nichts am Prinzip

Das heisst, man muss die ortsabhängigen Korrekturen zusätzlich
selbst berechnen?

von Idefix (Gast)


Lesenswert?

Habe nur 2k Flash, das wird eher nichts mit float.
Eine Integer-Berechnung habe ich noch nicht gesehen.
Die beiden C Funktionen, die ich gefunden habe, liefern abweichende 
Ergebnisse. Dann gibt's noch einige CPP Klassen, die ich erst umbauen 
müsste...
Hardware-Upgrade möchte ich auch vermeiden.

RTC samt Eeprom ist bezahlt, da könnte ich ihn auch nutzen..

Die 17 min der Zeitgleichung sind mir egal, sonst ist vielleicht noch 
Platz für 4 Jahre Offset-Daten, oder eine platzsparende Näherung.

Die Witterungseinflüsse nehme ich in Kauf, man kann ja ne halbe Stunde 
auf der sicheren Seite schalten.
Dafür hat man keine Sorgen mit Fremdlicht, Schmutz, Flora & Fauna, 
Alterung & Korrosion.

von Wolfgang (Gast)


Lesenswert?

Harald W. schrieb:
> Das heisst, man muss die ortsabhängigen Korrekturen zusätzlich
> selbst berechnen?

Wenn die Tabelle für den Ort korrekt aufgestellt wurde, muss nichts 
zusätzlich berechnet werden.
Oder muss jetzt auch noch erwähnt werden, dass die Erde keine Scheibe 
ist? ;-)

von Idefix (Gast)


Lesenswert?

Ortsabhängigkeit ist bekannt, danke. Es ist ein ortsfestes Unikat, daher 
kein Problem.

von Pepe T. (pepe_t)


Lesenswert?

Schau mal nach wie Tasmota das macht.
Das brauch ich um meine inverter ein/auszuschalten.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Wolfgang schrieb:
> Das war aber nicht die Frage des TO.
Ich wollte es nur erwähnt haben, weil schon so einige TO mit ihrem 
Lösungansatz nicht auf dem Weg zum Ziel waren.

Und er redet eben von "tags" und "nachts" und von einem 
"Dämmerungsschalter". Das hat für mich eindeutig mehr mit realer 
Helligkeit als mit einer berechneten Sonnenkurve zu tun.

Idefix schrieb:
> Allerdings sehe ich nicht, wie man ein Schaltjahr erkennt (Status bit?).
Welchen Fehler machst du, wenn du einfach immer von einem normalen 
Nichtschaltjahr ausgehst?
Das geht dann in 3 von 4 Jahren gut. Und im verbleibenden Schaltjahr 
hast du nicht viel mehr Abweichung, als deine Tabellenauflösung im 
Minutenbereich hergibt.

von Wolfgang (Gast)


Lesenswert?

Idefix schrieb:
> Die 17 min der Zeitgleichung sind mir egal, sonst ist vielleicht noch
> Platz für 4 Jahre Offset-Daten, oder eine platzsparende Näherung.

Die Zeitgleichung macht dir die einfache, von PittyJ angeführte 
Symmetrie kaputt, weil das Perihel der Erde etwa am 4 Januar liegt.
Du kannst beide Komponenten getrennt betrachten und dann aufsummieren.

Das ist kein Grund, die max. 17 min der Zeitgleichung zu 
vernachlässigen. Die 4 Jahre vom Schaltjahreszyklus sind eher zu 
verschmerzen, weil das nur einen Fehler von 2 min erzeugen würde.

von Wolfgang (Gast)


Lesenswert?

Lothar M. schrieb:
> Welchen Fehler machst du, wenn du einfach immer von einem normalen
> Nichtschaltjahr ausgehst?

Schrieb ich bereits:

Wolfgang schrieb:
> Die maximale tägliche Änderung ...

von Idefix (Gast)


Lesenswert?

Wolfgang schrieb:
> Und das Schaltjahr spielt auch keine Nennenswerte Rolle, weil das
> sowieso nur das langfristige Aufsummieren von Rundungsfehler zwischen
> Jahreslänge und Rotationsdauer vermeidet. Um das auch zu
> berücksichtigen, bräuchtest du eine Tabelle über 4 Jahre.

Ok, wenn es in 20 Jahren 5 Tage falsch liegt und dann 10 min zusätzliche 
Abweichung entstehen, wäre das tatsächlich kein Problem.

Also bleibt es bei einer Tabelle mit 365 Tagen und der 29.2. wird wie 
der 28.2. behandelt.

von Idefix (Gast)


Lesenswert?

@wolfgang

Wie kann ich denn die Zeitgleichung für die nächsten zb 20 Jahre mit dem 
verbleibenden Tabellenplatz berücksichtigen?
1464 Bytes für die Zeiten eines Jahres und ebensoviel für vier Jahre 
Zeitgleichung.

Dann brauche ich zum Aufstellen der Tabelle noch eine Funktion, die die 
Zeitgleichung nicht berücksichtigt, und eine, die nur die 
Zeitgleichung für vier Jahre ausgibt.
Oder vier Jahre berechnen, und die Zeitgleichung herausholen...
Evtl. astropy.

von Wolfgang (Gast)


Lesenswert?

Idefix schrieb:
> Wie kann ich denn die Zeitgleichung für die nächsten zb 20 Jahre mit dem
> verbleibenden Tabellenplatz berücksichtigen?

Das Jahr hat eine Länge von etwa 365.2422 Tagen, die Erdrotation bezogen 
auf den Sonnenstand dauert 24h. Nach 1461 Tagen (eigentlich 1460d 23h 
15m) wiederholt sich daher Datum und Uhrzeit des Frühlingsanfangs als 
Bezugspunkt halbwegs genau. Darum die 4-Jahres Regelung für die 
Schaltjahre mit den Ausnahmenregeln für die vollen Jahrhunderte. Das hat 
nichts mit der Zeitgleichung zu tun, die die Verschiebung des 
Mittagszeitpunktes (=Sonne steht am höchsten) durch Neigung der Erdachse 
und elliptische Erdumlaufbahn berücksichtigt.
Wenn du deine Tabelle auf 366 Tage auslegst und ggf. den letzten Tag weg 
lässt, hast du halt den Fehler von max gut 2min, was für einen 
Dämmerungsschalter zu verschmerzen ist ;-)

von Kurt (Gast)


Lesenswert?

Ist die Zeitgleichung einmal für einen Ort ausgerechnet, (zur 
Fehlerminimierung für 2022, also genau zwischen zwei Schaltjahren), 
sieht man, dass die maximale Änderung von Tag zu Tag < 30 Sekunden 
beträgt.

Liegt man also im Schaltjahr einen Tag (eigentlich nur +/- 1/2 Tag) 
daneben ist der Fehler deutlich unter 30 Sekunden.

Der DS3231 mit 2 ppm Genauigkeit bei 0...40° C darf nach einem Jahr 1 
Minute daneben liegen.

Die "Leap-Year Compensation Valid Up to 2100" ist übrigens ein Lacher, 
erst ab 2100 kommt die 100/400-Jahr-Regel zum Zuge, die im Jahr 2000 zu 
Verwirrung führte.

von Wolfgang (Gast)


Lesenswert?

Kurt schrieb:
> Ist die Zeitgleichung einmal für einen Ort ausgerechnet

Die hat nichts mit dem Ort zu tun.

von Wendels B. (wendelsberg)


Lesenswert?

Wolfgang schrieb:
> Die hat nichts mit dem Ort zu tun.

Doch natürlich, denk einfach an Nordpol oder Äquator.

von Wolfgang (Gast)


Lesenswert?

Wendels B. schrieb:
> Doch natürlich, denk einfach an Nordpol oder Äquator.

Unsinn. Die Zeitgleichung beschreibt die Abweichung der mittleren 
Ortszeit von der wahren Ortszeit.

von Peter M. (r2d3)


Lesenswert?

Hallo Idefix,

anbei ein Beispiel, wie Du Deine Tabelle realisieren könntest.
Im folgenden findest Du für das Schaltjahr 2024 für jeden Tag alle 
Sonnenaufgangszeiten für Hannover in Deutschland. Dahinter befindet sich 
die tägliche Änderung dieser Zeit in Sekunden. Dank der zweiten Spalte 
gilt die Tabelle sowohl für normale Jahre als auch für Schaltjahre.
Entscheidend ist, dass Du zu einem gegebenen Datum ermittelst, der 
wievielte Tag des Jahres dieses Datum entspricht!

Beispiel:
Der 9.1.2024 ist der neunte Tag im Jahr. Addiere zur Uhrzeit 8:30:08 die 
Summe aller Offsets in der letzten Spalte vom Index 0 bis zum Index 9.

Leider hast Du nicht geschrieben, wieviel Numerik Dir zur Verfügung 
steht!
Der 29.2.2024 erhält dieser Logik nach übrigens die Uhrzeit vom 
1.3.2023.

Für den Untergang braucht man eigentlich keine zweite Tabelle, schau' 
Dir die Formeln auf https://www.astronomie.info/zeitgleichung/ an!

Es gibt auch noch andere genauere Routinen um den Sonnenaufgang und 
Untergang zu berechnen. Ich habe die simpelste verwendet.

Das Beispiel ist nur eine primitive Variante einer Look-Up-Tabelle. Es 
sind noch viel ausgefallenere, schlauere und kompaktere Varianten 
möglich.

01.01.24  0  8:30:08  0
02.01.24  1  8:29:54  -14
03.01.24  2  8:29:37  -17
04.01.24  3  8:29:17  -20
05.01.24  4  8:28:54  -23
06.01.24  5  8:28:28  -26
07.01.24  6  8:27:59  -29
08.01.24  7  8:27:28  -32
09.01.24  8  8:26:53  -34
10.01.24  9  8:26:16  -37
11.01.24  10  8:25:36  -40
12.01.24  11  8:24:53  -43
13.01.24  12  8:24:08  -46
14.01.24  13  8:23:20  -48
15.01.24  14  8:22:29  -51
16.01.24  15  8:21:35  -53
17.01.24  16  8:20:39  -56
18.01.24  17  8:19:41  -59
19.01.24  18  8:18:40  -61
20.01.24  19  8:17:36  -64
21.01.24  20  8:16:30  -66
22.01.24  21  8:15:21  -68
23.01.24  22  8:14:11  -71
24.01.24  23  8:12:58  -73
25.01.24  24  8:11:42  -75
26.01.24  25  8:10:25  -78
27.01.24  26  8:09:05  -80
28.01.24  27  8:07:43  -82
29.01.24  28  8:06:19  -84
30.01.24  29  8:04:52  -86
31.01.24  30  8:03:24  -88
01.02.24  31  8:01:54  -90
02.02.24  32  8:00:22  -92
03.02.24  33  7:58:47  -94
04.02.24  34  7:57:11  -96
05.02.24  35  7:55:34  -98
06.02.24  36  7:53:54  -100
07.02.24  37  7:52:12  -101
08.02.24  38  7:50:29  -103
09.02.24  39  7:48:44  -105
10.02.24  40  7:46:58  -107
11.02.24  41  7:45:10  -108
12.02.24  42  7:43:20  -110
13.02.24  43  7:41:29  -111
14.02.24  44  7:39:36  -113
15.02.24  45  7:37:42  -114
16.02.24  46  7:35:46  -116
17.02.24  47  7:33:49  -117
18.02.24  48  7:31:51  -118
19.02.24  49  7:29:51  -120
20.02.24  50  7:27:51  -121
21.02.24  51  7:25:48  -122
22.02.24  52  7:23:45  -123
23.02.24  53  7:21:41  -124
24.02.24  54  7:19:35  -126
25.02.24  55  7:17:29  -127
26.02.24  56  7:15:21  -128
27.02.24  57  7:13:12  -129
28.02.24  58  7:11:03  -130
29.02.24  59  7:08:52  -131
01.03.24  60  7:06:41  -131
02.03.24  61  7:04:28  -132
03.03.24  62  7:02:15  -133
04.03.24  63  7:00:01  -134
05.03.24  64  6:57:46  -135
06.03.24  65  6:55:31  -135
07.03.24  66  6:53:15  -136
08.03.24  67  6:50:58  -137
09.03.24  68  6:48:41  -137
10.03.24  69  6:46:23  -138
11.03.24  70  6:44:05  -138
12.03.24  71  6:41:46  -139
13.03.24  72  6:39:26  -139
14.03.24  73  6:37:06  -140
15.03.24  74  6:34:46  -140
16.03.24  75  6:32:26  -141
17.03.24  76  6:30:05  -141
18.03.24  77  6:27:44  -141
19.03.24  78  6:25:22  -141
20.03.24  79  6:23:01  -142
21.03.24  80  6:20:39  -142
22.03.24  81  6:18:17  -142
23.03.24  82  6:15:55  -142
24.03.24  83  6:13:33  -142
25.03.24  84  6:11:11  -142
26.03.24  85  6:08:49  -142
27.03.24  86  6:06:27  -142
28.03.24  87  6:04:05  -142
29.03.24  88  6:01:43  -142
30.03.24  89  5:59:21  -142
31.03.24  90  5:57:00  -141
01.04.24  91  5:54:38  -141
02.04.24  92  5:52:17  -141
03.04.24  93  5:49:57  -141
04.04.24  94  5:47:36  -140
05.04.24  95  5:45:16  -140
06.04.24  96  5:42:57  -140
07.04.24  97  5:40:38  -139
08.04.24  98  5:38:19  -139
09.04.24  99  5:36:01  -138
10.04.24  100  5:33:43  -138
11.04.24  101  5:31:26  -137
12.04.24  102  5:29:10  -136
13.04.24  103  5:26:55  -136
14.04.24  104  5:24:40  -135
15.04.24  105  5:22:26  -134
16.04.24  106  5:20:12  -133
17.04.24  107  5:18:00  -132
18.04.24  108  5:15:48  -132
19.04.24  109  5:13:37  -131
20.04.24  110  5:11:28  -130
21.04.24  111  5:09:19  -129
22.04.24  112  5:07:11  -128
23.04.24  113  5:05:05  -127
24.04.24  114  5:02:59  -125
25.04.24  115  5:00:55  -124
26.04.24  116  4:58:52  -123
27.04.24  117  4:56:50  -122
28.04.24  118  4:54:49  -121
29.04.24  119  4:52:50  -119
30.04.24  120  4:50:52  -118
01.05.24  121  4:48:56  -116
02.05.24  122  4:47:01  -115
03.05.24  123  4:45:07  -114
04.05.24  124  4:43:15  -112
05.05.24  125  4:41:25  -110
06.05.24  126  4:39:36  -109
07.05.24  127  4:37:49  -107
08.05.24  128  4:36:04  -105
09.05.24  129  4:34:20  -104
10.05.24  130  4:32:38  -102
11.05.24  131  4:30:59  -100
12.05.24  132  4:29:21  -98
13.05.24  133  4:27:45  -96
14.05.24  134  4:26:11  -94
15.05.24  135  4:24:39  -92
16.05.24  136  4:23:09  -90
17.05.24  137  4:21:42  -88
18.05.24  138  4:20:16  -85
19.05.24  139  4:18:53  -83
20.05.24  140  4:17:32  -81
21.05.24  141  4:16:14  -78
22.05.24  142  4:14:58  -76
23.05.24  143  4:13:44  -74
24.05.24  144  4:12:33  -71
25.05.24  145  4:11:24  -69
26.05.24  146  4:10:18  -66
27.05.24  147  4:09:15  -63
28.05.24  148  4:08:14  -61
29.05.24  149  4:07:16  -58
30.05.24  150  4:06:21  -55
31.05.24  151  4:05:28  -53
01.06.24  152  4:04:38  -50
02.06.24  153  4:03:51  -47
03.06.24  154  4:03:07  -44
04.06.24  155  4:02:26  -41
05.06.24  156  4:01:48  -38
06.06.24  157  4:01:13  -35
07.06.24  158  4:00:41  -32
08.06.24  159  4:00:12  -29
09.06.24  160  3:59:45  -26
10.06.24  161  3:59:22  -23
11.06.24  162  3:59:02  -20
12.06.24  163  3:58:46  -17
13.06.24  164  3:58:32  -14
14.06.24  165  3:58:21  -11
15.06.24  166  3:58:14  -8
16.06.24  167  3:58:09  -4
17.06.24  168  3:58:08  -1
18.06.24  169  3:58:10  2
19.06.24  170  3:58:15  5
20.06.24  171  3:58:23  8
21.06.24  172  3:58:34  11
22.06.24  173  3:58:48  14
23.06.24  174  3:59:05  17
24.06.24  175  3:59:25  20
25.06.24  176  3:59:48  23
26.06.24  177  4:00:14  26
27.06.24  178  4:00:43  29
28.06.24  179  4:01:15  32
29.06.24  180  4:01:50  35
30.06.24  181  4:02:27  37
01.07.24  182  4:03:07  40
02.07.24  183  4:03:50  43
03.07.24  184  4:04:36  45
04.07.24  185  4:05:24  48
05.07.24  186  4:06:14  51
06.07.24  187  4:07:07  53
07.07.24  188  4:08:03  55
08.07.24  189  4:09:00  58
09.07.24  190  4:10:01  60
10.07.24  191  4:11:03  62
11.07.24  192  4:12:07  64
12.07.24  193  4:13:14  67
13.07.24  194  4:14:22  69
14.07.24  195  4:15:33  70
15.07.24  196  4:16:45  72
16.07.24  197  4:17:59  74
17.07.24  198  4:19:15  76
18.07.24  199  4:20:33  78
19.07.24  200  4:21:52  79
20.07.24  201  4:23:13  81
21.07.24  202  4:24:35  82
22.07.24  203  4:25:58  84
23.07.24  204  4:27:23  85
24.07.24  205  4:28:49  86
25.07.24  206  4:30:17  87
26.07.24  207  4:31:45  89
27.07.24  208  4:33:15  90
28.07.24  209  4:34:46  91
29.07.24  210  4:36:17  92
30.07.24  211  4:37:50  93
31.07.24  212  4:39:23  93
01.08.24  213  4:40:57  94
02.08.24  214  4:42:32  95
03.08.24  215  4:44:08  96
04.08.24  216  4:45:44  96
05.08.24  217  4:47:21  97
06.08.24  218  4:48:58  97
07.08.24  219  4:50:36  98
08.08.24  220  4:52:14  98
09.08.24  221  4:53:53  99
10.08.24  222  4:55:32  99
11.08.24  223  4:57:12  99
12.08.24  224  4:58:51  100
13.08.24  225  5:00:31  100
14.08.24  226  5:02:12  100
15.08.24  227  5:03:52  101
16.08.24  228  5:05:33  101
17.08.24  229  5:07:14  101
18.08.24  230  5:08:55  101
19.08.24  231  5:10:36  101
20.08.24  232  5:12:17  101
21.08.24  233  5:13:59  101
22.08.24  234  5:15:40  101
23.08.24  235  5:17:21  101
24.08.24  236  5:19:03  101
25.08.24  237  5:20:44  101
26.08.24  238  5:22:26  101
27.08.24  239  5:24:07  101
28.08.24  240  5:25:49  101
29.08.24  241  5:27:30  101
30.08.24  242  5:29:12  101
31.08.24  243  5:30:53  101
01.09.24  244  5:32:34  101
02.09.24  245  5:34:16  101
03.09.24  246  5:35:57  101
04.09.24  247  5:37:38  101
05.09.24  248  5:39:19  101
06.09.24  249  5:41:01  101
07.09.24  250  5:42:42  101
08.09.24  251  5:44:23  101
09.09.24  252  5:46:04  101
10.09.24  253  5:47:45  101
11.09.24  254  5:49:26  101
12.09.24  255  5:51:07  101
13.09.24  256  5:52:48  101
14.09.24  257  5:54:30  101
15.09.24  258  5:56:11  101
16.09.24  259  5:57:52  101
17.09.24  260  5:59:33  101
18.09.24  261  6:01:15  101
19.09.24  262  6:02:56  101
20.09.24  263  6:04:37  101
21.09.24  264  6:06:19  102
22.09.24  265  6:08:01  102
23.09.24  266  6:09:42  102
24.09.24  267  6:11:24  102
25.09.24  268  6:13:06  102
26.09.24  269  6:14:48  102
27.09.24  270  6:16:31  102
28.09.24  271  6:18:13  102
29.09.24  272  6:19:56  103
30.09.24  273  6:21:38  103
01.10.24  274  6:23:21  103
02.10.24  275  6:25:05  103
03.10.24  276  6:26:48  103
04.10.24  277  6:28:32  104
05.10.24  278  6:30:15  104
06.10.24  279  6:31:59  104
07.10.24  280  6:33:44  104
08.10.24  281  6:35:28  104
09.10.24  282  6:37:13  105
10.10.24  283  6:38:58  105
11.10.24  284  6:40:43  105
12.10.24  285  6:42:28  105
13.10.24  286  6:44:14  106
14.10.24  287  6:46:00  106
15.10.24  288  6:47:46  106
16.10.24  289  6:49:32  106
17.10.24  290  6:51:18  107
18.10.24  291  6:53:05  107
19.10.24  292  6:54:52  107
20.10.24  293  6:56:39  107
21.10.24  294  6:58:27  107
22.10.24  295  7:00:14  107
23.10.24  296  7:02:02  108
24.10.24  297  7:03:49  108
25.10.24  298  7:05:37  108
26.10.24  299  7:07:25  108
27.10.24  300  7:09:13  108
28.10.24  301  7:11:01  108
29.10.24  302  7:12:49  108
30.10.24  303  7:14:37  108
31.10.24  304  7:16:25  108
01.11.24  305  7:18:14  108
02.11.24  306  7:20:01  108
03.11.24  307  7:21:49  108
04.11.24  308  7:23:37  108
05.11.24  309  7:25:24  107
06.11.24  310  7:27:12  107
07.11.24  311  7:28:59  107
08.11.24  312  7:30:45  107
09.11.24  313  7:32:32  106
10.11.24  314  7:34:18  106
11.11.24  315  7:36:03  105
12.11.24  316  7:37:48  105
13.11.24  317  7:39:33  104
14.11.24  318  7:41:17  104
15.11.24  319  7:43:00  103
16.11.24  320  7:44:42  103
17.11.24  321  7:46:24  102
18.11.24  322  7:48:05  101
19.11.24  323  7:49:45  100
20.11.24  324  7:51:24  99
21.11.24  325  7:53:02  98
22.11.24  326  7:54:39  97
23.11.24  327  7:56:15  96
24.11.24  328  7:57:50  95
25.11.24  329  7:59:24  94
26.11.24  330  8:00:56  92
27.11.24  331  8:02:27  91
28.11.24  332  8:03:56  89
29.11.24  333  8:05:24  88
30.11.24  334  8:06:50  86
01.12.24  335  8:08:15  85
02.12.24  336  8:09:37  83
03.12.24  337  8:10:58  81
04.12.24  338  8:12:18  79
05.12.24  339  8:13:35  77
06.12.24  340  8:14:50  75
07.12.24  341  8:16:04  73
08.12.24  342  8:17:15  71
09.12.24  343  8:18:24  69
10.12.24  344  8:19:30  67
11.12.24  345  8:20:35  64
12.12.24  346  8:21:37  62
13.12.24  347  8:22:37  60
14.12.24  348  8:23:34  57
15.12.24  349  8:24:29  55
16.12.24  350  8:25:21  52
17.12.24  351  8:26:10  50
18.12.24  352  8:26:57  47
19.12.24  353  8:27:41  44
20.12.24  354  8:28:22  41
21.12.24  355  8:29:01  39
22.12.24  356  8:29:37  36
23.12.24  357  8:30:10  33
24.12.24  358  8:30:40  30
25.12.24  359  8:31:07  27
26.12.24  360  8:31:31  24
27.12.24  361  8:31:52  21
28.12.24  362  8:32:11  18
29.12.24  363  8:32:26  15
30.12.24  364  8:32:38  12
31.12.24  365  8:32:47  9

: Bearbeitet durch User
von Kurt (Gast)


Lesenswert?

Wolfgang, du hast schon recht mit der ortsunabhängigen Differenz von 
mittlerer zu wahrer Ortszeit.
Ich habe mich ungenau ausgedrückt:
Die Auf- und Untergangszeiten, die man (mit Hilfe der Zeitgleichung) für 
einen Ort mit Länge, Breite über ein Jahr errechnet hat, kann man 
getrost jedes Jahr wieder benutzen.

Selbst Jean Meeus, anerkannter Experte für genaue astronomische 
Berechnungen, rät davon ab, Auf- und Untergangszeiten genauer, als auf 
die Minute anzugeben. - Auch Temperatur und Luftdruck haben darauf 
Einfluss.

von Idefix (Gast)


Lesenswert?

https://www.volker-quaschning.de/datserv/sunpos/index.php spuckt die 
Zeiten für ein ganzes Jahr aus (Schaltjahren fehlt der 31.12.).
Da wird die Zeitgleichung ja wohl schon drin stecken, wie auch bei 
timeanddate.com etc.
Sie ist wohl nur interessant, wenn man selbst rechnen möchte oder eine 
hohe Genauigkeit braucht. Das versuche ich ja zu vermeiden.
Ich sehe in den Daten nächsten 10 Jahren keine nennenswerten (mehrere 
Minuten) Abweichungen für meine Koordinaten!
Den Schalttag werde ich doch nicht ignorieren, stattdessen den 366 Tag. 
Sonst gibt es einen kleinen Sprung und dann den Rest des Jahres einen 
kleinen Fehler.
Dazu muss stets ermittelt werden, ob es den 29.2. gab (Schaltjahr ist), 
um den Tag (1-365) anhand des Datums, und damit den Tabellenindex zu 
ermitteln.

Peter, danke, aber da lese ich lieber direkt die Zeit aus, anstatt im 
Mittel 182 Lesevorgänge (über I2C) und Additionen zu machen.
Wie du deine Daten berechnet hast, interessiert mich aber!

astropy bestätigt die Zeiten von quaschning eher als die von 
timeanddate.

von Peter M. (r2d3)



Lesenswert?

Hallo Idefix,

Idefix schrieb:
> https://www.volker-quaschning.de/datserv/sunpos/index.php spuckt

DER Quaschning?! :(

> die
> Zeiten für ein ganzes Jahr aus (Schaltjahren fehlt der 31.12.).
> Da wird die Zeitgleichung ja wohl schon drin stecken, wie auch bei
> timeanddate.com etc.
> Sie ist wohl nur interessant, wenn man selbst rechnen möchte oder eine
> hohe Genauigkeit braucht. Das versuche ich ja zu vermeiden.
> Ich sehe in den Daten nächsten 10 Jahren keine nennenswerten (mehrere
> Minuten) Abweichungen für meine Koordinaten!
> Den Schalttag werde ich doch nicht ignorieren, stattdessen den 366 Tag.
> Sonst gibt es einen kleinen Sprung und dann den Rest des Jahres einen
> kleinen Fehler.
> Dazu muss stets ermittelt werden, ob es den 29.2. gab (Schaltjahr ist),
> um den Tag (1-365) anhand des Datums, und damit den Tabellenindex zu
> ermitteln.

Ja.

> Peter, danke, aber da lese ich lieber direkt die Zeit aus, anstatt im
> Mittel 182 Lesevorgänge (über I2C) und Additionen zu machen.

Das wusste ich nicht - bin µc-inkompetent!

> Wie du deine Daten berechnet hast, interessiert mich aber!

Du hast die Daten für die einfache, jahresunabhängige Version bekommen, 
wie Du Sie auf der verlinkten Seite findest mit den Parametern 
Hannover-Koordinaten und Zeitzone 1.

Berechnet habe ich das in Excel.
Es gab früher auf der Seite mehr Informationen und die Links 
funktionierten auch.

Anbei findest Du noch ein Bild, wie sich im Jahre 2022 die einfache 
Berechnung und die genauere Berechnung (früher auf der Webseite zu 
finden) gegenüber dem Code von Duffett schlägt.

von Idefix (Gast)


Lesenswert?

Peter M. schrieb:
> Du hast die Daten für die einfache, jahresunabhängige Version bekommen,
> wie Du Sie auf der verlinkten Seite findest mit den Parametern
> Hannover-Koordinaten und Zeitzone 1.
>
> Berechnet habe ich das in Excel.
> Es gab früher auf der Seite mehr Informationen und die Links
> funktionierten auch.
>
> Anbei findest Du noch ein Bild, wie sich im Jahre 2022 die einfache
> Berechnung und die genauere Berechnung (früher auf der Webseite zu
> finden) gegenüber dem Code von Duffett schlägt.

Ich sehe auf der Seite nichts, d.h. alle "hier"s sind keine Links.
Du hast also die Formeln in Excel realisiert?
Ein Duffet wird da auch nicht erwähnt.
Eine "genauere Berechnung", die es nicht mehr gibt, nützt mir auch nicht 
wirklich was.

Aber eigentlich ist das Thema für mich abgeschlossen - nur Schaltjahre 
haben einen kleinen Einfluss, ansonsten bleiben die Zeiten jährlich fast 
auf die Minute gleich.
Die Daten kann man sich notfalls von den Online-Anbietern 
zusammenklauben.

Also, vielen Dank für die Hinweise.

von Idefix (Gast)


Lesenswert?


von Idefix (Gast)


Lesenswert?


von Wolfgang (Gast)


Lesenswert?

Hier finden sich viele Algorithmen für die Astronomie:
Montenbruck Pfleger, Astronomie mit dem Personal Computer, Springer
https://docplayer.org/51594777-Montenbruck-pfleger-astronomie-mit-dem-personal-computer.html

von Kurt (Gast)


Lesenswert?

Och, die Daten vom Quaschning sind garnicht so schlecht:
Außer die nach dem SUNRAE-Verfahren: Fehler bis zu 10 Minuten

Die Daten nach DIN 5034 und NREL SOLPOS sind schon besser, aber
berücksichtigen nicht so richtig, dass die Lichtbrechung am Horizont zu 
real beobachtbaren (Ellipsenform der auf-/untergehenden Sonne) 
Verlagerungen des Zeitpunkts von Auf- und Untergang führt. Fehler bis 
etwa 3 Minuten.

Die Aufgangszeiten von  Peter M. (r2d3)  sind sehr gut berechnet!
Der Algorithmus dahinter ist bestimmt von Jean Meeus inspiriert!
Als Referenzjahr sollte man aber zur Fehlerminimierung ein Jahr wie 
2018, oder 2022 in der Mitte zwischen 2 Schaltjahren wählen!

von Forist (Gast)


Lesenswert?

Peter M. schrieb:
> Das Beispiel ist nur eine primitive Variante einer Look-Up-Tabelle. Es
> sind noch viel ausgefallenere, schlauere und kompaktere Varianten
> möglich.
> 01.01.24  0  8:30:08  0
> 02.01.24  1  8:29:54  -14
> 03.01.24  2  8:29:37  -17
> ...

Was bitte soll dieser Zahlensalat hier im Text?
Was für Sourcecode gilt, sollte mit ein bisschen Nachdenken auch auf 
längere Zahlenkolonnen zutreffen.
Warum kannst du die Tabelle nicht als Dateianhang beifügen?

von Idefix (Gast)


Lesenswert?

Kurt schrieb:
> garnicht so schlecht
> schon besser
> sehr gut

Bezogen auf was? Bist du gerade mit GPS und Sextant bei Flaute auf NN 
auf dem Pazifik und kannst die Berechnung verifizieren (mit welcher 
Genauigkeit)?

Mein Link ist kaputt, der hier geht hoffentlich:
https://www.cambridge.org/core/books/practical-astronomy-with-your-calculator-or-spreadsheet/AE9BF845B4C2DDFDA0BDCFF3F51EB10E

https://www.phy.cam.ac.uk/directory/duffettsmithp

https://en.wikipedia.org/wiki/Jean_Meeus
Astronomical Formulae for Calculators (1979), 1st ed, ISBN 0-943396-22-0

PyMeeus is a Python implementation of the astronomical algorithms 
described in the classical book ‘Astronomical Algorithms, 2nd Edition, 
Willmann-Bell Inc. (1998)’ by Jean Meeus.
https://pymeeus.readthedocs.io/en/latest/
https://pymeeus.readthedocs.io/en/latest/examples/ex-Sun.html

Man muss sich schon etwas mit der Materia auskennen, um mit diesen 
Funktionen den Sonnenaufgang zu berechnen.

von Peter M. (r2d3)


Lesenswert?

Hallo Kurt,

Kurt schrieb:
> Och, die Daten vom Quaschning sind garnicht so schlecht:
> Außer die nach dem SUNRAE-Verfahren: Fehler bis zu 10 Minuten

> Die Aufgangszeiten von  Peter M. (r2d3)  sind sehr gut berechnet!
> Der Algorithmus dahinter ist bestimmt von Jean Meeus inspiriert!
> Als Referenzjahr sollte man aber zur Fehlerminimierung ein Jahr wie
> 2018, oder 2022 in der Mitte zwischen 2 Schaltjahren wählen!

Ich kenne den Algorithmus von Jean Meeus nicht. Früher gab es auf der 
Astronomie-Internetseite noch ein zweites genaueres Verfahren.

Leider habe ich mir nicht aufgeschrieben, wieso ich auch den Duffett 
programmiert hatte. Die Internetseite war früher umfangreicher und 
vermutlich war der als genaueste Referenz verlinkt.

Hier nochmal alle drei Verfahren für Dich auf Basis von 2022 im 
Vergleich.
v2000 ist die noch aufzufindende Methode, v2005 ist die genauere 
Variante aus dem Jahr 2005 auf dieser Astroseite. Jetzt ist sie 
verschwunden.

Ort  Hannover
Länge  9,733333333
Breite  52,36666667
Zonenzeit  1

Datum          v2000  v2005  Duffett
01.01.22  8:30:01  8:30:01  8:31:03
02.01.22  8:29:52  8:29:52  8:30:54
03.01.22  8:29:38  8:29:38  8:30:42
04.01.22  8:29:22  8:29:22  8:30:26
05.01.22  8:29:02  8:29:02  8:30:07
06.01.22  8:28:39  8:28:39  8:29:44
07.01.22  8:28:12  8:28:12  8:29:18
08.01.22  8:27:42  8:27:42  8:28:48
09.01.22  8:27:08  8:27:08  8:28:16
10.01.22  8:26:32  8:26:32  8:27:40
11.01.22  8:25:52  8:25:52  8:27:00
12.01.22  8:25:09  8:25:09  8:26:18
13.01.22  8:24:23  8:24:23  8:25:32
14.01.22  8:23:33  8:23:33  8:24:43
15.01.22  8:22:41  8:22:41  8:23:52
16.01.22  8:21:46  8:21:46  8:22:57
17.01.22  8:20:48  8:20:48  8:21:59
18.01.22  8:19:46  8:19:46  8:20:59
19.01.22  8:18:43  8:18:43  8:19:55
20.01.22  8:17:36  8:17:36  8:18:49
21.01.22  8:16:26  8:16:26  8:17:40
22.01.22  8:15:14  8:15:14  8:16:29
23.01.22  8:14:00  8:14:00  8:15:14
24.01.22  8:12:43  8:12:43  8:13:58
25.01.22  8:11:23  8:11:23  8:12:39
26.01.22  8:10:01  8:10:01  8:11:17
27.01.22  8:08:36  8:08:36  8:09:53
28.01.22  8:07:10  8:07:10  8:08:27
29.01.22  8:05:41  8:05:41  8:06:59
30.01.22  8:04:10  8:04:10  8:05:28
31.01.22  8:02:36  8:02:36  8:03:56
01.02.22  8:01:01  8:01:01  8:02:21
02.02.22  7:59:24  7:59:24  8:00:44
03.02.22  7:57:44  7:57:44  7:59:05
04.02.22  7:56:03  7:56:03  7:57:25
05.02.22  7:54:20  7:54:20  7:55:42
06.02.22  7:52:35  7:52:35  7:53:58
07.02.22  7:50:49  7:50:49  7:52:12
08.02.22  7:49:00  7:49:00  7:50:24
09.02.22  7:47:10  7:47:10  7:48:35
10.02.22  7:45:19  7:45:19  7:46:44
11.02.22  7:43:26  7:43:26  7:44:51
12.02.22  7:41:31  7:41:31  7:42:57
13.02.22  7:39:35  7:39:35  7:41:01
14.02.22  7:37:38  7:37:38  7:39:05
15.02.22  7:35:40  7:35:40  7:37:06
16.02.22  7:33:40  7:33:40  7:35:07
17.02.22  7:31:38  7:31:38  7:33:06
18.02.22  7:29:36  7:29:36  7:31:04
19.02.22  7:27:32  7:27:32  7:29:01
20.02.22  7:25:28  7:25:28  7:26:57
21.02.22  7:23:22  7:23:22  7:24:51
22.02.22  7:21:15  7:21:15  7:22:45
23.02.22  7:19:08  7:19:08  7:20:38
24.02.22  7:16:59  7:16:59  7:18:30
25.02.22  7:14:49  7:14:49  7:16:20
26.02.22  7:12:39  7:12:39  7:14:10
27.02.22  7:10:27  7:10:27  7:12:00
28.02.22  7:08:15  7:08:15  7:09:48
01.03.22  7:06:02  7:06:02  7:07:35
02.03.22  7:03:49  7:03:49  7:05:22
03.03.22  7:01:35  7:01:35  7:03:08
04.03.22  6:59:20  6:59:20  7:00:54
05.03.22  6:57:04  6:57:04  6:58:39
06.03.22  6:54:48  6:54:48  6:56:23
07.03.22  6:52:31  6:52:31  6:54:07
08.03.22  6:50:14  6:50:14  6:51:50
09.03.22  6:47:57  6:47:57  6:49:33
10.03.22  6:45:39  6:45:39  6:47:15
11.03.22  6:43:20  6:43:20  6:44:57
12.03.22  6:41:01  6:41:01  6:42:39
13.03.22  6:38:42  6:38:42  6:40:20
14.03.22  6:36:22  6:36:22  6:38:00
15.03.22  6:34:03  6:34:03  6:35:41
16.03.22  6:31:42  6:31:42  6:33:21
17.03.22  6:29:22  6:29:22  6:31:01
18.03.22  6:27:02  6:27:02  6:28:41
19.03.22  6:24:41  6:24:41  6:26:21
20.03.22  6:22:20  6:22:20  6:24:00
21.03.22  6:19:59  6:19:59  6:21:39
22.03.22  6:17:38  6:17:38  6:19:19
23.03.22  6:15:17  6:15:17  6:16:58
24.03.22  6:12:56  6:12:56  6:14:37
25.03.22  6:10:35  6:10:35  6:12:17
26.03.22  6:08:15  6:08:15  6:09:56
27.03.22  6:05:54  6:05:54  6:07:35
28.03.22  6:03:33  6:03:33  6:05:15
29.03.22  6:01:12  6:01:12  6:02:54
30.03.22  5:58:52  5:58:52  6:00:34
31.03.22  5:56:32  5:56:32  5:58:14
01.04.22  5:54:12  5:54:12  5:55:55
02.04.22  5:51:52  5:51:52  5:53:35
03.04.22  5:49:33  5:49:33  5:51:16
04.04.22  5:47:13  5:47:13  5:48:57
05.04.22  5:44:55  5:44:55  5:46:38
06.04.22  5:42:36  5:42:36  5:44:20
07.04.22  5:40:18  5:40:18  5:42:02
08.04.22  5:38:01  5:38:01  5:39:45
09.04.22  5:35:44  5:35:44  5:37:28
10.04.22  5:33:28  5:33:28  5:35:12
11.04.22  5:31:12  5:31:12  5:32:56
12.04.22  5:28:56  5:28:56  5:30:41
13.04.22  5:26:42  5:26:42  5:28:26
14.04.22  5:24:28  5:24:28  5:26:12
15.04.22  5:22:14  5:22:14  5:23:59
16.04.22  5:20:02  5:20:02  5:21:46
17.04.22  5:17:50  5:17:50  5:19:34
18.04.22  5:15:39  5:15:39  5:17:23
19.04.22  5:13:29  5:13:29  5:15:13
20.04.22  5:11:19  5:11:19  5:13:03
21.04.22  5:09:11  5:09:11  5:10:55
22.04.22  5:07:03  5:07:03  5:08:47
23.04.22  5:04:57  5:04:57  5:06:40
24.04.22  5:02:51  5:02:51  5:04:35
25.04.22  5:00:47  5:00:47  5:02:30
26.04.22  4:58:44  4:58:44  5:00:27
27.04.22  4:56:42  4:56:42  4:58:25
28.04.22  4:54:41  4:54:41  4:56:24
29.04.22  4:52:41  4:52:41  4:54:24
30.04.22  4:50:43  4:50:43  4:52:25
01.05.22  4:48:46  4:48:46  4:50:28
02.05.22  4:46:50  4:46:50  4:48:32
03.05.22  4:44:56  4:44:56  4:46:38
04.05.22  4:43:03  4:43:03  4:44:44
05.05.22  4:41:12  4:41:12  4:42:53
06.05.22  4:39:23  4:39:23  4:41:03
07.05.22  4:37:35  4:37:35  4:39:14
08.05.22  4:35:48  4:35:48  4:37:28
09.05.22  4:34:04  4:34:04  4:35:43
10.05.22  4:32:21  4:32:21  4:33:59
11.05.22  4:30:40  4:30:40  4:32:18
12.05.22  4:29:00  4:29:00  4:30:38
13.05.22  4:27:23  4:27:23  4:29:00
14.05.22  4:25:48  4:25:48  4:27:24
15.05.22  4:24:15  4:24:15  4:25:50
16.05.22  4:22:44  4:22:44  4:24:18
17.05.22  4:21:15  4:21:15  4:22:48
18.05.22  4:19:48  4:19:48  4:21:21
19.05.22  4:18:23  4:18:23  4:19:55
20.05.22  4:17:01  4:17:01  4:18:32
21.05.22  4:15:41  4:15:41  4:17:11
22.05.22  4:14:23  4:14:23  4:15:53
23.05.22  4:13:08  4:13:08  4:14:37
24.05.22  4:11:55  4:11:55  4:13:23
25.05.22  4:10:45  4:10:45  4:12:12
26.05.22  4:09:38  4:09:38  4:11:04
27.05.22  4:08:33  4:08:33  4:09:58
28.05.22  4:07:31  4:07:31  4:08:55
29.05.22  4:06:32  4:06:32  4:07:55
30.05.22  4:05:35  4:05:35  4:06:57
31.05.22  4:04:41  4:04:41  4:06:03
01.06.22  4:03:51  4:03:51  4:05:11
02.06.22  4:03:03  4:03:03  4:04:22
03.06.22  4:02:18  4:02:18  4:03:36
04.06.22  4:01:36  4:01:36  4:02:53
05.06.22  4:00:57  4:00:57  4:02:13
06.06.22  4:00:21  4:00:21  4:01:36
07.06.22  3:59:48  3:59:48  4:01:02
08.06.22  3:59:19  3:59:19  4:00:31
09.06.22  3:58:52  3:58:52  4:00:03
10.06.22  3:58:29  3:58:29  3:59:39
11.06.22  3:58:09  3:58:09  3:59:17
12.06.22  3:57:52  3:57:52  3:58:59
13.06.22  3:57:38  3:57:38  3:58:44
14.06.22  3:57:28  3:57:28  3:58:32
15.06.22  3:57:21  3:57:21  3:58:24
16.06.22  3:57:16  3:57:16  3:58:18
17.06.22  3:57:16  3:57:16  3:58:16
18.06.22  3:57:18  3:57:18  3:58:17
19.06.22  3:57:24  3:57:24  3:58:22
20.06.22  3:57:32  3:57:32  3:58:29
21.06.22  3:57:44  3:57:44  3:58:40
22.06.22  3:57:59  3:57:59  3:58:53
23.06.22  3:58:17  3:58:17  3:59:10
24.06.22  3:58:39  3:58:39  3:59:30
25.06.22  3:59:03  3:59:03  3:59:54
26.06.22  3:59:30  3:59:30  4:00:20
27.06.22  4:00:01  4:00:01  4:00:49
28.06.22  4:00:34  4:00:34  4:01:21
29.06.22  4:01:10  4:01:10  4:01:56
30.06.22  4:01:49  4:01:49  4:02:34
01.07.22  4:02:30  4:02:30  4:03:15
02.07.22  4:03:15  4:03:15  4:03:58
03.07.22  4:04:02  4:04:02  4:04:44
04.07.22  4:04:51  4:04:51  4:05:33
05.07.22  4:05:43  4:05:43  4:06:24
06.07.22  4:06:38  4:06:38  4:07:18
07.07.22  4:07:35  4:07:35  4:08:14
08.07.22  4:08:34  4:08:34  4:09:12
09.07.22  4:09:35  4:09:35  4:10:13
10.07.22  4:10:39  4:10:39  4:11:16
11.07.22  4:11:45  4:11:45  4:12:21
12.07.22  4:12:52  4:12:52  4:13:28
13.07.22  4:14:02  4:14:02  4:14:37
14.07.22  4:15:14  4:15:14  4:15:47
15.07.22  4:16:27  4:16:27  4:17:00
16.07.22  4:17:42  4:17:42  4:18:15
17.07.22  4:18:59  4:18:59  4:19:31
18.07.22  4:20:18  4:20:18  4:20:49
19.07.22  4:21:38  4:21:38  4:22:08
20.07.22  4:22:59  4:22:59  4:23:29
21.07.22  4:24:22  4:24:22  4:24:51
22.07.22  4:25:46  4:25:46  4:26:15
23.07.22  4:27:11  4:27:11  4:27:40
24.07.22  4:28:37  4:28:37  4:29:06
25.07.22  4:30:05  4:30:05  4:30:33
26.07.22  4:31:33  4:31:33  4:32:02
27.07.22  4:33:03  4:33:03  4:33:31
28.07.22  4:34:33  4:34:33  4:35:01
29.07.22  4:36:05  4:36:05  4:36:33
30.07.22  4:37:37  4:37:37  4:38:05
31.07.22  4:39:10  4:39:10  4:39:37
01.08.22  4:40:43  4:40:43  4:41:11
02.08.22  4:42:17  4:42:17  4:42:45
03.08.22  4:43:52  4:43:52  4:44:20
04.08.22  4:45:27  4:45:27  4:45:55
05.08.22  4:47:03  4:47:03  4:47:31
06.08.22  4:48:40  4:48:40  4:49:07
07.08.22  4:50:16  4:50:16  4:50:44
08.08.22  4:51:53  4:51:53  4:52:21
09.08.22  4:53:31  4:53:31  4:53:58
10.08.22  4:55:08  4:55:08  4:55:36
11.08.22  4:56:46  4:56:46  4:57:14
12.08.22  4:58:25  4:58:25  4:58:52
13.08.22  5:00:03  5:00:03  5:00:30
14.08.22  5:01:42  5:01:42  5:02:09
15.08.22  5:03:20  5:03:20  5:03:48
16.08.22  5:04:59  5:04:59  5:05:27
17.08.22  5:06:38  5:06:38  5:07:06
18.08.22  5:08:18  5:08:18  5:08:45
19.08.22  5:09:57  5:09:57  5:10:24
20.08.22  5:11:36  5:11:36  5:12:03
21.08.22  5:13:15  5:13:15  5:13:43
22.08.22  5:14:55  5:14:55  5:15:22
23.08.22  5:16:34  5:16:34  5:17:02
24.08.22  5:18:13  5:18:13  5:18:42
25.08.22  5:19:53  5:19:53  5:20:21
26.08.22  5:21:32  5:21:32  5:22:01
27.08.22  5:23:11  5:23:11  5:23:40
28.08.22  5:24:50  5:24:50  5:25:20
29.08.22  5:26:30  5:26:30  5:26:59
30.08.22  5:28:09  5:28:09  5:28:39
31.08.22  5:29:48  5:29:48  5:30:18
01.09.22  5:31:27  5:31:27  5:31:58
02.09.22  5:33:06  5:33:06  5:33:37
03.09.22  5:34:45  5:34:45  5:35:16
04.09.22  5:36:25  5:36:25  5:36:56
05.09.22  5:38:04  5:38:04  5:38:35
06.09.22  5:39:43  5:39:43  5:40:14
07.09.22  5:41:22  5:41:22  5:41:53
08.09.22  5:43:01  5:43:01  5:43:32
09.09.22  5:44:40  5:44:40  5:45:11
10.09.22  5:46:19  5:46:19  5:46:50
11.09.22  5:47:58  5:47:58  5:48:29
12.09.22  5:49:37  5:49:37  5:50:09
13.09.22  5:51:16  5:51:16  5:51:48
14.09.22  5:52:55  5:52:55  5:53:27
15.09.22  5:54:34  5:54:34  5:55:06
16.09.22  5:56:14  5:56:14  5:56:45
17.09.22  5:57:53  5:57:53  5:58:25
18.09.22  5:59:32  5:59:32  6:00:04
19.09.22  6:01:12  6:01:12  6:01:44
20.09.22  6:02:52  6:02:52  6:03:24
21.09.22  6:04:31  6:04:31  6:05:04
22.09.22  6:06:11  6:06:11  6:06:44
23.09.22  6:07:51  6:07:51  6:08:24
24.09.22  6:09:31  6:09:31  6:10:05
25.09.22  6:11:12  6:11:12  6:11:45
26.09.22  6:12:52  6:12:52  6:13:26
27.09.22  6:14:33  6:14:33  6:15:07
28.09.22  6:16:14  6:16:14  6:16:48
29.09.22  6:17:55  6:17:55  6:18:29
30.09.22  6:19:36  6:19:36  6:20:11
01.10.22  6:21:18  6:21:18  6:21:52
02.10.22  6:23:00  6:23:00  6:23:34
03.10.22  6:24:42  6:24:42  6:25:16
04.10.22  6:26:24  6:26:24  6:26:59
05.10.22  6:28:06  6:28:06  6:28:41
06.10.22  6:29:49  6:29:49  6:30:24
07.10.22  6:31:32  6:31:32  6:32:07
08.10.22  6:33:16  6:33:16  6:33:51
09.10.22  6:35:00  6:35:00  6:35:34
10.10.22  6:36:44  6:36:44  6:37:18
11.10.22  6:38:28  6:38:28  6:39:03
12.10.22  6:40:13  6:40:13  6:40:47
13.10.22  6:41:57  6:41:57  6:42:32
14.10.22  6:43:43  6:43:43  6:44:17
15.10.22  6:45:28  6:45:28  6:46:03
16.10.22  6:47:14  6:47:14  6:47:49
17.10.22  6:49:00  6:49:00  6:49:35
18.10.22  6:50:47  6:50:47  6:51:21
19.10.22  6:52:34  6:52:34  6:53:08
20.10.22  6:54:21  6:54:21  6:54:56
21.10.22  6:56:08  6:56:08  6:56:43
22.10.22  6:57:56  6:57:56  6:58:31
23.10.22  6:59:44  6:59:44  7:00:19
24.10.22  7:01:32  7:01:32  7:02:07
25.10.22  7:03:20  7:03:20  7:03:56
26.10.22  7:05:09  7:05:09  7:05:45
27.10.22  7:06:58  7:06:58  7:07:34
28.10.22  7:08:47  7:08:47  7:09:23
29.10.22  7:10:36  7:10:36  7:11:12
30.10.22  7:12:25  7:12:25  7:13:02
31.10.22  7:14:15  7:14:15  7:14:51
01.11.22  7:16:04  7:16:04  7:16:41
02.11.22  7:17:54  7:17:54  7:18:31
03.11.22  7:19:43  7:19:43  7:20:20
04.11.22  7:21:33  7:21:33  7:22:10
05.11.22  7:23:22  7:23:22  7:23:59
06.11.22  7:25:12  7:25:12  7:25:49
07.11.22  7:27:01  7:27:01  7:27:38
08.11.22  7:28:50  7:28:50  7:29:27
09.11.22  7:30:39  7:30:39  7:31:16
10.11.22  7:32:27  7:32:27  7:33:05
11.11.22  7:34:15  7:34:15  7:34:53
12.11.22  7:36:03  7:36:03  7:36:41
13.11.22  7:37:51  7:37:51  7:38:28
14.11.22  7:39:38  7:39:38  7:40:15
15.11.22  7:41:24  7:41:24  7:42:02
16.11.22  7:43:10  7:43:10  7:43:48
17.11.22  7:44:55  7:44:55  7:45:33
18.11.22  7:46:39  7:46:39  7:47:17
19.11.22  7:48:22  7:48:22  7:49:01
20.11.22  7:50:04  7:50:04  7:50:44
21.11.22  7:51:46  7:51:46  7:52:26
22.11.22  7:53:26  7:53:26  7:54:07
23.11.22  7:55:05  7:55:05  7:55:46
24.11.22  7:56:43  7:56:43  7:57:25
25.11.22  7:58:20  7:58:20  7:59:02
26.11.22  7:59:55  7:59:55  8:00:38
27.11.22  8:01:29  8:01:29  8:02:12
28.11.22  8:03:01  8:03:01  8:03:44
29.11.22  8:04:32  8:04:32  8:05:15
30.11.22  8:06:01  8:06:01  8:06:45
01.12.22  8:07:27  8:07:27  8:08:12
02.12.22  8:08:52  8:08:52  8:09:37
03.12.22  8:10:15  8:10:15  8:11:01
04.12.22  8:11:36  8:11:36  8:12:22
05.12.22  8:12:55  8:12:55  8:13:41
06.12.22  8:14:11  8:14:11  8:14:58
07.12.22  8:15:25  8:15:25  8:16:12
08.12.22  8:16:37  8:16:37  8:17:24
09.12.22  8:17:46  8:17:46  8:18:33
10.12.22  8:18:52  8:18:52  8:19:40
11.12.22  8:19:56  8:19:56  8:20:44
12.12.22  8:20:57  8:20:57  8:21:46
13.12.22  8:21:55  8:21:55  8:22:44
14.12.22  8:22:50  8:22:50  8:23:40
15.12.22  8:23:42  8:23:42  8:24:32
16.12.22  8:24:31  8:24:31  8:25:22
17.12.22  8:25:17  8:25:17  8:26:08
18.12.22  8:25:59  8:25:59  8:26:52
19.12.22  8:26:39  8:26:39  8:27:32
20.12.22  8:27:15  8:27:15  8:28:09
21.12.22  8:27:48  8:27:48  8:28:43
22.12.22  8:28:18  8:28:18  8:29:13
23.12.22  8:28:44  8:28:44  8:29:40
24.12.22  8:29:06  8:29:06  8:30:03
25.12.22  8:29:26  8:29:26  8:30:23
26.12.22  8:29:42  8:29:42  8:30:40
27.12.22  8:29:54  8:29:54  8:30:53
28.12.22  8:30:03  8:30:03  8:31:02
29.12.22  8:30:08  8:30:08  8:31:08
30.12.22  8:30:10  8:30:10  8:31:10
31.12.22  8:30:08  8:30:08  8:31:09

: Bearbeitet durch User
von Kurt (Gast)


Lesenswert?

@ Peter M. (r2d3)
Glaub mir bitte: Sonnen-auf/unter-gang mit Sekundenangabe ist unnütz!
Temperatur und Luftdruck können über die ÄNDERUNG der Lichtbrechung am 
Horizont den Zeitpunkt gern mal um +/-15...30 s verschieben. Die 
MITTLERE Lichtbrechung am Horizont von gut 0,6° verlängert den Tagbogen 
sowieso!

Dazu ist die Sonne kein Punkt, sondern hat etwa 1/2° Durchmesser, was 
den Aufgang vom Erscheinen der Oberkante bis zur voll sichtbaren Scheibe 
auf etwa 3 (Frühjahr, Herbst) bis 5 (Sommer, Winter) Minuten ausdehnt...
Welcher Zeitpunkt darf's denn sein?

Lies mal die Tipps der guten (an der Praxis orientierten) Experten etwas 
aufmerksamer: Gute Experten protzen nicht mit sinnlosen Stellen hinterm 
Komma!

Gute Nacht.

von Tim T. (tim_taylor) Benutzerseite


Angehängte Dateien:

Lesenswert?

Also ich hatte dafür vor Jahren eine Routine geschrieben um den 
Sonnenauf- und Untergang zu berechnen, war soweit ich mich erinnere auf 
ein paar Sekunden genau und passte in einen kleinen Attiny.

Die eigentliche Funktion steckt in der sonnenverlauf.c, die main.c ist 
nur ein Wrapper um die Funktion auf dem PC mit sinnvollen Daten zu 
füttern und das Ergebnis anzuzeigen.

Nach einem ersten Drübersehen liege ich mit dem Algorithmus innerhalb 
einer Sekunde vom v2005 (wobei das im Beispiel die gleichen Werte wie 
beim v2000 sind). Und nochwas zum Duffett-Smith, das ist nicht der 
Genauste sondern der Einfachste, eben das was gut mit Taschenrechner 
oder Excelsheet geht...

Achja, in der hochgeladenen Version werden die Sekunden nicht angezeigt, 
weil es wie Kurt schon sagte einfach unsinnig ist (kann man natürlich in 
der sonnenverlauf.c ändern, wenn man es unbedingt braucht). Abgesehen 
von der Refraktion gibts es aber auch noch Geländegegebenheiten die den 
Sonnenaufgang so weit verschieben, dass es einfach nichts bringt da auf 
die Sekunde genau sein zu wollen.

: Bearbeitet durch User
von Thomas G. (Firma: Frickelhauptquartier) (taximan)


Lesenswert?

Ich hab das mal nach Duffet ausgerechnet, bin so bei +- 90 sec gelandet, 
sehr viel genauer dürfte es auch nicht werden; Refraktion, 
Betrachtungshöhe und noch 1 - 2 weitere Punkte.

von Peter M. (r2d3)


Lesenswert?

Hallo Kurt,

Kurt schrieb:
> @ Peter M. (r2d3)
> Glaub mir bitte: Sonnen-auf/unter-gang mit Sekundenangabe ist unnütz!
> Temperatur und Luftdruck können über die ÄNDERUNG der Lichtbrechung am
> Horizont den Zeitpunkt gern mal um +/-15...30 s verschieben. Die
> MITTLERE Lichtbrechung am Horizont von gut 0,6° verlängert den Tagbogen
> sowieso!

erst lobst Du die Genauigkeit, jetzt beschwerst Du Dich? Wahrscheinlich 
hat jetzt einer von der Stänkerfraktion Deinen Gastnamen übernommen!

Ich dachte, Dich würden diese Daten interessieren und alle anderen 
hätten eine Möglichkeit, ihre Ergebnisse mit meinen zu vergleichen.

Ich habe zum Spaß damals alle Methoden implementiert. Mir ging es nie um 
Sekunden.

Spätestens wenn man als Parameter in seine Funktion die Art der 
Dämmerung aufnimmt (bürgerliche, nautische und astronomische Dämmerung) 
und die Abweichungen dazwischen betrachtet, reicht die simpelste 
Methode.

> Dazu ist die Sonne kein Punkt, sondern hat etwa 1/2° Durchmesser, was
> den Aufgang vom Erscheinen der Oberkante bis zur voll sichtbaren Scheibe
> auf etwa 3 (Frühjahr, Herbst) bis 5 (Sommer, Winter) Minuten ausdehnt...
> Welcher Zeitpunkt darf's denn sein?

Diesem Aspekt wird von keinem der Codeschreiber Rechnung getragen - 
scheint wohl nicht wichtig zu sein!

> Lies mal die Tipps der guten (an der Praxis orientierten) Experten etwas

Welche denn?

> aufmerksamer: Gute Experten protzen nicht mit sinnlosen Stellen hinterm
> Komma!

Sinnlose Unterstellungen - typisches µc-Gemäkel.

von Peter M. (r2d3)


Lesenswert?

Hallo Tim T.,

Tim T. schrieb:
> Achja, in der hochgeladenen Version werden die Sekunden nicht angezeigt,
> weil es wie Kurt schon sagte einfach unsinnig ist (kann man natürlich in
> der sonnenverlauf.c ändern, wenn man es unbedingt braucht). Abgesehen

die Werte wurde von mir einfach im Format hh:mm:ss ausgegeben.
Wenn man den Speicherbedarf für seine Stützstellen trickreich minimieren 
will, ist die Angabe der Sekunden sinnvoll.

Für meine persönlichen sportlichen Aktivitäten habe ich in meinem Hirn 
1.0 eine Tabelle mit den Monatswerten des Sonnenuntergangs abgelegt - 
alle Angaben auf eine Viertelstunde gerundet. :)

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Hab es jetzt mal kurz mit meinem Algorithmus durchgerechnet. Die 
maximale Abweichung der täglichen Sonnenaufgangs Zeitpunkte bei 52.37 N 
und 9.73 O, in den nächsten 10 Jahren beträgt weniger als 2 Minuten. Mit 
optimiertem Mittelwert wären es dann entsprechend weniger als 1 Minute 
Abweichung, ich denke damit kann man leben. Somit müsste man nur die 
365(366) Tage speichern und hätte noch viel EEPROM frei.

von Idefix (Gast)


Lesenswert?

Danke, sag ich ja.
Wie groß wäre denn deine funktion im avr mit float / math lib?
Hab's noch nicht ausprobiert.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Idefix schrieb:
> Danke, sag ich ja.
> Wie groß wäre denn deine funktion im avr mit float / math lib?
> Hab's noch nicht ausprobiert.

Meine es passte in einen AtTiny45 also kleiner 4kB, hab aber das Projekt 
gerade nicht zur Hand. Wobei wenn du noch 10 Minuten hast, ich habe 
gleich die Main soweit angepasst das sie dir die (arithmetischen) 
Mittelwerte für die nächsten 10 Jahre berechnen kann. Hatte mich aus 
Spaß einfach mal dran gesetzt.

von Forist (Gast)


Lesenswert?

Peter M. schrieb:
> Datum          v2000  v2005  Duffett
> 01.01.22  8:30:01  8:30:01  8:31:03
> 02.01.22  8:29:52  8:29:52  8:30:54
> 03.01.22  8:29:38  8:29:38  8:30:42

Was soll der Sch..ß?
Kannst du das Zeugs nicht als Dateianhang hochladen?

von Tim T. (tim_taylor) Benutzerseite


Angehängte Dateien:

Lesenswert?

Also dann, würde ich es der Einfachheit halber tatsächlich wie im ersten 
Beitrag geschrieben über ein Array mit 366 Elementen vom Typ
1
struct day {
2
    uint8_t rise_hour;
3
    uint8_t rise_min;
4
    uint8_t set_hour;
5
    uint8_t set_min;
6
};
machen.

Dazu Braucht man eigentlich nur ein Array in dem die bereits vergangenen 
Tage bis zum aktuellen Monat enthalten sind:
1
uint16_t vergangeneTage[] = { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 };
Der Zugriff auf den Wert erfolgt dann mittels
1
eeprom[vergangeneTage[Monat-1]+Tag-1];

PS: Hat länger gedauert weil ich nicht bemerkt hatte, dass ich im 
bearbeiten Modus war und beim Absenden war dann alles weg, weil 
zwischenzeitlich ein neuer Post kam, so dass ich nochmal anfangen konnte 
alles zu schreiben...

: Bearbeitet durch User
von Kurt (Gast)


Lesenswert?

Peter M. schrieb:
> Ich dachte, Dich würden diese Daten interessieren und alle anderen
> hätten eine Möglichkeit, ihre Ergebnisse mit meinen zu vergleichen.

Kaum kommt zum Lob etwas berechtigte Kritik dazu, ist man von der 
Stänkerfraktion.

Dann erklär mir doch mal, warum deine Daten für Hannover "nach Duffet" 
im ersten Halbjahr näher an den Daten in astronomischen Jahrbüchern 
liegen, während sie im 2. Halbjahr geringfügig schlechter werden und die 
Zeiten aus v2000 und v2005 (siehst du da einen Unterschied?), die im 
ersten Halbjahr auch mal 3 Minuten daneben liegen, besser passen.

Zugegebenermaßen ist mein 20 Jahre altes C-Programm nach Jean Meeus auch 
heute noch nicht in einen µC mit 8K Flash zu implementieren (benötigt 
etwa 50 K im 80x86) - aber eine damit generierte Tabelle für den 
Jahresablauf stimmt heute noch auf +/- 1 Minute mit astronomischen 
Jahrbüchern überein.

> Diesem Aspekt wird von keinem der Codeschreiber Rechnung getragen -
> scheint wohl nicht wichtig zu sein!

Ich denke mal, der Herr Duffet wird den Sonnendurchmesser und die 
mittlere Lichtbrechung am Horizont auch berücksichtigt haben sonst gäbe 
es in mittleren Breiten jeden Tag einen Fehler von 2...3 Minuten - aber 
wer nur den Code abtippt, hat wohl die Erklärungen nicht gelesen...

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Kurt schrieb:
> Zugegebenermaßen ist mein 20 Jahre altes C-Programm nach Jean Meeus auch
> heute noch nicht in einen µC mit 8K Flash zu implementieren (benötigt
> etwa 50 K im 80x86) - aber eine damit generierte Tabelle für den
> Jahresablauf stimmt heute noch auf +/- 1 Minute mit astronomischen
> Jahrbüchern überein.

Hättest du mal ein paar Beispieldatensätze, sowohl von dir als auch die 
zugehörigen aus den Jahrbüchern für mich, würde die gerne mal gegen mein 
Programm laufen lassen. Hatte zuerst auch nach Jean Meeus - Astronomical 
Algorithms gerechnet, bin dann aber auf J. Laskar "Secular terms of 
classical planetary theories using the results of general theory" 
umgestiegen weil die Werte besser zu den Beispielen passten. 
Anschließend hatte ich aber noch die Konstanten mit neueren Werten von 
der Nasa ersetzt und würde mich jetzt doch mal dafür interessieren wie 
es abschneidet.

>> Diesem Aspekt wird von keinem der Codeschreiber Rechnung getragen -
>> scheint wohl nicht wichtig zu sein!
>
> Ich denke mal, der Herr Duffet wird den Sonnendurchmesser und die
> mittlere Lichtbrechung am Horizont auch berücksichtigt haben sonst gäbe
> es in mittleren Breiten jeden Tag einen Fehler von 2...3 Minuten - aber
> wer nur den Code abtippt, hat wohl die Erklärungen nicht gelesen...

Also den Sonnendurchmesser hatte ich berücksichtigt aber nicht die 
Refraktion, da diese einfach von zu vielen Faktoren abhängig ist und die 
gefundenen Algorithmen, glaube auch die im Astronomical Algorithms Buch 
von Meeus wirklich genau zu keinem der verfügbaren Beispieldatensätzen 
passten.

Glaube die letzte Formel die ich da hatte war
1
Refraktion = 1.02 / TAN(Hoehenwinkel + (10.3 / (Hoehenwinkel + 5.11)));
2
Hoehenwinkel += Refraktion / 60.0;
und die passte nur leidlich.

von Wolfgang (Gast)


Lesenswert?

Tim T. schrieb:
> Glaube die letzte Formel die ich da hatte warRefraktion = 1.02 /
> TAN(Hoehenwinkel + (10.3 / (Hoehenwinkel + 5.11)));
> Hoehenwinkel += Refraktion / 60.0;
> und die passte nur leidlich.

Da fehlen Luftdruck und Temperatur. In Horizontnähe gehen die kräftig in 
die Refraktion ein.

von Peter M. (r2d3)


Lesenswert?

Kurt schrieb:
> Peter M. schrieb:
>> Ich dachte, Dich würden diese Daten interessieren und alle anderen
>> hätten eine Möglichkeit, ihre Ergebnisse mit meinen zu vergleichen.
>
> Kaum kommt zum Lob etwas berechtigte Kritik dazu, ist man von der
> Stänkerfraktion.
>
> Dann erklär mir doch mal, warum deine Daten für Hannover "nach Duffet"

Ich erkläre Dir als Leseverweigerer noch einmal, dass ich die 
Algorithmen nur programmiert habe und von Astronomie keine Ahnung habe.

> im ersten Halbjahr näher an den Daten in astronomischen Jahrbüchern
> liegen,

Um die Abweichungen zu erklären, brauchst Du Astronomoniekenntnisse. 
Insbesondere musst Du auch wissen wie die Daten in astronomischen 
Jahrbüchern entstehen.

> während sie im 2. Halbjahr geringfügig schlechter werden und die
> Zeiten aus v2000 und v2005 (siehst du da einen Unterschied?), die im

Die Korrektur erfolgt unten, danke für den Hinweis.

> ersten Halbjahr auch mal 3 Minuten daneben liegen, besser passen.

Siehe oben!

> Zugegebenermaßen ist mein 20 Jahre altes C-Programm nach Jean Meeus auch
> heute noch nicht in einen µC mit 8K Flash zu implementieren (benötigt
> etwa 50 K im 80x86) - aber eine damit generierte Tabelle für den
> Jahresablauf stimmt heute noch auf +/- 1 Minute mit astronomischen
> Jahrbüchern überein.

Stellvertretend für das Forum danke ich Dir zu dieser unsichtbaren 
Leistung die von Dritten allerdings leider nicht verfiziert werden kann.

>> Diesem Aspekt wird von keinem der Codeschreiber Rechnung getragen -
>> scheint wohl nicht wichtig zu sein!

Sicherlich hat jeder µc-Forist im Bücherschrank Deine astronomischen 
Jahrbücher und ist bestrebt, die dort aufgeführten Werte auf die 
Millisekunde zu replizieren.

Vielleicht solltest Du Dir nochmal die ursprüngliche Aufgabenstellung 
durchlesen.

> Ich denke mal, der Herr Duffet wird den Sonnendurchmesser und die
> mittlere Lichtbrechung am Horizont auch berücksichtigt haben sonst gäbe
> es in mittleren Breiten jeden Tag einen Fehler von 2...3 Minuten - aber
> wer nur den Code abtippt, hat wohl die Erklärungen nicht gelesen...

Ja, ich kann gar nicht lesen.
Deine diffuse Ansagen sind leider nicht hilfreich, Erkenntnisgewinn 
kannst Du offensichtlich nicht vermitteln.

Anbei die korrigierte Tabelle:

Datum          v2000  v2005  Duffett
01.01.22  8:30:08  8:30:01  8:31:03
02.01.22  8:29:54  8:29:52  8:30:54
03.01.22  8:29:37  8:29:38  8:30:42
04.01.22  8:29:17  8:29:22  8:30:26
05.01.22  8:28:54  8:29:02  8:30:07
06.01.22  8:28:28  8:28:39  8:29:44
07.01.22  8:27:59  8:28:12  8:29:18
08.01.22  8:27:28  8:27:42  8:28:48
09.01.22  8:26:53  8:27:08  8:28:16
10.01.22  8:26:16  8:26:32  8:27:40
11.01.22  8:25:36  8:25:52  8:27:00
12.01.22  8:24:53  8:25:09  8:26:18
13.01.22  8:24:08  8:24:23  8:25:32
14.01.22  8:23:20  8:23:33  8:24:43
15.01.22  8:22:29  8:22:41  8:23:52
16.01.22  8:21:35  8:21:46  8:22:57
17.01.22  8:20:39  8:20:48  8:21:59
18.01.22  8:19:41  8:19:46  8:20:59
19.01.22  8:18:40  8:18:43  8:19:55
20.01.22  8:17:36  8:17:36  8:18:49
21.01.22  8:16:30  8:16:26  8:17:40
22.01.22  8:15:21  8:15:14  8:16:29
23.01.22  8:14:11  8:14:00  8:15:14
24.01.22  8:12:58  8:12:43  8:13:58
25.01.22  8:11:42  8:11:23  8:12:39
26.01.22  8:10:25  8:10:01  8:11:17
27.01.22  8:09:05  8:08:36  8:09:53
28.01.22  8:07:43  8:07:10  8:08:27
29.01.22  8:06:19  8:05:41  8:06:59
30.01.22  8:04:52  8:04:10  8:05:28
31.01.22  8:03:24  8:02:36  8:03:56
01.02.22  8:01:54  8:01:01  8:02:21
02.02.22  8:00:22  7:59:24  8:00:44
03.02.22  7:58:47  7:57:44  7:59:05
04.02.22  7:57:11  7:56:03  7:57:25
05.02.22  7:55:34  7:54:20  7:55:42
06.02.22  7:53:54  7:52:35  7:53:58
07.02.22  7:52:12  7:50:49  7:52:12
08.02.22  7:50:29  7:49:00  7:50:24
09.02.22  7:48:44  7:47:10  7:48:35
10.02.22  7:46:58  7:45:19  7:46:44
11.02.22  7:45:10  7:43:26  7:44:51
12.02.22  7:43:20  7:41:31  7:42:57
13.02.22  7:41:29  7:39:35  7:41:01
14.02.22  7:39:36  7:37:38  7:39:05
15.02.22  7:37:42  7:35:40  7:37:06
16.02.22  7:35:46  7:33:40  7:35:07
17.02.22  7:33:49  7:31:38  7:33:06
18.02.22  7:31:51  7:29:36  7:31:04
19.02.22  7:29:51  7:27:32  7:29:01
20.02.22  7:27:51  7:25:28  7:26:57
21.02.22  7:25:48  7:23:22  7:24:51
22.02.22  7:23:45  7:21:15  7:22:45
23.02.22  7:21:41  7:19:08  7:20:38
24.02.22  7:19:35  7:16:59  7:18:30
25.02.22  7:17:29  7:14:49  7:16:20
26.02.22  7:15:21  7:12:39  7:14:10
27.02.22  7:13:12  7:10:27  7:12:00
28.02.22  7:11:03  7:08:15  7:09:48
01.03.22  7:08:52  7:06:02  7:07:35
02.03.22  7:06:41  7:03:49  7:05:22
03.03.22  7:04:28  7:01:35  7:03:08
04.03.22  7:02:15  6:59:20  7:00:54
05.03.22  7:00:01  6:57:04  6:58:39
06.03.22  6:57:46  6:54:48  6:56:23
07.03.22  6:55:31  6:52:31  6:54:07
08.03.22  6:53:15  6:50:14  6:51:50
09.03.22  6:50:58  6:47:57  6:49:33
10.03.22  6:48:41  6:45:39  6:47:15
11.03.22  6:46:23  6:43:20  6:44:57
12.03.22  6:44:05  6:41:01  6:42:39
13.03.22  6:41:46  6:38:42  6:40:20
14.03.22  6:39:26  6:36:22  6:38:00
15.03.22  6:37:06  6:34:03  6:35:41
16.03.22  6:34:46  6:31:42  6:33:21
17.03.22  6:32:26  6:29:22  6:31:01
18.03.22  6:30:05  6:27:02  6:28:41
19.03.22  6:27:44  6:24:41  6:26:21
20.03.22  6:25:22  6:22:20  6:24:00
21.03.22  6:23:01  6:19:59  6:21:39
22.03.22  6:20:39  6:17:38  6:19:19
23.03.22  6:18:17  6:15:17  6:16:58
24.03.22  6:15:55  6:12:56  6:14:37
25.03.22  6:13:33  6:10:35  6:12:17
26.03.22  6:11:11  6:08:15  6:09:56
27.03.22  6:08:49  6:05:54  6:07:35
28.03.22  6:06:27  6:03:33  6:05:15
29.03.22  6:04:05  6:01:12  6:02:54
30.03.22  6:01:43  5:58:52  6:00:34
31.03.22  5:59:21  5:56:32  5:58:14
01.04.22  5:57:00  5:54:12  5:55:55
02.04.22  5:54:38  5:51:52  5:53:35
03.04.22  5:52:17  5:49:33  5:51:16
04.04.22  5:49:57  5:47:13  5:48:57
05.04.22  5:47:36  5:44:55  5:46:38
06.04.22  5:45:16  5:42:36  5:44:20
07.04.22  5:42:57  5:40:18  5:42:02
08.04.22  5:40:38  5:38:01  5:39:45
09.04.22  5:38:19  5:35:44  5:37:28
10.04.22  5:36:01  5:33:28  5:35:12
11.04.22  5:33:43  5:31:12  5:32:56
12.04.22  5:31:26  5:28:56  5:30:41
13.04.22  5:29:10  5:26:42  5:28:26
14.04.22  5:26:55  5:24:28  5:26:12
15.04.22  5:24:40  5:22:14  5:23:59
16.04.22  5:22:26  5:20:02  5:21:46
17.04.22  5:20:12  5:17:50  5:19:34
18.04.22  5:18:00  5:15:39  5:17:23
19.04.22  5:15:48  5:13:29  5:15:13
20.04.22  5:13:37  5:11:19  5:13:03
21.04.22  5:11:28  5:09:11  5:10:55
22.04.22  5:09:19  5:07:03  5:08:47
23.04.22  5:07:11  5:04:57  5:06:40
24.04.22  5:05:05  5:02:51  5:04:35
25.04.22  5:02:59  5:00:47  5:02:30
26.04.22  5:00:55  4:58:44  5:00:27
27.04.22  4:58:52  4:56:42  4:58:25
28.04.22  4:56:50  4:54:41  4:56:24
29.04.22  4:54:49  4:52:41  4:54:24
30.04.22  4:52:50  4:50:43  4:52:25
01.05.22  4:50:52  4:48:46  4:50:28
02.05.22  4:48:56  4:46:50  4:48:32
03.05.22  4:47:01  4:44:56  4:46:38
04.05.22  4:45:07  4:43:03  4:44:44
05.05.22  4:43:15  4:41:12  4:42:53
06.05.22  4:41:25  4:39:23  4:41:03
07.05.22  4:39:36  4:37:35  4:39:14
08.05.22  4:37:49  4:35:48  4:37:28
09.05.22  4:36:04  4:34:04  4:35:43
10.05.22  4:34:20  4:32:21  4:33:59
11.05.22  4:32:38  4:30:40  4:32:18
12.05.22  4:30:59  4:29:00  4:30:38
13.05.22  4:29:21  4:27:23  4:29:00
14.05.22  4:27:45  4:25:48  4:27:24
15.05.22  4:26:11  4:24:15  4:25:50
16.05.22  4:24:39  4:22:44  4:24:18
17.05.22  4:23:09  4:21:15  4:22:48
18.05.22  4:21:42  4:19:48  4:21:21
19.05.22  4:20:16  4:18:23  4:19:55
20.05.22  4:18:53  4:17:01  4:18:32
21.05.22  4:17:32  4:15:41  4:17:11
22.05.22  4:16:14  4:14:23  4:15:53
23.05.22  4:14:58  4:13:08  4:14:37
24.05.22  4:13:44  4:11:55  4:13:23
25.05.22  4:12:33  4:10:45  4:12:12
26.05.22  4:11:24  4:09:38  4:11:04
27.05.22  4:10:18  4:08:33  4:09:58
28.05.22  4:09:15  4:07:31  4:08:55
29.05.22  4:08:14  4:06:32  4:07:55
30.05.22  4:07:16  4:05:35  4:06:57
31.05.22  4:06:21  4:04:41  4:06:03
01.06.22  4:05:28  4:03:51  4:05:11
02.06.22  4:04:38  4:03:03  4:04:22
03.06.22  4:03:51  4:02:18  4:03:36
04.06.22  4:03:07  4:01:36  4:02:53
05.06.22  4:02:26  4:00:57  4:02:13
06.06.22  4:01:48  4:00:21  4:01:36
07.06.22  4:01:13  3:59:48  4:01:02
08.06.22  4:00:41  3:59:19  4:00:31
09.06.22  4:00:12  3:58:52  4:00:03
10.06.22  3:59:45  3:58:29  3:59:39
11.06.22  3:59:22  3:58:09  3:59:17
12.06.22  3:59:02  3:57:52  3:58:59
13.06.22  3:58:46  3:57:38  3:58:44
14.06.22  3:58:32  3:57:28  3:58:32
15.06.22  3:58:21  3:57:21  3:58:24
16.06.22  3:58:14  3:57:16  3:58:18
17.06.22  3:58:09  3:57:16  3:58:16
18.06.22  3:58:08  3:57:18  3:58:17
19.06.22  3:58:10  3:57:24  3:58:22
20.06.22  3:58:15  3:57:32  3:58:29
21.06.22  3:58:23  3:57:44  3:58:40
22.06.22  3:58:34  3:57:59  3:58:53
23.06.22  3:58:48  3:58:17  3:59:10
24.06.22  3:59:05  3:58:39  3:59:30
25.06.22  3:59:25  3:59:03  3:59:54
26.06.22  3:59:48  3:59:30  4:00:20
27.06.22  4:00:14  4:00:01  4:00:49
28.06.22  4:00:43  4:00:34  4:01:21
29.06.22  4:01:15  4:01:10  4:01:56
30.06.22  4:01:50  4:01:49  4:02:34
01.07.22  4:02:27  4:02:30  4:03:15
02.07.22  4:03:07  4:03:15  4:03:58
03.07.22  4:03:50  4:04:02  4:04:44
04.07.22  4:04:36  4:04:51  4:05:33
05.07.22  4:05:24  4:05:43  4:06:24
06.07.22  4:06:14  4:06:38  4:07:18
07.07.22  4:07:07  4:07:35  4:08:14
08.07.22  4:08:03  4:08:34  4:09:12
09.07.22  4:09:00  4:09:35  4:10:13
10.07.22  4:10:01  4:10:39  4:11:16
11.07.22  4:11:03  4:11:45  4:12:21
12.07.22  4:12:07  4:12:52  4:13:28
13.07.22  4:13:14  4:14:02  4:14:37
14.07.22  4:14:22  4:15:14  4:15:47
15.07.22  4:15:33  4:16:27  4:17:00
16.07.22  4:16:45  4:17:42  4:18:15
17.07.22  4:17:59  4:18:59  4:19:31
18.07.22  4:19:15  4:20:18  4:20:49
19.07.22  4:20:33  4:21:38  4:22:08
20.07.22  4:21:52  4:22:59  4:23:29
21.07.22  4:23:13  4:24:22  4:24:51
22.07.22  4:24:35  4:25:46  4:26:15
23.07.22  4:25:58  4:27:11  4:27:40
24.07.22  4:27:23  4:28:37  4:29:06
25.07.22  4:28:49  4:30:05  4:30:33
26.07.22  4:30:17  4:31:33  4:32:02
27.07.22  4:31:45  4:33:03  4:33:31
28.07.22  4:33:15  4:34:33  4:35:01
29.07.22  4:34:46  4:36:05  4:36:33
30.07.22  4:36:17  4:37:37  4:38:05
31.07.22  4:37:50  4:39:10  4:39:37
01.08.22  4:39:23  4:40:43  4:41:11
02.08.22  4:40:57  4:42:17  4:42:45
03.08.22  4:42:32  4:43:52  4:44:20
04.08.22  4:44:08  4:45:27  4:45:55
05.08.22  4:45:44  4:47:03  4:47:31
06.08.22  4:47:21  4:48:40  4:49:07
07.08.22  4:48:58  4:50:16  4:50:44
08.08.22  4:50:36  4:51:53  4:52:21
09.08.22  4:52:14  4:53:31  4:53:58
10.08.22  4:53:53  4:55:08  4:55:36
11.08.22  4:55:32  4:56:46  4:57:14
12.08.22  4:57:12  4:58:25  4:58:52
13.08.22  4:58:51  5:00:03  5:00:30
14.08.22  5:00:31  5:01:42  5:02:09
15.08.22  5:02:12  5:03:20  5:03:48
16.08.22  5:03:52  5:04:59  5:05:27
17.08.22  5:05:33  5:06:38  5:07:06
18.08.22  5:07:14  5:08:18  5:08:45
19.08.22  5:08:55  5:09:57  5:10:24
20.08.22  5:10:36  5:11:36  5:12:03
21.08.22  5:12:17  5:13:15  5:13:43
22.08.22  5:13:59  5:14:55  5:15:22
23.08.22  5:15:40  5:16:34  5:17:02
24.08.22  5:17:21  5:18:13  5:18:42
25.08.22  5:19:03  5:19:53  5:20:21
26.08.22  5:20:44  5:21:32  5:22:01
27.08.22  5:22:26  5:23:11  5:23:40
28.08.22  5:24:07  5:24:50  5:25:20
29.08.22  5:25:49  5:26:30  5:26:59
30.08.22  5:27:30  5:28:09  5:28:39
31.08.22  5:29:12  5:29:48  5:30:18
01.09.22  5:30:53  5:31:27  5:31:58
02.09.22  5:32:34  5:33:06  5:33:37
03.09.22  5:34:16  5:34:45  5:35:16
04.09.22  5:35:57  5:36:25  5:36:56
05.09.22  5:37:38  5:38:04  5:38:35
06.09.22  5:39:19  5:39:43  5:40:14
07.09.22  5:41:01  5:41:22  5:41:53
08.09.22  5:42:42  5:43:01  5:43:32
09.09.22  5:44:23  5:44:40  5:45:11
10.09.22  5:46:04  5:46:19  5:46:50
11.09.22  5:47:45  5:47:58  5:48:29
12.09.22  5:49:26  5:49:37  5:50:09
13.09.22  5:51:07  5:51:16  5:51:48
14.09.22  5:52:48  5:52:55  5:53:27
15.09.22  5:54:30  5:54:34  5:55:06
16.09.22  5:56:11  5:56:14  5:56:45
17.09.22  5:57:52  5:57:53  5:58:25
18.09.22  5:59:33  5:59:32  6:00:04
19.09.22  6:01:15  6:01:12  6:01:44
20.09.22  6:02:56  6:02:52  6:03:24
21.09.22  6:04:37  6:04:31  6:05:04
22.09.22  6:06:19  6:06:11  6:06:44
23.09.22  6:08:01  6:07:51  6:08:24
24.09.22  6:09:42  6:09:31  6:10:05
25.09.22  6:11:24  6:11:12  6:11:45
26.09.22  6:13:06  6:12:52  6:13:26
27.09.22  6:14:48  6:14:33  6:15:07
28.09.22  6:16:31  6:16:14  6:16:48
29.09.22  6:18:13  6:17:55  6:18:29
30.09.22  6:19:56  6:19:36  6:20:11
01.10.22  6:21:38  6:21:18  6:21:52
02.10.22  6:23:21  6:23:00  6:23:34
03.10.22  6:25:05  6:24:42  6:25:16
04.10.22  6:26:48  6:26:24  6:26:59
05.10.22  6:28:32  6:28:06  6:28:41
06.10.22  6:30:15  6:29:49  6:30:24
07.10.22  6:31:59  6:31:32  6:32:07
08.10.22  6:33:44  6:33:16  6:33:51
09.10.22  6:35:28  6:35:00  6:35:34
10.10.22  6:37:13  6:36:44  6:37:18
11.10.22  6:38:58  6:38:28  6:39:03
12.10.22  6:40:43  6:40:13  6:40:47
13.10.22  6:42:28  6:41:57  6:42:32
14.10.22  6:44:14  6:43:43  6:44:17
15.10.22  6:46:00  6:45:28  6:46:03
16.10.22  6:47:46  6:47:14  6:47:49
17.10.22  6:49:32  6:49:00  6:49:35
18.10.22  6:51:18  6:50:47  6:51:21
19.10.22  6:53:05  6:52:34  6:53:08
20.10.22  6:54:52  6:54:21  6:54:56
21.10.22  6:56:39  6:56:08  6:56:43
22.10.22  6:58:27  6:57:56  6:58:31
23.10.22  7:00:14  6:59:44  7:00:19
24.10.22  7:02:02  7:01:32  7:02:07
25.10.22  7:03:49  7:03:20  7:03:56
26.10.22  7:05:37  7:05:09  7:05:45
27.10.22  7:07:25  7:06:58  7:07:34
28.10.22  7:09:13  7:08:47  7:09:23
29.10.22  7:11:01  7:10:36  7:11:12
30.10.22  7:12:49  7:12:25  7:13:02
31.10.22  7:14:37  7:14:15  7:14:51
01.11.22  7:16:25  7:16:04  7:16:41
02.11.22  7:18:14  7:17:54  7:18:31
03.11.22  7:20:01  7:19:43  7:20:20
04.11.22  7:21:49  7:21:33  7:22:10
05.11.22  7:23:37  7:23:22  7:23:59
06.11.22  7:25:24  7:25:12  7:25:49
07.11.22  7:27:12  7:27:01  7:27:38
08.11.22  7:28:59  7:28:50  7:29:27
09.11.22  7:30:45  7:30:39  7:31:16
10.11.22  7:32:32  7:32:27  7:33:05
11.11.22  7:34:18  7:34:15  7:34:53
12.11.22  7:36:03  7:36:03  7:36:41
13.11.22  7:37:48  7:37:51  7:38:28
14.11.22  7:39:33  7:39:38  7:40:15
15.11.22  7:41:17  7:41:24  7:42:02
16.11.22  7:43:00  7:43:10  7:43:48
17.11.22  7:44:42  7:44:55  7:45:33
18.11.22  7:46:24  7:46:39  7:47:17
19.11.22  7:48:05  7:48:22  7:49:01
20.11.22  7:49:45  7:50:04  7:50:44
21.11.22  7:51:24  7:51:46  7:52:26
22.11.22  7:53:02  7:53:26  7:54:07
23.11.22  7:54:39  7:55:05  7:55:46
24.11.22  7:56:15  7:56:43  7:57:25
25.11.22  7:57:50  7:58:20  7:59:02
26.11.22  7:59:24  7:59:55  8:00:38
27.11.22  8:00:56  8:01:29  8:02:12
28.11.22  8:02:27  8:03:01  8:03:44
29.11.22  8:03:56  8:04:32  8:05:15
30.11.22  8:05:24  8:06:01  8:06:45
01.12.22  8:06:50  8:07:27  8:08:12
02.12.22  8:08:15  8:08:52  8:09:37
03.12.22  8:09:37  8:10:15  8:11:01
04.12.22  8:10:58  8:11:36  8:12:22
05.12.22  8:12:18  8:12:55  8:13:41
06.12.22  8:13:35  8:14:11  8:14:58
07.12.22  8:14:50  8:15:25  8:16:12
08.12.22  8:16:04  8:16:37  8:17:24
09.12.22  8:17:15  8:17:46  8:18:33
10.12.22  8:18:24  8:18:52  8:19:40
11.12.22  8:19:30  8:19:56  8:20:44
12.12.22  8:20:35  8:20:57  8:21:46
13.12.22  8:21:37  8:21:55  8:22:44
14.12.22  8:22:37  8:22:50  8:23:40
15.12.22  8:23:34  8:23:42  8:24:32
16.12.22  8:24:29  8:24:31  8:25:22
17.12.22  8:25:21  8:25:17  8:26:08
18.12.22  8:26:10  8:25:59  8:26:52
19.12.22  8:26:57  8:26:39  8:27:32
20.12.22  8:27:41  8:27:15  8:28:09
21.12.22  8:28:22  8:27:48  8:28:43
22.12.22  8:29:01  8:28:18  8:29:13
23.12.22  8:29:37  8:28:44  8:29:40
24.12.22  8:30:10  8:29:06  8:30:03
25.12.22  8:30:40  8:29:26  8:30:23
26.12.22  8:31:07  8:29:42  8:30:40
27.12.22  8:31:31  8:29:54  8:30:53
28.12.22  8:31:52  8:30:03  8:31:02
29.12.22  8:32:11  8:30:08  8:31:08
30.12.22  8:32:26  8:30:10  8:31:10
31.12.22  8:32:38  8:30:08  8:31:09

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Warum zur Hölle packst du die Daten nicht in eine Datei und hängst diese 
an? Ist ja nicht so dass du den Hinweis dazu noch nicht bekommen hast.

von Idefix (Gast)


Lesenswert?

Dein Programm aus Beitrag "Re: Sonnenaufgang/Sonnenuntergang in Tabelle (Astro-Uhr/Dämmerungsschalter)?" 
läuft, deine main.c aus 
Beitrag "Re: Sonnenaufgang/Sonnenuntergang in Tabelle (Astro-Uhr/Dämmerungsschalter)?" braucht andere 
Strukturen (Sonnenverlauf_t).

Die erste main.c habe ich console.c genannt.

gcc sonnenverlauf.c zeit.c zeitgleichung.c console.c -o console.exe

console.exe -b 52.37  -l 9.73 -z 1
01.01.2022      08:30   16:17
02.01.2022      08:30   16:18
03.01.2022      08:30   16:19
...

Hannover ist nett, aber wie wär's mit 
https://en.wikipedia.org/wiki/Royal_Observatory,_Greenwich auf etwa 
51.5,0 - leicht zu merken und stets UTC (GMT)?

console.exe -b 51.5 -l0 -z0
01.01.2022      08:05   16:01
02.01.2022      08:04   16:02
03.01.2022      08:04   16:03

https://www.timeanddate.com/sun/@51.5,0.0?month=1&year=2022

1  08:05 ↑ (128°)  16:01
2  08:05 ↑ (127°)  16:02
3  08:05 ↑ (127°)  16:03

https://www.volker-quaschning.de/datserv/sunpos/index.php

DIN5034 1 08:12:32  15:54:36
SUNAE 1 08:05:10 15:54:16
NREL SOLPOS 08:08:02 15:59:17

// http://souptonuts.sourceforge.net/code/sunrise.c.html
// modifiziert, damit UTC rauskommt
// gcc sunrise.c -o sunrise.exe -DDEBUG=1 -Wall -W -O2 -s -pipe -lm
sunrise.exe 2022 1 1 51.5 0.0
Julian Date  2459580.500000
Sunrise timeUTC 485.626020
Sunset  timeUTC 961.691341
Number of seconds 1640991600
Number of year 2022
Number of seconds 1640991600
Sunrise  01-01-2022  08:05:37   Sunset 01-01-2022  16:01:41



(c) Paul Schlyter, 1992
sunriset.exe
Longitude (+ is east) and latitude (+ is north) : 0 51.5
Input date ( yyyy mm dd ) (ctrl-C exits): 2022 1 1
Day length:                  7.94 hours
With civil twilight          9.26 hours
With nautical twilight      10.69 hours
With astronomical twilight  12.05 hours
Length of twilight: civil    0.66 hours
                  nautical   1.38 hours
              astronomical   2.05 hours
Sun at south 12.06h UT
Sun rises  8.09h UT, sets 16.03h UT
Civil twilight starts  7.43h, ends 16.69h UT
Nautical twilight starts  6.71h, ends 17.41h UT
Astronomical twilight starts  6.04h, ends 18.08h UT


astroplan / astropy

<SkyCoord (AltAz: obstime=2022-01-01 12:00:00.000, 
location=(3978648.5306648, 0., 4968362.45729103) m, pressure=0.0 hPa, 
temperature=0.0 deg_C, relative_humidity=0.0, obswl=1.0 micron): (az, 
alt, distance) in (deg, deg, AU)
    (179.1543046, 15.51462109, 0.98333876)>
rise ISO: 2022-01-01 08:12:28.107, JD: 2459580.8419919796
set  ISO: 2022-01-01 15:54:48.506, JD: 2459581.1630614074




Wie kann man vermeiden, dass GCC das hier alles wegoptimiert, und nur 54 
Bytes programm erzeugt?
1
#include <stdint.h>
2
#include <avr/io.h>
3
#include <time.h>
4
#include "sonnenverlauf.h"
5
6
int main(void) {
7
  
8
  struct tm t = { .tm_mday = 1, .tm_mon = 0, .tm_year = 122, .tm_hour = 0, .tm_min = 0, .tm_sec = 0 };
9
  double Zeitzone = 0;
10
  Sonnenverlauf_t Sonnenverlauf;
11
  double GeographischeBreite = 51.5;
12
  double GeographischeLaenge = 0.0;
13
14
  Sonnenverlauf = BerechneSonnenverlauf( t.tm_mday, t.tm_mon + 1, t.tm_year + 1900, Zeitzone, GeographischeBreite, GeographischeLaenge );
15
  int8_t dummy = Sonnenverlauf.AufgangMinuten;
16
  while(1){
17
    (void) dummy;
18
  }
19
}

von Tim T. (tim_taylor) Benutzerseite


Angehängte Dateien:

Lesenswert?

Idefix schrieb:
> Dein Programm aus Beitrag "Re: Sonnenaufgang/Sonnenuntergang in Tabelle (Astro-Uhr/Dämmerungsschalter)?"
> läuft, deine main.c aus
> Beitrag "Re: Sonnenaufgang/Sonnenuntergang in Tabelle (Astro-Uhr/Dämmerungsschalter)?" braucht andere
> Strukturen (Sonnenverlauf_t).

Ja, ich hatte da den Aufgang und Untergang noch als double ins Struct 
gepackt weil ich so die Differenzen leichter vergleichen konnte, ist 
aber sonst nicht von Belang.

> Wie kann man vermeiden, dass GCC das hier alles wegoptimiert, und nur 54
> Bytes programm erzeugt?
>
>
1
> #include <stdint.h>
2
> #include <avr/io.h>
3
> #include <time.h>
4
> #include "sonnenverlauf.h"
5
> 
6
> int main(void) {
7
> 
8
>   struct tm t = { .tm_mday = 1, .tm_mon = 0, .tm_year = 122, .tm_hour = 
9
> 0, .tm_min = 0, .tm_sec = 0 };
10
>   double Zeitzone = 0;
11
>   Sonnenverlauf_t Sonnenverlauf;
12
>   double GeographischeBreite = 51.5;
13
>   double GeographischeLaenge = 0.0;
14
> 
15
>   Sonnenverlauf = BerechneSonnenverlauf( t.tm_mday, t.tm_mon + 1, 
16
> t.tm_year + 1900, Zeitzone, GeographischeBreite, GeographischeLaenge );
17
>   int8_t dummy = Sonnenverlauf.AufgangMinuten;
18
>   while(1){
19
>     (void) dummy;
20
>   }
21
> }
22
>

Also erstmal war das tm Struct noch ein Überbleibsel aus einer Version 
wo das Datum über eine Time-Funktion kam und kann einfach mit int16_t 
Jahr, int8_t Monat, Tag ersetzt werden, ist dann übersichtlicher.

Hab aber jetzt mal eine konsistente Version zusammengezippt und 
angehangen (und prompt vergessen die zeit.* Dateien zu entfernen, die 
werden nicht mehr gebraucht).

Das Problem ist dass der Compiler erkennt, dass mit dem Wert nichts 
gemacht wird, also beim µC einfach auf einem PORT ausgeben oder beim PC 
eben printf.

Wenn du versuchen solltest meine Aussage von oben, wo ich vermutet hatte 
das es in 4 kB Flash passt, überprüfen zu wollen, muss ich dich leider 
Enttäuschen, war hinterher doch auf einen Tiny85 umgestiegen weil es zu 
groß wurde (7,x kB).

Bin aber immer noch dabei eine Möglichkeit zu finden ob man das Ganze 
nicht in Festkomma rechnen kann, aber bislang mit wenig Erfolg.

: Bearbeitet durch User
von Tim T. (tim_taylor) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hab dann auch noch einen Fehler im Programm gefunden, also nochmal neu 
im Anhang. Zu blöd das man hier angehängte Dateien nicht mehr 
austauschen kann, zumindest in einem gewissen Zeitfenster 
(Bearbeitungszeitraum) wäre das manchmal hilfreich.

EDIT: Kann eventuell ein Mod die Datei aus dem letzten Post löschen?

: Bearbeitet durch User
von Idefix (Gast)


Lesenswert?

Tim T. schrieb:
> EDIT: Kann eventuell ein Mod die Datei aus dem letzten Post löschen?

Dann bitte auch die unnütz langen Tabellen von Peter kürzen.


Tim T. schrieb:
> Das Problem ist dass der Compiler erkennt, dass mit dem Wert nichts
> gemacht wird, also beim µC einfach auf einem PORT ausgeben oder beim PC
> eben printf.
>
> Wenn du versuchen solltest meine Aussage von oben, wo ich vermutet hatte
> das es in 4 kB Flash passt, überprüfen zu wollen, muss ich dich leider
> Enttäuschen, war hinterher doch auf einen Tiny85 umgestiegen weil es zu
> groß wurde (7,x kB).
>
> Bin aber immer noch dabei eine Möglichkeit zu finden ob man das Ganze
> nicht in Festkomma rechnen kann, aber bislang mit wenig Erfolg.

Habe einiges ausprobiert, auch "PORTB = dummy;" bringt nichts.
Allerdings benutze ich PlatformIO (ohne framework). Er schmeißt alles 
raus, nur als Debug-Build bekomme ich etwas mit 4268 bytes.

Aber du hast ja schon gesagt, dass es nicht in 4 k passt.
Damit ist es deutlich größer, als die benötigten Daten, und da sie bei 
mir nicht verändert werden, ist es hinfällig.

Anhand der anderen Berechnungen sieht man, dass es für einen 
Dämmerungsschalter praktisch egal ist, welche man benutzt.
Anders wäre es wohl bei einem Heliostaten.

Bestimmt kann man die Daten mit ein bisschen Rechnerei noch 
"komprimieren", hier ist eine Annäherung mit Kosinus auf 20 min: 
https://www.instructables.com/Calculating-Sunset-and-Sunrise-for-a-Microcontroll/ 
(und ein paar Links auf andere Berechnungen/Bibliotheken).
Ähnliche Auflösung dürfte eine Tabelle mit Mittelwerten für jede Woche 
bringen.

Ich bau jetzt erstmal dein letztes Programm für die Mittelwerte; falls 
mir noch Nenneswertes auffallen sollte, melde ich mich nochmal.

@Alle: Vielen Dank für die Beteiligung!

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Idefix schrieb:
> Bestimmt kann man die Daten mit ein bisschen Rechnerei noch
> "komprimieren", hier ist eine Annäherung mit Kosinus auf 20 min:
> 
https://www.instructables.com/Calculating-Sunset-and-Sunrise-for-a-Microcontroll/
> (und ein paar Links auf andere Berechnungen/Bibliotheken).
> Ähnliche Auflösung dürfte eine Tabelle mit Mittelwerten für jede Woche
> bringen.

Also bevor man dafür den Cosinus und damit die math.h oder eine Taylor 
Reihenentwicklung einbindet, kann man lieber direkt die paar Werte im 
EEprom oder Flash ablegen; die Genauigkeit der gemittelten Werte liegt 
dann wie bereits gesagt auch unter 1 Minute Abweichung (zumindest für 
Hannover^^) zu jedem Zeitpunkt in den nächsten 10 Jahren und schneller 
(=weniger Strom) ist es auch. Und warum nur Wochenwerte ablegen? Ob man 
jetzt 212 Byte EEprom/Flash verbrät oder 1464 Byte, macht den Braten 
ansich nicht mehr Fett.

von Peter M. (r2d3)


Lesenswert?

Tim T. schrieb:
> Warum zur Hölle packst du die Daten nicht in eine Datei und hängst diese
> an? Ist ja nicht so dass du den Hinweis dazu noch nicht bekommen hast.

Warum sollte ich das?
Auf unfreundliche anonyme Pöbler reagiere ich nicht.
Fluchen ist auch kein Ersatz für eine Begründung.
Gibt es bei Dir ein Bandbreitenproblem im Kilobyte-Bereich?

Idefix schrieb:
> Hannover ist nett, aber wie wär's mit
> https://en.wikipedia.org/wiki/Royal_Observatory,_Greenwich auf etwa
> 51.5,0 - leicht zu merken und stets UTC (GMT)?

Für Testzwecke sind Fälle, bei denen die Länge ungleich null ist, besser 
geeignet.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Peter M. schrieb:
> Tim T. schrieb:
>> Warum zur Hölle packst du die Daten nicht in eine Datei und hängst diese
>> an? Ist ja nicht so dass du den Hinweis dazu noch nicht bekommen hast.
>
> Warum sollte ich das?

Weil praktisch jeder der deine Textwand sieht sich nicht dafür 
interessiert und dafür erstmal ellenlang scrollen muss.

> Auf unfreundliche anonyme Pöbler reagiere ich nicht.

Das war so ziemlich das freundlichste was du von mir dazu erwarten 
kannst, ab hier geht es nur noch bergab.

> Fluchen ist auch kein Ersatz für eine Begründung.

Du bist anscheinend merkbefreit, ansonsten hätte es dir klar sein 
sollen.

> Gibt es bei Dir ein Bandbreitenproblem im Kilobyte-Bereich?

Es geht doch nicht um die verdammte Bandbreite, wobei Kilobyte auch 
schon wieder falsch ist; bei Bandbreite (im IT Bereich) geht es um 
Datenmenge pro Zeit. Es geht viel mehr darum, dass du den Leuten mit dem 
Verunstalten des Threads auf den Senkel gehst anstatt deine Daten 
einfach Anzuhängen. Stell dir einfach mal vor ich hätte den Quelltext 
oben jedesmal hintereinander weg im Betrag geschrieben, auch blöd oder?

: Bearbeitet durch User
von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Wolfgang schrieb:
> Tim T. schrieb:
>> Glaube die letzte Formel die ich da hatte warRefraktion = 1.02 /
>> TAN(Hoehenwinkel + (10.3 / (Hoehenwinkel + 5.11)));
>> Hoehenwinkel += Refraktion / 60.0;
>> und die passte nur leidlich.
>
> Da fehlen Luftdruck und Temperatur. In Horizontnähe gehen die kräftig in
> die Refraktion ein.

Fast vergessen hierauf zu antworten. Das Problem ist, der Luftdruck ist 
einfach nicht über alle Höhen konstant und eben sowenig die Temperatur.
Ich erinnere mich noch als ich mal auf dem Segelboot den Sextanten im 
Mittelmeer bemüht habe um die Refraktion genau zu ermitteln. Egal welche 
Temperatur und Luftdruck ich in egal welches Modell eingesetzt habe, 
sobald der Höhenwinkel sich merklich änderte, passte wieder nichts. Ich 
gehe davon aus das die Temperatur der verschiedenen Höhen, ebenso wie 
der unterschiedliche Luftdruck einem da immer einen Strich durch die 
Rechnung macht wenn man einfach nur eine mittlere Temperatur und 
Luftdruck annimmt. Da gleichzeitig die Refraktion aber bei größeren 
Höhenwinkeln praktisch keine Rolle mehr spielt, habe ich es aufgegeben 
diese exakt zu bestimmen, es passt(e) einfach nie.

von Forist (Gast)


Lesenswert?

Peter M. schrieb:
> Fluchen ist auch kein Ersatz für eine Begründung.

Du spamst hier den Thread, den Leute lesen wollen, unter Missachtung der 
Forenregeln mit "endlosen" Zahlenkolonnen zu.
Das IST die Begründung, nur um es auch für dich deutlich zu formulieren.

von Idefix (Gast)


Lesenswert?

@tim_taylor Danke nochmal, das mit der RTC funktioniert soweit!

Wer die "Bürgerliche Dämmerung" berechnen will, muss
1
const double h = -50.0 / 60.0; // Sonnenaufgang beginnt sobald der Rand der Sonne über dem Horizont ist, nicht der Mittelpunkt!

durch -6 ersetzen (zumindest stimmen die Zeiten dann mit timeanddate gut 
überein).

Sind das 50 Winkelminuten in Grad? Wo kommt der Wert her?
Laut Wikipedia ist der scheinbare Sonnendurchmesser ca. 32' - müssten es 
demnach nicht -16/60 sein?

Ah, hier steckt der Wert, aber wie kommt er zustande?

https://de.wikipedia.org/wiki/Sonnenuntergang
> Der mittlere scheinbare Durchmesser der Sonne beträgt 31′59,3″.
> Der scheinbare Sonnenuntergang wird daher für eine geometrische Horizonthöhe von 
−0,833° berechnet.

Als Quelle angegeben ist

https://www.astronomie.info/zeitgleichung/
> Das Licht der Sonne wird in der Atmosphäre gebeugt. Es läuft besonders in 
Horizontnähe auf einer leicht zum Boden hin gekrümmten Bahn. Deshalb kann man die 
Sonne auch noch sehen, wenn sie rein geometrisch schon untergegangen ist. Deshalb 
wird der Untergang und auch der Aufgang der Sonne für eine geometrische 
Horizonthöhe h von -50 Bogenminuten berechnet (-50 Bogenminuten sind 
-50/60°=-0.833° und -50/60/57.29578 rad=-0.0145 rad). Von bürgerlicher Dämmerung 
spricht man, wenn h= -6° ist, nautische Dämmerung entspricht h = -12° und 
schliesslich astronomische Dämmerung entspricht h = -18°.

Ich dachte, das wird bei der "Refraktion" berücksichtigt.

Aber gut, Fall gelöst.

Hier noch ein paar Links:
https://de.wikipedia.org/wiki/Sonnenaufgang
https://de.wikipedia.org/wiki/Sonne
https://de.wikipedia.org/wiki/Sonnenstand
https://de.wikipedia.org/wiki/Dämmerung
> Die bürgerliche Dämmerung beginnt mit dem Sonnenuntergang und endet nach 
astronomischer Definition, wenn der Mittelpunkt der Sonnenscheibe 6 Grad unter dem 
wahren Horizont steht.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Idefix schrieb:
> @tim_taylor Danke nochmal, das mit der RTC funktioniert soweit!
>
> Wer die "Bürgerliche Dämmerung" berechnen will, muss
>
1
const double h = -50.0 / 60.0; // Sonnenaufgang beginnt sobald der 
2
> Rand der Sonne über dem Horizont ist, nicht der Mittelpunkt!
>
> durch -6 ersetzen (zumindest stimmen die Zeiten dann mit timeanddate gut
> überein).
>
> Sind das 50 Winkelminuten in Grad? Wo kommt der Wert her?
> Laut Wikipedia ist der scheinbare Sonnendurchmesser ca. 32' - müssten es
> demnach nicht -16/60 sein?
>
> Ah, hier steckt der Wert, aber wie kommt er zustande?

Ja genau, die 50 Winkelminuten setzen sich aus 16 Winkelminuten 
Sonnenradius und etwa 34 Winkelminuten Refraktion zusammen. Aber wie 
bereits geschrieben ist das mit der Refraktion nicht immer so einfach...

: Bearbeitet durch User
von Idefix (Gast)


Lesenswert?

Entschuldigung, ich hätte gerne mein Geld zurück!

    $ wget 
https://www.mikrocontroller.net/attachment/548174/Sonnenaufgang.zip
    $ unzip Sonnenaufgang.zip
    $ cd Sonnenaufgang/
    $ gcc *.c -lm
    $ ./a.out -b0 -l0 -z0 | grep 60
    05;60;18;07;
    ...

Lösung:
Bei der Ausgabe von main.c entweder floor() statt round() benutzen, oder 
Überläufe für Stunden (und Datum) einbauen, wenn eine höhere Genauigkeit 
gewünscht ist.

Leider ist mir das bislang nicht aufgefallen... hätte ich doch eine 
Prüfung auf zulässige Wertebereiche eingebaut... :-/

Mein Controller schreibt also gelegentlich "60" Minuten ins 
Alarmregister: "Configurations not listed in the table result in 
illogical operation."

Weiss jemand, was dann passiert? Gibt es keinen Alarm oder irgendeinen?

Aber gut, dass es mir im Sommer aufgefallen ist ;-)

von Idefix (Gast)


Lesenswert?

Idefix schrieb:
> Gibt es keinen Alarm oder irgendeinen?

Ein Test mit DS3231M -> kein Alarm!

von Idefix (Gast)


Lesenswert?

Hier noch ein Rechner, aber die Zeiten könnten GMT+1 sein, da 
Norwegisch.
Und nur für einzelne Zeitpunkte. Und ich kriege es nicht hin, Daten 
herauszukopieren.

http://astro.met.no/astro/

von Kurt (Gast)


Lesenswert?

Na und? An praktisch brauchbaren Daten bist du doch schon seit Februar 
nicht interessiert.

Ein amateurmäßig-mieser Online-Rechner mit Koordinaten-Eingabe im 
GGG.ggggg-Format von 7.-Klässlern, der nur für einen Tag irgendwas 
außerhalb jeder Zeitzone liefert ist nun wirklich nichts, womit du uns 
noch überraschen
kannst.

Unbrauchbare Daten gibt es überall für (oft auch) umsonst. Ich könnte 
dir aber eine Menge unbrauchbarer Daten für viel Geld verkaufen!
Gib Bescheid, wenn du das willst.

von Wolfgang (Gast)


Lesenswert?

Kurt schrieb:
> Ein amateurmäßig-mieser Online-Rechner mit Koordinaten-Eingabe im
> GGG.ggggg-Format ...

Du verwechselst klicky bunty GUI mit Rechnen. Hast du die Algorithmen 
überprüft, bevor du solche Kommentare ablässt?

von sagjanur (Gast)


Lesenswert?

Die Dämmerung hängt nicht nur vom Sonnenauf- und -untergang ab, sondern 
auch von Bewölkung, Niederschlag, Sonnenfinsternissen, etc.
Deshalb ist es besser, die reale Helligkeit mit einem Sensor zu messen, 
auszuwerten und entsprechend zu reagieren.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.