super smoothe Animation / Graustufen Problem !?

  • Hallo LedStyler Gemeinde,


    hier spricht der Tobi, 36 Jahre, Malermeister aus Köln.


    wie bekomme ich mit einzeln adressierbaren pixeln im unteren Helligkeitsbereich (max 10 %) LANGSAME und FLÜSSIGE Farb- und Helligkeitsverläufe auf einer kleinen Matrix (120 – 512 px) hin ?


    Bisher benutze ich die SK6812 wwa pixel, erstelle eine Animation in Jinx und lasse die Datei im tpm2 Format von einem StandaloneController (led player) abspielen.


    An dieser Stelle ein fettes Danke ! übrigens an die Entwickler für dieses tolle Programm und das tpm2 Protokoll welches hier entwickelt wurde ! Ich konnte hiermit als Einsteiger vor 2 Jahren bisher alle meine Wünsche bei der Ansteuerung von led´s umsetzen ! Top ! 8)


    Zurück zum Thema..


    Bei max 10% Ausgabehelligkeit werden die Sprünge der Grauwerte deutlich sichtbar.

    Dieses „Zittern“ soll eliminiert werden.

    Die Animation ist sehr langsam und soll Lava ähneln. Gaaaanz langsamem weichem Lava ;)


    Also ich habe jetzt gefühlt alles ausprobiert was in meiner Macht steht.. zB. Mit einer Tönungsfolie die Leds abzudunkeln um so auf 80% Ausgabehelligkeit laufen zu können, Streufolien vor der Matrix, oder die Leds nie ganz auf 0 ausfaden zu lassen, mit dem Gammawert rumgespielt, alle möglichen Variationen der Szenen aus Jinx überlagert, aber das Zittern bleibt immer sichtbar.. ich denke ich bin gefangen in dem Bruchteil der 256 Graustufen in welchem ich mich aufgrund der geringen Ausgabehelligkeit bewege..


    Gibt es adressierbare Pixel mit mehr Graustufen, oder können die irgendwie geglättet werden ?

    Was ist mit den APA102 und deren zuätzlichen 35 globalen Helligkeitseinstellungen. Kann man das nutzen ? (leider kein wwa)


    Evtl. könnte unterstützend ein Kondensator vor den Led´s noch helfen ?


    Dann wären da ja noch zahlreiche andere Protokolle und/oder Controller, wie DMX, Arduino, Sedu, FadeCandy …?!?!?!? ..evtl. muss ich hier ansetzen ?!


    Ich bin nicht nicht vom Fach und verliere den Überblick.. von dem her hoffe ich hier auf eine kleine Orientierungshilfe in welche Richtung ich mich weiter einlesen muss..


    ..um konkrekt folgendes zu erreichen:


    „Eine super smoothe Animation“


    Eine Matrix mit kleinem Pixel Pitch in WWA (bisher nutze ich hierfür die Sk6812 144px/m stripes)

    Eine flüssig laufende Animation (wie Lava) mit sehr weichen Farb- und Helligkeitsverläufen

    Eine kleine Led Matrix (7x17=119 px, erweiterbar auf 512px)

    Eine geringe Ausgabehelligkeit (ca 5 - 10%)

    Eine langsame Laufgeschwindigkeit (etwa wie der Sekundenzeiger auf einer Uhr)

    Einen Standalone Controller der die Matrix ansteuert.


    Optional wäre es super die Animationen weiterhin in Jinx erstellen zu können.


    Aber naja, das sind wohl etwas viele Wünsche aufeinmal..

    ..ich hoffe daß das Projekt machbar bleibt und sich weiter nach vorne bewegt, denn sonst werde ich bald Wahnsinnig :DDD muhahaahaahhaaa 8o

    bin dankbar für jedes Input !

  • Eine geringe Ausgabehelligkeit (ca 5 - 10%)

    Bedeutet das, dass du grundsäctzlich nur die geringe Helligkeit benötigst und oberhalb 10...15% gar nicht ansteuen willst?

    Ich kenne jetzt die konkrete Schaltung nicht, aber dann wäre es doch angebracht, dass du die Bestromung der LED grundsätzlich reduzierst (also Vorwiderstände vergrößern/bzw. LED-Spannung verringern oder Stromquellenschaltung auf geringeren Strom einstellen).

    Dann kannst du wieder den vollen PWM-Bereich 0...255 Digit nutzen und die Helligkeitsprünge würden nicht ausfallen.

    Gruß Helles Licht

  • Hey, Danke schonmal für das Feedback..!


    Bedeutet das, dass du grundsäctzlich nur die geringe Helligkeit benötigst und oberhalb 10...15% gar nicht ansteuen willst?

    Ja


    die Bestromung der LED grundsätzlich reduzierst ..

    ..Dann kannst du wieder den vollen PWM-Bereich 0...255 Digit nutzen und die Helligkeitsprünge würden nicht ausfallen

    also das wäre quasi ein Traum, das wären alle Fliegen mit einer Klatsche ..!


    ..die Spannung zu reduzieren würde glaub ich nicht ausreichen, im Vergleich zu 5V laufen die led´s bei 3,3V noch bei ca. 90 % Helligkeit

    (hier im Vergleich ws2812)


    Wenn ich die Stromstärken messe, welche meine Matrix beim Abspielen der "Lava"-Animation verbraucht, sind das bei den gewünschten

    10% Ausgabehelligkeit im Durchschnitt 0,7 A

    bei 100% Ausgabehelligkeit 2,9 A.

    Dann müsst ich also 2,2 A in Vorwiderständen verbraten ? das wäre nicht so cool.. und das bei nur 119px, bei 512px dann mehr als das vierfache X/


    Stromquellenschaltung auf geringeren Strom einstellen


    das hört sich interessant an, aber ich weiß nicht ganz wie Du das meinst. Also eine Konstantstromquelle ? hinter dem Netzteil ?

    Ich verwende als Stromquelle ein (noch etwas überdimensioniertes) Konstant-spannungs-Netzteil (Meanwell RSP-150-5)



    Mein Schaltplan ist übersichtlich, ich habe nur einen anderen Controller, sonst so wie hier in der Skizze..


  • glaub ich kann Dir jetzt folgen, diese Stromquellenschaltung wäre quasi eine Konstantstromquelle, also auch nichts anderes als ein regelbarer Widerstand..

    Naja, den Ansatz mit der generellen Reduzierung der Bestromung fand ich sehr gut und einleuchtend, bis auf die Umsetzung.. Habe trotzdem versuchshalber mal 2,5 Ohm Widerstand in die Leitung gesetzt, und da kam dann eh die Ernüchterung..

    .. je nach Stromstärke gehts eher in Richtung Strobo und sprunghaften Farbwechseln. Bei der extremen, also max. Helligkeit vorgaukeln aber nur 10% Strom in die Led´s leiten, wird nur noch ein Kanal angesprochen - eine Lichfarbe. ..hier ist die Stromstärke wohl zu gering als das die Led´s überhaubt korrekt laufen würden.


    aber trotzdem Danke :thumbup:




    Edit: es war die Spannung welche ich hier verringert hatte, nicht der Strom..

  • Hallo,

    wenn du die LED mit WS281x hast, wird gibt es ein Problem.

    Da kommst du nicht an die Stromquellenschaltung ran und kannst deshalb nicht einfach die Grundhelligkeit reduzieren.

    Nach deinem ersten Posting dachte ich, du hättest da eine andere Elektronik.


    Da bleibt dir wohl doch bloß die Möglichkeit, einen Neutralfilter (Graufilter) mit ca. 10...15 % Transmission vor die LED zu setzen.

    Oder du baust die LED-Matrix ganz anders auf.

    Gruß Helles Licht

  • Hey,


    mit den Tönungsfolien das habe ich bereits versucht, auch Streuscheiben, Diffusor sowieso.. aber das Verlagert die Graustufen-sprünge nur in eine höhere Ebene.. Ich hatte befürchtet das es ein neuer Aufbau aus Hard- und/oder Software werden muss :| Hättest Du ein paar Eckdaten wie so ein Aufbau aussehen könnte ? Wo muss ich da ansetzen ?

    Gruß Tobi

  • Hallo,

    wenn du die LED so weit bedämpfts, dass du wieder die vollen 255 Digit für die Helligkeitssteuerung zur Verfügung hast, dann werden die Helligkeitsstufen zumindest im helleren Bereich nicht mehr so auffällig sein. Allerdings hat das Auge ein eher logarythmisches Helligkeitsempfinden, so dass die unteren ca. 10...20 Digit immer noch recht hell erscheinen und die letzten einzelnen Stufen werden dadurch immer gröber und auffälliger.


    Mit LED-Stripes auf Basis von WS281x und dazugehöriger Software wird das also nicht zu lösen sein.

    Ideal wäre eine analoge Ansteuerung der LED, dann könnte man mit Tiefpässen einen stufenlosen Übergang hinbekommen.

    Nur ist die Realisierung einer Matrix mit bis 512 Pixeln analog wohl viel zu aufwendig.


    Alternativ wäre eine LED-Matrix mit Zeilen/Spalten-Multiplexer und PWM-Steueurng eine Möglichkeit.

    Dann braucht man aber eine vielkanalige PWM-Steuerung mit höherer Auflösung (mind. 12...16 Bit).


    Wenn die PWM schnell genug ist, dann kann man aber zwischen 2 Werten schnell hin und herschalten. So kann man auch noch Zwischenwerte bekommen und eine höhere Auflösung erreichen. Das wird dann aber sowohl elektronisch als auch softwaremäßig schon etwas anspruchsvoller und ist von einem Laien nicht mehr so einfach zu realisieren.


    Da solltest du evtl. doch nochmal suchen, ob solch ein Projekt schon mal jemand gemacht hat.


    Es gibt wohl auch spezielle LED-Treiber-IC , die mehr als die üblichen 8 Bit Auflösung bieten

    http://www.ti.com/lit/ds/slvscq4/slvscq4.pdf

    Gruß Helles Licht

  • Hallo,


    ich fange an zu verstehen das ich wohl mit libraries wie zB. fastled und entsprechenden microcontrollern arbeiten müsste..

    ..da werde ich wohl kapitulieren und auf aktive fremde Hilfe ausweichen müssen.


    Verstehe ich es aber richtig, daß ein Controller der mit 16Bit PWM arbeitet, auch 8Bit led´s (respektive ws281x) in 16Bit Helligkeitsstufen ansprechen kann !?

    und wenn ja, wäre das ganze dann theoretisch auch mit einem tpm2 Protokoll (aus Jinx) kompatibel ?

  • Hallo,

    ein uC, der 16 bit PWM ausgeben kann, macht dies direkt an seinen Portpins.

    Die Ansteuerung der WS281x-Chips erfolgt aber über deren spezielles digitales Interface mit dem dazugehörigen Protokoll und die Ausgabe der PWM an die dazugehörige LED erfolgt von dem WS281x-Steuerchip. Da bleibt es natürlich bei den 8-Bit-PWM der WS281X-Chips. Die können nicht einfach verdoppelt werden.

  • Hey,

    Danke für das Input soweit.

    Nach einiger Recherche habe jetzt einen etwas besseren Überblick der Zusammenhänge, Möglichkeiten und Einschränkungen. Optimal wären für mein Projekt wohl adressierbare leds mit 16 Bit Graustufen, aber da es diese nicht gibt (in weiß), habe ich wohl Pech gehabt. Die einzigen leds mit eigenem ic und 16Bit welche ich gefunden habe, (UCS9812) gibt es nur in rgb. Das Thema multiplexing würde ich gerne weiter aufgreifen, aber da ich den Effekt neben der Matrix auch auf einem einzelnen stripe ablaufen lassen möchte, wäre das auch keine Komplettlösung. Ich werde mal versuchen mit den apa102c die Auflösung zu erhöhen, die haben in jeder led 3 weiße pixel, wenn ich hier jeden Kanal einzeln anspreche, müsste ich auf 256x3 Helligkeitsstufen kommen. Ich bezweifle daß das reicht, aber einen Versuch ist es mir wert. Mal schauen was sich dann sonst noch so machen lässt. Muss mir auch das Thema FastLed und dithering nochmal etwas genauer anschauen.. :/