gulp2k Link geht nicht :/
Ankündigung
Einklappen
Keine Ankündigung bisher.
Konnekting Dimmer Software
Einklappen
X
-
Ich brauche Hilfe:
und zwar, ich habe aus der Excel Liste https://www.mikrocontroller.net/wiki...4/LED-PWM.xlsm
zwei Formel extrahiert:
Code:word result1 = round(start * pow(pow(max * 1.0 / (start * 1.0), 1.0/(steps-1)),i)); word result2 = round(pow(2,(log2(max) * 1.0 * (i + 1) / steps)));
In der Excel Liste sehen die Kurven merklich unterschiedlich aus. Bei mir sind beide +/-1 Wert neben einander. Wo ist mein Denkfehler?Ich hatte einen Denkfehler. Auch in Excel sehen die Kurven ähnlich aus... ich brauche somit komplett andere Funktion...
Ich brauche bei den Kurven Verschiebung (Start-Wert) (die erste Formel hat die schon).
Der Grund:
index 0 = 0 (Aus)
index 1 = muss nicht unbedingt 1 sein. Bei meinem Dimmer mit bestimmten LEDs leuchtet die LED erst ab start=139 (bei 12 bit Auflösung).
In der Excel Liste heißt es Factor und wird auch nur für die erste Kurve angewendet.
Gibt es Mathematiker unter uns?
Damit man besser versteht was ich möchte (Screen schon aus dem Datenblatt des Enertex Dimmer):
2018-08-24 11_11_11-1160_HB_KNX-4-Kanal-LED-Dimmsequenzer-5A-EN.pdf.png
Ich möchte unterschiedliche Kurven abbilden. Linear und DALI-ähnliche habe ich schon. Aber noch ein paar andere hätte ich auch gern.
2018-08-24 11_57_50-Microsoft Word - 101645_00-101651_00-101673_00_00MA_Handbuch_KNX_DE.docx.png
Aus dem Datenblatt zu Bilton Dimmer.Zuletzt geändert von Eugenius; 24.08.2018, 11:00.
Kommentar
-
Man kann eine beliebige Kurve in eine Funktion n-ter Ordnung überführen.
Siehe z.B. https://www.arndt-bruenner.de/mathe/scripts/regr.htmZuletzt geändert von huanah; 24.08.2018, 10:48.
Kommentar
-
gulp2k Ok, also das Prinzip ist glaube ich für mich klar. Es geht um Farbtemperaturanpassung.
Wenn ich dich jetzt richtig verstehe, schießt du alle 100ms eine Veränderung der beiden (WW und CW) Kanälen, richtig?
Nur warum so oft? wirklich jede einzelne Stufe? Ich stelle mir das so vor, dass LEDs an dein Dimmer über 2 Kanäle angeschlossen sind und Dimmer jeden Kanal selbst schön dimmen kann. Somit muss du nur ab und zu die Farbveränderung durchgeben und nicht einzelne Stufen.
huanah Danke, ich schau mir an
Kommentar
-
Eugenius Für WWCW geb ich dir recht, da hab ich es aktuell auch über Szenen gelöst nach dem das mit dem selbst dimmen unschön war.
Für den RGB Teil hab ich das Problem das die normale Dimmfunktion des Aktors Zeitlich "linear" ist.
100ms ist vielleicht etwas übertrieben aber mehr wie 200ms sollten es nicht sein sonst kann man ein flackern sehen.
Bei mir ist auch noch nicht alles umgesetzt, das nur zu Info!
Was schon gut klappt ist Nachtlicht im OG (siehe Bild)
Da wird nur Rot aufgedimmt erst ziemlich schnell um eine gewisse Grundhelligkeit herzustellen und danach langsamer bis zum Zielwert.
Wenn das flackert dann stört das sehr.
Was auch noch angedacht ist die Farben passend zur Tageszeit zu ändern (Sonnenaufgang, Untergang, usw) (Aktuell nur ne Idee).
Lange Rede was ich eben festgestellt habe ist das die meisten Dimmaktoren einfach bei der Telegramrate nicht mitmachen und man dann ein flackern bekommt.
Ich denke es liegt zum einen an der Buslast und zum anderen am Abarbeiten der Telegramme im Aktor.
Man könnte da bestimmt noch viele Fälle finden, das war halt jetzt mein Senf dazuGruß
Michael
Kommentar
-
Eine kleine Linksammlung zum Thema Dimming Curve / Gammacorrection:
https://www.osapublishing.org/oe/ful...A885&id=340077
http://rgb-123.com/ws2812-color-output/
https://lsmicro.olympus-lifescience....mma/gamma.html
https://learn.adafruit.com/led-trick...ction?view=allZuletzt geändert von Eugenius; 27.08.2018, 08:41.
Kommentar
-
Aus dem letzten Link resultiert richtig einfache Formel:
Code:int result = (pow((float)i / (float)max_in, gamma) * max_out + 0.5));
Nur wenn man auch bei adafruit genau liest, schreiben die, dass die ersten 27 Werte "0" sind, somit sind die LEDs aus.
Und je nach Dimmer/LED-Kombination/PWM-Auflösung können es unterschiedlich sein.
Mein Ziel ist, eine Formel, wo ich Gamma vergeben kann und auch den ersten Wert:
f(0) = 0,
f(1)= meinStartWert,
...
f(n-1)=maxPwmValue;
Kommentar
-
-
RGB Thema
ich bin seit paar Tagen dabei RGB Funktionalität einzubauen.
DPT 232.600 ist super einfacher, da alles 3 bytes / Farben gleichzeitig ankommen.
DPT 251.600 ist auch einfacher, da alles 4 Farben gleichzeitig kommen.
Wo ich noch keine gute Lösung habe ist einzelne R/G/B/W KOs.
D.h. man kann DPT 5.004 [0..255%] pro einzelne Farbkomponente senden.
Das wird häufig in der Visualisierung verwendet.
Mein Problem ist sieht man in folgendem Beispiel:
initial habe ich (R,G,B) 0,0,0 => alles aus.
Dann wird die Farbe auf "Cyan" umgestellt, was ungefähr R:0,G:255,B:255 entspricht.
An der Stelle senden viele Visus nicht R:0, dann G:255 und dann B:255. Sondern nur G:255,B:255. und das auch nicht gleichzeitig, sondern mit einem kleinem Delay zwischen den Werten. Sagen wir mal 50ms zwischen den Telegrammen (es gibt viele Gründe warum man das so macht).
Variante 1: ich reagiere sofort: wenn G:255 reinkommt, dann wird sofort G:255 also grün angezeigt. nach 50ms kommt noch B:255 und die Farbe springt von grün auf Cyan. Dieser Sprung merkt man...
Variante 2: wenn einer von R/G/B Werten ankommen, warte ich insgesamt z.B. ca. 200 ms um evtl. andere Farben zu erhalten, so wäre cyan sofort da und ohne den Sprung über grün. Nachteil: 200 ms delay, was man auch merkt, dafür flackern die Farben nicht.
Variante 3: Erfahrener User weiß mit wieviel Abstand die Telegramme versendet werden (z.B. über ETS nachmessen). So kann der User in der Suite die Zeit einstellen, z.B. die besagten 50ms. Dann warte ich (naja, die Software) wenn G ankommt 50ms ab (oder wieviel auch immer), und wenn R oder B nicht mehr ankommen, dann anzeigen. Wenn R oder B angekommen sind, dann wartet man wieder die 50ms und so bis man alle R,G,B,(W) bekommen hat. nach dem letzten muss man die 50ms nicht mehr warten. es wird dann komplexere Logik, aber wohl die bessere Lösung, oder?
Variante 2 habe ich umgesetzt. Konnte aber noch nicht testen, da meine Visu streikt.
Kommentar
-
Viele Dimmer gehen nicht "hart" auf den Wert sondern dimmen innerhalb von z.B. 1s zum Zielwert.
Dadurch werden solche Sprünge dann abgefangen.
Das ist auch praktisch um eine "Notschaltung" für die Beleuchtung zu bauen.
Bei mir senden der Taster z.B. fest 100% bei an aber die Visu (Edomi) sieht das und schickt dann Tageszeitabhängig z.B 70% hinterher.
Das sieht man nicht da zu dem Zeitpunkt wo die 70% zum Dimmer gehen er noch gar nicht bis 100% gekommen ist.
Vorteil dabei ist das selbst wenn mal das Smart Home streikt die Lichter immer noch gehenGruß
Michael
Kommentar
-
Naja, wir reden hier über die Farben, also eher Ambientenbeleuchtung.
Weiss dimme ich auch langsam hoch und runter (Standard 500ms, aber einstellbar).
Mit Farben ist es nicht so einfach. Weil wenn ich jetzt anfange von R:0 G:0 B:0 auf 0,255,255 zu gehen, mag es noch gut gehen. aber von 0,0,0 auf 0,127,255 kann schon mitten drin komische Farbe entstehen. Schlimmer wird es wenn man z.B. von 0,127,255 auf etwas wie 200,255,40 geht. dann kannst du in den zwischen Schritten fast den Regenbogen sehen (einwenig überspitzt gesagt).Zuletzt geändert von Eugenius; 04.12.2018, 17:39.
Kommentar
Kommentar