Sonnenaufgang Simulieren

Hallo, ich suche dringend für ein Diorama Projekt mit meinem Sohn einen Sketch, womit man einen Sonnenaufgang nach empfinden kann. Angefangen vom dunkelrot dann alle 7-8 Stunden immer heller, bis es schließlich knall hell weiß ist. Ähnlich wie das hier mit einem Raspi

Da ich recht neu bin, würde ich mich tierisch über Hilfe freuen, einen Start Sketch würde schon reichen. So das ich weitere Farbwerte selber nachtrage inclusive der Zeiten.

Ich benutze dazu einen Neo Pixel Ring mit 8 LED (WS 2812 Chips), sollte es am ende nicht hell genug sein, würde ich auf einen größeren Ring oder Stripes umsteigen.

Danke falls mir einer helfen kann und möchte, verzweifele seit 4 Wochen im Netz

Ich weiß nicht, was Du die 4 Wochen gemacht hast, aber mir wirft Google auf die Suche nach "Neopixel Sunrise" in Sekundenschnelle eine Menge Anleitungen aus, z.B. diese hier.

Gruß Tommy

Danke, die Anleitung kenne ich leider klappt die nicht, probiere damit auch seit Tagen.....

Die anderen 100 hast Du auch schon getestet?
Unsere Hilfe kann nur so gut sein, wie die Infos, die wir von Dir bekommen.

ANsonsten stelle Deinen Sketch hier ein (in Codetags) und beschreibe möglichst genau, was anders läuft, als Du Dir das vorgestellt hast. "Klappt nicht" ist die denkbar ungeeignetste Beschreibung eines Fehlers.

Gruß Tommy

Hundert gibt es leider nicht! Lediglich 3 zeigt Google an, allerdings möchte ich keine Uhr mit einbauen

Was kostet mich solch ein Sketch !?

TDF:
Was kostet mich solch ein Sketch !?

Lernen oder einen Dienstleister beauftragen.

Wenn es Dir aber schon zu viel ist, die Fragen zu beantworten, wird wohl der Dienstleister die bessere Wahl sein.

Gruß Tommy

Hi

Aber auch Dieser möchte ganz gerne vorher wissen, was Es werden soll - sonst kommt Der Sich auch nur veralbert vor.

Also WS2812B, 8 Stück.
Die angegebene Zeit sehe ich als unrealistisch - oder wie sind die 7...8 STUNDEN zu verstehen?

Dann gibt's Dutzende Beispiele, wo lustig Farben durch den Stripe (bei Dir dann eben Ring) geschickt werden - vll. dort die Farb-Palette anpassen durch Das, was Google so abwirft?

WAS hast Du? (Link zu Hardware, Sketch in Code-Tags)
WAS macht Es?
WAS erwartest Du statt Dessen?

MfG

PS: Der von Dir verlinkte Sketch geht doch schon in genau diese Richtung?!?
Was hindert Dich daran, in der Sunrise-Tabelle mehrere Farben einzutragen, damit der Verlauf gemächlicher wird?

Genau diese Fragen hatte ich ja schon gestellt. Antwort darauf = NULL.

Gruß Tommy

Ok,

Ich versuche einen neunen Start, vorab muss ich sagen das im ersten Post nicht 7-8 Stunden gemeint war, sondern Sekunden. Sorry, mein Fehler! Sorry!

Also, ich Unterteile das hier mal was ich mir "Wünsche", was es werden soll und was ich an "Inventar" besitze

Fange damit mal an, das ich ein Diorama mit meinem Sohn gebaut habe, in einer Kiste ähnlich groß wie ein Kühlschrank (Mini Bar) in einem Hotelzimmer. Hier paar Bilder

Der LED Ring

https://www.ebay.de/itm/8-Bit-WS2812-RGB-LED-Ring-8-LEDs-für-Arduino-NodeMCU/352897845699?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649

Diese Kiste hat 2 Türen, wenn diese geöffnet werden soll mein Diorama beleuchtet werden, um das Anschalten geht es aber nicht, sondern nur rein um den "Sonnenaufgang".

Ich besitze unter anderem einen Neo Pixel Ring, mit 8x WS2812B LED´s, habe auch noch Stripes mit jeweils 8x LEDs on Board. Die ganze Kiste steht ca. 330 Tage im Wald, heißt sie muss mit einer oder 2x 12V 12 Ah Batterien betrieben werden. Diese Kiste (Diorama) ist Teil eines Spiels. Aber das nur nebenbei. Soll heißen, im Wald habe ich KEINE! 230V, nur meine 2x 12V je 12-15 Ah Batterien.

Der Sonnenaufgang (Mein NeoPixel Ring) soll vom dunklem Lila langsam heller werden, nach jeweils 8 Sekunden zur nächsten Farbe Smokt wechseln, bis nach ca. 40-60 Sekunden das hellste Weiß erscheint was diese 8 LEDs zu bieten haben, damit man mein Diorama in der Kiste gut sehen kann. Sollten die 8 LEDs am ende zu schwach sein, kann ich auch größere Ringe ausweichen, es geht mir hier mehr um die ERSTEN ! nicht alle! Sketch Zeilen schreiben soll,

Beispiel: (naja schon so soll es am ende werden...)

Start des Sketch....

Schwaches Lila wird immer heller, wechselt dann nach 8 Sekunden Smooth ins Orange/Rot-Orange...nach 8 Sekunden dann ins blaue, hellblau...... usw. usw. usw. zum Warmweiß, bis Kaltes Weiß und dann 100% hell!..... Das weiße Licht soll dann ca. 3 (z.b.) Minuten an bleiben, bis die Kiste wieder geschlossen wird.

Es geht mir darum, wie ich den Ring zum Leuchten bringe mit Lila, wobei das Lila ja auch in den 8-9 Sekunden aufhellen soll, denn ein echter Sonnenaufgang steigt ja auch nach und nach immer heller.

Wie schreibe ich den Sketch mit den Zeiten? Es würden mit ja schon 2 Zeilen reichen.

  • Schwaches Lila immer heller....dann ins rot-orange-rot- wie schreibe ich die ersten 2 Farben, den Rest suche ich mir schritt für schritt selber zusammen.... sodass ich am ende alle Sonnenaufgangs Farben habe,

Dazu kommt, schreibe ich die Farben im Sketch als RGB Zahlen oder HEX Code?

@Tommy, keine Ahnung was ich dir getan habe, aber deine Art ist merkwürdig.

JA! Ich fange ganz frisch an, habe mehrere Starter Sets, mehrere UNO´s, MEGA Arduino's, auch mega viel Zubehör. Und ja, mit dem Steckbrett habe ich auch schon paar Lämpchen zum leuchten gebracht, dennoch fange ich als Newbie an, daher erhoffte ich hier um Hilfe.

Und JA; ich bin gern bereit zu lernen, keine Frage, dennoch brauche ich bitte einen kleine Starthilfe, 2 Zeilen Code damit ich weiß wie man die Zeiten und Farben ansteuert und ob ich alle einzeln anschreiben muss oder es komplett als Ring geschrieben wird.

Ich hoffe ich konnte nun es besser erklären.

Dazu kommt, schreibe ich die Farben im Sketch als RGB Zahlen oder HEX Code?

Ist das gleiche nur andere Darstellung.

Also Du möchstest einen Sonnenaufgang der startet sobald die Türen aufgemacht werden?
Du willst also einen Übergang von schwachen lila nach mittlerem rot, orange und hellem weiß?

Grüße Uwe

postmaster-ino:
Also WS2812B, 8 Stück.

WAS hast Du? (Link zu Hardware, Sketch in Code-Tags)
WAS macht Es?
WAS erwartest Du statt Dessen?

PS: Der von Dir verlinkte Sketch geht doch schon in genau diese Richtung?!?
Was hindert Dich daran, in der Sunrise-Tabelle mehrere Farben einzutragen, damit der Verlauf gemächlicher wird?

Du bist immer noch dran.
Die beiden letzten Fragen sind noch offen. Noch mehr Fragen wären:
WAS genau passt dir am aktuellen Ergebnis nicht? ("Geht nicht" gilt nicht)
WAS hast du als Verbesserung schon probiert, und was ist dabei passiert?

Du kannst übrigens mit nur einer der LED in "fast aus" RGB(1,0,1) anfangen

TDF:
Wie schreibe ich den Sketch mit den Zeiten? Es würden mit ja schon 2 Zeilen reichen.

2 Zeilen reichen nicht ganz:

static unsigned long Zeitmerker = 0;
if(millis() - Zeitmerker >= 8000){      // alle 8 Sekunden
Zeitmerker = millis(); 
++ Helligkeit;              // Heligkeit um 1 erhöhen
Farbe = [...];              // Farbe neu definieren
}

Das hättest du dir auch aus jedem Tutorial raussuchen können aber es wird oft gefragt.

Den Rest, wie man Helligkeit und Farbe des LED-Rings steuert, dazu wird es doch sicher Beispiele geben!

Hi

Farben 'durchlaufen' klingt eher nach HSV-Farbmodel - dort ist eine Gerade zwischen zwei Punkten ein Überblenden zur anderen Farbe.
Das ist bei RGB NICHT!! gegeben.
Wobei man hier die Abstände der Wunschfarben so wählen kann, daß Das immer noch nett aussieht.
HSV lässt sich in RGB umrechnen - und umgekehrt (besser was Fertiges suchen - der Formel-Salat ist nicht Ohne).

Für jeden der Pixel wirst Du 60mA Stromaufnahme bei VOLL-AN rechnen müssen - bei dem 8er Ring ist Das aber noch unkritisch (VERSORGEN kann der Arduino Den aber dennoch NICHT).

Selber hätte ich wohl eher eine Funktion ersonnen, Die mir bei gegebenem Anfangs- und Endfarbwert, wie Anfangszeit und Laufzeit, die 'JETZT'-Farbe zurück gibt.

//Funktion gibt die 'Zwischenfarbe' von _start bis _ziel je nach vergangener Zeit ab start bei maximaler Laufzeit zurück
//RGBW (so wird der 32-Bit-Wert auch voll)
uint32_t fadewert(byte r_start, byte g_start, byte b_start, byte w_start, byte r_ziel, byte g_ziel, byte b_ziel, byte w_ziel, uint32_t startzeit, uint32_t laufzeit) {
  const byte rbit = 0;  //Position des Farbwert in dem 'HEX'-Farbwert
  const byte gbit = 8;  //r0,g8,b16,w24 -> 0xWWBBGGRR
  const byte bbit = 16;
  const byte wbit = 24;
  byte r = map( constrain(millis(), startzeit, startzeit + laufzeit), startzeit, startzeit + laufzeit, r_start, r_ziel);
  byte b = map( constrain(millis(), startzeit, startzeit + laufzeit), startzeit, startzeit + laufzeit, g_start, g_ziel);
  byte g = map( constrain(millis(), startzeit, startzeit + laufzeit), startzeit, startzeit + laufzeit, b_start, b_ziel);
  byte w = map( constrain(millis(), startzeit, startzeit + laufzeit), startzeit, startzeit + laufzeit, w_start, w_ziel);
  uint32_t retval = ((uint32_t)r << rbit) | ((uint32_t)g << gbit) | ((uint32_t)b << bbit) | ((uint32_t)w << wbit);
  return retval;
}

Das constrain soll die Laufzeit innerhalb der angegebenen Zeiten halten, dadurch 'läuft map() nicht über'.
Ob man bereits 'hinten angekommen' ist, muß man extern prüfen.
Die vier identischen Berechnungen könnte man zusammen fassen/auslagern, dürfte Speicher sparen.
Wenn eine andere Farb-Reihenfolge benötigt wird, entsprechend umstellen.
Wenn W (white = Weiß) nicht gebraucht wird, auf Wert Null und an Stelle 24 (ab Bit 24, bis 31).

Ob Das auch so tut, wie ich mir Das denke ... kA, aber kompiliert ohne Warnung.

MfG

Bisher danke für die "Starthilfe" hier, ich werde mal die tage versuchen und testen.....

Werde die Tage berichten.