Lib für Sonnaufgang ?

Hallo,
ich suche eine fertige Lib für eine Art Sonnenauf,- Untergang.
Dabei geht es mir nicht um den Längen- und Breitengrad.
mir geht es hauptsächlich darum das ich einstellen kann in welcher Zeit ich den PWM-Level z.B. von

StartAufsteigend_Pwm = 50; //PWM-Level
EndAufsteigend_Pwm = 255; //PWM-Level
StartZeit_Aufsteigend = 7; // Start Uhrzeit
Dauer_Aufsteigend = 30; // Dauer in Minuten zw. StartAufsteigend_Pwm und EndAufsteigend_Pwm
Dauer_hundertProzent = 9; //Stunden in der Licht bei 100%
Dauer_Absteigend = 30; // Dauer in Minuten zw. Ende Dauer_hundertProzent und EndAbsteigend_Pwm
EndAbsteigend_Pwm = 0 ; //PWM-Level

Wenn ich es mit meinem Wissen programmiere würde ich eine Lineare Linie Auf- und Absteigend erhalten.
Schöner wäre es wenn ich diese Linie wie eine Sin-Cos Linie hätte jedoch mit längerer 100% Leistung

Gibt es sowas ?

Grüße Sepp

Hallo,

wenn dir das weiterhilft ...

Doc_Arduino:
Hallo,

wenn dir das weiterhilft …

https://forum.arduino.cc/index.php?topic=504504.0

https://forum.arduino.cc/index.php?topic=218280.0

https://forum.arduino.cc/index.php?topic=313942.15

Danke für die Links, die meisten hatte ich schon gefunden, war aber der Meinung das diese sich meist auf Sonnenaufgang in Abhängigkeit von den Koordinaten des Standorts beziehen.
Bei der Hühnerklappe geht es ja nur um Auf und Zu oder?.. ich suche ja was ansteigt und absteigt… vielleicht reicht aber auch mein Wissen nicht dazu aus um das Thema richtig zu begreifen

Den Standort kannst du ja einmal fest im Code eingeben. Die Formeln beziehen sich nunmal darauf. Die Zeit kommt dann noch dazu.

Meine Vorschlag: Nimm einen LDR und miss bzw. zeichne auf, wie der Werteverlauf am Analogeingang ist. Wenn Du die Werte mit „Zeitstempel“ auf der seriellen Schnittstelle mitlogst (Terminalprogramm), kannst Du von totaler Nacht bis sonniger Mittag so viel aufzeichnen, wie auf Deine Festplatte passt.

So einen Ablauf dann schneller ablaufen zu lassen ist ein Klacks.

Gruß

Gregor

gregorss:
Meine Vorschlag: Nimm einen LDR und miss bzw. zeichne auf, wie der Werteverlauf am Analogeingang ist. Wenn Du die Werte mit „Zeitstempel“ auf der seriellen Schnittstelle mitlogst (Terminalprogramm), kannst Du von totaler Nacht bis sonniger Mittag so viel aufzeichnen, wie auf Deine Festplatte passt.

So einen Ablauf dann schneller ablaufen zu lassen ist ein Klacks.

Gruß

Gregor

wahrscheinlich stehe ich jetzt auf der Leitung oder es ist nicht klar geworden was ich möchte

Hier mein Versuch nochmal es zu beschreiben.

Ein lineares aufsteigen von 0 zu 255 und das in 1, 2, 5, 10 oder 360 Minuten ist für mich kein Problem. Das bekomme ich noch hin.
Ich brauche ein Programm was ÄHNLICH wie eine Sonnenauf- Untergangssimulation funktioniert.
Die meisten Programme die ich gefunden habe (so habe ich es dort meist verstanden) halten sich an bestimmte geographische Gegebenheiten. Ich möchte jedoch zu Jederzeit einfluss auf die Zeiten und die dauer des Auf und Untergangs nehmen

Heute möchte ich das die eine LED innerhalb 3 Min ihre volle Leistung bekommt und morgen soll es einen halben Tag sein und dann auch wieder abfallen

ich suche also eine lib bei der ich diese Werte stets temporär eingeben kann.
Das sind u.a. PWM werte von z.B. Start= 50 und End= 230 oder max 255.
Die Dauer in der der Anstieg passieren soll , z.b. 5 min oder 300 min
und das gleiche auch für Abfallend.

Vielleicht habe ich auch die o.g. tools missverstanden dass genau dies dort möglich ist.

Im Endeffekt interessiert mich dabei NUR diese für mich anpassbare Sinus/Cos-Kurve... so hätte ich einen weichen Anstieg der dann ab einem bestimmten Punkt fast linear bis kurz vor erreichen des Ziel-wertes zum Schluss hin weich ausläuft wie oben im Anhang zu sehen und genau das kann ich selber nicht programmieren

Schöner wäre es wenn ich diese Linie wie eine Sin-Cos Linie hätte jedoch mit längerer 100% Leistung

Wegen "längerer" , passen dir nicht die "echten" Sonnenstands-Libraries die natürlich mit Breitengraden arbeiten.
Da du "längerer" nicht genau definierst, ist die Suche nach etwas passendem erst dann erfolgreich, wenn du es -- mit oder ohne Beispiel-Vorgaben -- selber gemacht hast.

Hallo,

hab ich das richtig verstanden, eigendlich willst Du wissen wann Sonnenaufgang und wann Sonnenuntergang ist. Abhängig davon willst Du etwas machen.

Nun ist es aber nun mal so das die beiden Zeiten Ortsabhängig sind, das hängt mit der dicken Kugen zusammen auf der wir leben. :slight_smile:

Wenn Dir das alles zu aufwendig ist , und du es nicht so genau brauchst , dann würde ich mir die Zeiten für einen Standort suchen der in Deiner Nähe ist. Wenn Du dann für jeden Monat 2 oder auch 4 Zeiten in einer Tabelle (Array) einträgst könnte das genau genug werden. Du musst dann allerdings das aktuelle Datum mit dem Datum der zugehörigen Tabellenwerte auf grösser vergleichen und dann die passende Zeit als Trigger für dein Ereigneiss nehmen.

Heinz

Nachtrag:

ich glaube ich hab Dich nicht verstanden , denke du hast Probleme mit der Sinus Funktion, die willst Du über den ganzen Tag, (x-Achse) laufen lassen . ?

hab ich das richtig verstanden, eigendlich willst Du wissen wann Sonnenaufgang und wann Sonnenuntergang ist

. Nein. So wie ich das verstanden habe, war "Sonnaufgang" nur zur Verwirrung erwähnt worden. Oder um anzudeuten, dass es kein lineares Faden sein soll. Aber wie genau, ist mir auch noch unklar.

sepp01:
Im Endeffekt interessiert mich dabei NUR diese für mich anpassbare Sinus/Cos-Kurve… so hätte ich einen weichen Anstieg der dann ab einem bestimmten Punkt fast linear bis kurz vor erreichen des Ziel-wertes zum Schluss hin weich ausläuft wie oben im Anhang zu sehen und genau das kann ich selber nicht programmieren

Es geht also im Grunde darum, einen Ausschnitt aus einer Sinuskurve zu dehnen oder zu stauchen, Amplitude definieren, nur die obere Hälfte zeitlich in die Länge ziehen …
Und am Ende möchtest Du per PWM diesen Verlauf „nachzeichnen“.

So richtig?

Gruß

Gregor

Hi

Die Erde macht 360° in 24h - +/- einen Muckensack.
360°/24h = 15°/h (Grad pro Stunde)
Null sollte man auf 6:00h legen, da so das Maximum auf 12:00h (=90°) kommt und das Minimum auf 0:00h (=270°).
Wenn Du nun einen Schwellwert definierst, ab wann die Sonne 'zu sehen ist' (stur prüfen, ob der Wert drüber ist), kannst Du so dann ab Da hochdimmen.
Dieser Schwellwert würde mit den Jahreszeiten wandern - Das 'riecht' schon wieder nach einer Kreisbewegung - Dauer 1 Jahr - und könnte ebenfalls automatisiert werden.

MfG

michael_x:
Wegen “längerer” , passen dir nicht die “echten” Sonnenstands-Libraries die natürlich mit Breitengraden arbeiten.
Da du “längerer” nicht genau definierst, ist die Suche nach etwas passendem erst dann erfolgreich, wenn du es – mit oder ohne Beispiel-Vorgaben – selber gemacht hast.

auf dem Bild ist es doch klar zu sehen was ich realisieren möchte und das geht so glaube ich mit den realen Sonnenstands-libs nicht oder doch?
lade es gleich noch mal hoch

in ähnlicher weise möchte ich das realisieren

gregorss:
Es geht also im Grunde darum, einen Ausschnitt aus einer Sinuskurve zu dehnen oder zu stauchen, Amplitude definieren, nur die obere Hälfte zeitlich in die Länge ziehen ...
Und am Ende möchtest Du per PWM diesen Verlauf „nachzeichnen“.

So richtig?

Gruß

Gregor

genau ich möchte es so wie im letzten Post von mir auf dem Bild realisieren.
ein realer Sonnenaufgang wie ihn diese Libs die ich ím Netz finde , kommt daher für mich nicht in Betracht
wie oben schon beschrieben, eine lineare Linie ob Auf,- oder Absteigend und das individuell bekomme ich programmiertechnisch hin.
aber diese weiche Kurven die Anfangs und am ende sanft auslaufen , leider nicht

Hi

Zwei der Kurven sehen wie 4-tel-Kreise aus - Das lässt sich berechnen.
Die Anderen sind 'nahezu immer auf einem Wert' - den Rest davor sieht dem Verlauf dahinter ähnlich, nur gespiegelt.
Da würde ich mit einer Tabelle ran gehen und Dieser sagen, wie lange welcher Step andauern soll.
Beim Sonnen-Aufgang von links nach rechts, beim Untergang von rechts nach links.

Je nach Schrittweite kommst Du mit recht wenigen Werten in der Tabelle hin - aufblasen kann man Das ja immer noch, wenn bekannt ist, was man noch an Speicher hat.

MfG

PS: Wobei bei den 'in der Mitte platten 'Kurven' ' man auch einfach nur linear angleichen könnte, macht keinen großen Unterschied.

Hallo,

wenn ich dich richtig verstehe möchtest du eine eigene Helligkeitskurve erstellen?
Dazu machste dir eine Exceltabelle und kannst dir x beliebige Kurven erstellen. Also mit unterschiedlichen Stauchungen der Parabelform. Das alles beruht auf dem Prinzip der liniearen Helligkeitsanpassung an unser Auge. Im Grunde musste mit dem Gammawert experimentieren. Um den Effekt allerdings praktisch zu überprüfen benötigts du ein "Helligkeitsmeßgerät". Ansonsten nach Gefühl und Laune.

https://www.mikrocontroller.net/articles/LED-Fading

Irgendwie ist das immer noch unklar für einige. Willst du nun abhängig vom Sonnenstand etwas steuern oder willst du den Sonnenverlauf per Lichtquelle nachbilden?

Hi

Meinem Verständnis nach will Er einen eigenen 'Sonnenverlauf' darstellen - hat also Nichts mit der Realität zu tun, soll aber 'irgendwie in die Richtung' aussehen.

MfG

postmaster-ino:
Je nach Schrittweite kommst Du mit recht wenigen Werten in der Tabelle hin - aufblasen kann man Das ja immer noch, wenn bekannt ist, was man noch an Speicher hat.

MfG

PS: Wobei bei den 'in der Mitte platten 'Kurven' ' man auch einfach nur linear angleichen könnte, macht keinen großen Unterschied.

ich glaube fast auch das es darauf hinauslaufen wird da ich so ein Lib eh nicht bekomme.
Tabelle, meinst du ich sollte mir ein array basteln?

Hi

sepp01:
...
Tabelle, meinst du ich sollte mir ein array basteln?

Wäre zumindest mein Weg.
Denke, ich würde einen analogen Wert und die Laufzeit für Diesen pro Punkt nehmen.
Dann ist's 'nur noch' etwas Mathe mit millis(), um herauszubekommen, bei welcher Helligkeit wir nun sind.

Irgendwie muß der Arduino noch mitbekommen, wann 'Null' ist - ungefähr 12 Stunden später wäre die Sonne dann wieder aus.
Da 'meine Sonne' genauso schnell auf- wie untergeht, stünden in meiner Tabelle nur die Hälfte der Werte.
Den zeitlichen Abstand zum Ende (also ganz Aus) lässt sich ebenso berechnen und man kann dann die Tabelle von Hinten her abarbeiten, bis man wieder bei Null angekommen ist (bzw. die Laufzeit des ersten Tabellenwert vorbei ist).
Start ab nächsten Tag via RTC-Alarm um 6:00h
(oder entsprechend später, wenn Dein Tag schneller abläuft)

MfG

sepp01:
Tabelle, meinst du ich sollte mir ein array basteln?

Eine Möglichkeit wäre auch, den Ablauf in Abschnitte aufzuteilen und innerhalb dieser Abschnitte linear zu „dimmen“ - letzteres kannst Du ja. Wenn Du es nicht per (scheinbar ja eh nicht existierender) Bibliothek machst, sondern das selbst ausbaldowerst, weißt Du bis ins letzte Detail, wie es funktioniert, und kannst es jederzeit ändern/anpassen.

Die Vorstellung, das per Kurve abbilden zu können, ist eh „riskant“. Wie sich die Dinge verhalten und wie sie wahrgenommen werden, ist hin und wieder sehr unterschiedlich.

Gruß

Gregor