[RGB LED]Wieviel Stufen für "Stufenlosigkeit"?

  • Hallo und Guten Abend!
    Das sieht mir nach nem ordentlichen Forum aus, also hab ich mich hier mal angemeldet ;)
    OK:
    Ich will son bischen mit RGB LEDs rumexperimentieren, wozu ich die einzelnen Kanäle per D/A Wandler ansteuern will.
    Von PWM hab ich gehört und zwar auch soviel, dass das DIE Lösung ist, aber ich wills erstmal rein per D/A Wandler machen, weil die Digitalen Ausgänge schon so schön an nem USB Controller zur Verfügung stehen.
    Gut meine eigentliche Frage ist nun, wie hoch die Auflösung meines D/A Wandlers sein sollte, damit die Übergänge mehr oder weniger stufenlos aussieht. Ich wollte das ganze erst nur mit 3Bit pro Kanal aufbauen, weil ich keine Lust hab soviel zu löten, aber nun scheints mir doch etwas wenig mit nur 8 Farben pro Kanal. Aber trotzdem hätte ich ja insgesamt 512 Farben oder nicht?
    Ich kann mir das jedenfalls nicht vorstellen, wieviel Stufen ich da brauche und würd mich über Erfahrungswerte freuen ;)


    gruss sauce


    PS: ich hab gesehen, dass die PWM schaltungen teilweise mit 12Bit arbeiten, was mir aber dann doch "etwas" zu viel wäre für den Anfang.

  • Hi und willkommen im Forum!


    zum Verständnis: willst Du mit dem D/A-Wandler dann eine Stromquelle steuern....? - Weil wenn Du damit ne Sapnnung einstellst, die Du dann (natürlich mit Vorwiderstand!) auf ne LED gibst, wird das Ganze alles andere als linear werden!


    8 Stufen sind, naja, 8 Stufen, das ist weit weg von "stufenlos".... ;)


    Wie ist das mit den "Übergängen"...? - da spielt auch die Geschwindigkeit eine Rolle... siehe z.B. das Video hier*, das sind nur 64 Stufen, aber da der Wechsel recht schnell geht, sieht das geschmeidig aus - bei ganz langsamen Übergängen wirken dann auch die üblichen 8 Bit abgestuft (im ganz unteren Bereich), daher haben ja teure Profi-Teile auch 12 oder sogar 16 Bit...


    Also 8 Bit oder mehr über nen D/A-Wandler und damit den LED-*Strom* gesteuert ist schon ne feine Sache, weil da kann nix flackern (TV-Tauglichkeit), ist bei vielen Highend-Teilen auch so - ansonsten (Du baust den Wandler anscheinend diskret auf -> viel Aufwand) doch mal mit PWM beschäftigen, ist dann wohl einfacher....


    *EDIT: HÄH? - da ist jetzt ein ganz anderes Video in meinem Thread drin ("Attack on the Dutch Queen") ?( - Haben die den Arsch offen bei Youtube...? - gleich mal gucken, das ist doch nicht bei meinen Videos dabei, oder hat das jemand gehackt...?!?

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Ich schließe mich KingSauce in dem Punkt an, dass es im Unteren Bereich selbst bei 8Bit holprig wird.
    Meine PWM kann 16Bit, ich hab sie mal auf 10Bit konfiguriert und meine LEDs im unteren Helligkeitsbereich hin- und hergedimmt. Und da muss ich sagen: 10 Bit sind da echt zu wenig! Kommt aber drauf an, was man will. Wenn man ein helles LED-System hat und die Farben dimmen will, aber gleichzeitig auch die Helligkeit dimmen will (also mit weniger Helligkeit langsam und flüssig duch verschiedene Farben durchdimmen will), sollte man mindestens 8-12 Bit verwenden, je nach dem was eben technisch machbar ist und wie weit man mit der Helligkeit runtergehen will. Mit 16 Bit gibts natürlich keine Probleme, aber das kann sich auch noch ändern... Ich baue mir demnächst einen HighPower-LED-Pixel, der 12W und 220lumen hat (im Prinzip aus einer LED, praktisch aus 1x rot, 2xG 1xB). Dann werde ich mit der Helligkeit ziemlich stark runtergehen wollen, und z.B. noch in die LED reinzuschauen o.Ä., und wenn ich dann noch dimmen will, werden wohl auch 16Bit eng ;) Aber das ist schon ziemlich weit hergeholt ;) Ich schreib mal n Bericht, wenn ich das mit den HP-LEDs mache, und sag dann, ob 48Bit RGB zu wenig sind :D
    Hinweis: Die Bitzahlen beziehen sich bei mir immer auf eine Farbe, d.h. 8Bit -> 24Bit Gesamtfarben, 16 Bit -> unglaubliche 48Bit
    Zum Vergleich: PC-Monitore haben 3x8Bit = 24Bit

  • Also 8bit PWM sollten eigentlich für ein stufenloses faden reichen. 16bit ist ziemlich übertrieben und 10bit irgendwie eine komische Zahl :D Wenn dann eher 12Bit, dann hat man ein Byte und ein Nibble pro Wert.
    Dass es im unteren Bereich "holprig" wird liegt nicht am PWM, sondern am menschlichen Auge. Der Helligkeitsunterschied ist bei PWM bei allen Stufen gleich, allerdings nimmt das menschliche Auge das nicht linear wahr, sondern eher logarithmisch, weswegen es am Anfang deutlich "holpriger" erscheint als im oberen Bereich. Um dem entgegenzusteuern gibt es aber einige Softwarelösungen im Netz die das ganze mit Hilfe einer Logarithmus-Tabelle ausgleichen. Einfach mal nach googlen, dann gehts auch mit 8bit subjektiv linear :)

  • danke für die antworten!
    Das hab ich mir schon gedacht, dass mir alle mit PWM kommen, obwohl ichs ja eigentlich nicht wollte ^^
    Für die reine D/A Lösung ist dann wohl erstmal ausprobieren angesagt. Die dafür nötigen Widerstände kosten ja eh nichts.


    Die von mir etwas gefürchtete PWM Steuerung könnte aber vielleicht doch ganz einfach über ein IC laufen, dass PWM Signale erzeugt und SPI kompatibel ist. SPI unterstützt mein Controller einwandfrei und damit hab ich auch schon gute Erfahrungen gemacht.
    Oder ich schließe hinter den D/A Wandler ein IC was aus dem analogen Signal ein PWM Signal macht. Das scheint mir allerdings etwas doppelt gemoppelt. Außerdem dürften damit leichter Fehler/Ungenauigkeiten auftreten, wenn die Widerstandswerte zu stark voneinander abweichen. Ich kaufe natürlich keine Präzisionswiderstände. Lieber ein paar mehr und dann selbst selektieren.


    Weiß zufällig jemand ICs für diese beiden PWM Lösungen? Suchen tu ich natürlich auch selbst, aber vielleicht hat ja so schon wer nen Namen im Kopf ;)


    gruss sauce


    +edit+
    ok solche ICs gibts genug.
    Das Problem ist nur, dass ich keine Ahnung hab wo ich die bestellen kann. Alle die ich bis jetzt gefunden hab, gibts weder bei reichelt, noch bei conrad ?( Oder gibts da nen Trick wie man die IC Bezeichnungen richtig eingibt :P


    #edit2#
    Hier das sind genau die die ich brauche denk ich: http://www.eetindia.co.in/ART_…9_1800001_NP_08d6de18.HTM
    Aber ich finde kein einziges von denen irgendwo zu kaufen...
    Hab da jetzt zwei im Auge:
    Für 8Bit: MAX6968
    Für 16 Bit MAX6969
    (http://www.spezial.com/magazin…&nav=ps&navunter=Produkte)


    Aber wo ich die bestellen kann: keine Ahnung :(

  • Also ich find die Atmega's von Atmel gut (z.B. AtMega8, hat 3 PWM-Ausgänge)
    Ein weiterer Name wäre Pic.
    Wobei du da ja noch Programmieradapter brauchen würdest, wäre also wohl beides nichts für dich...

    Genau ;)
    Microcontroller finde ich zwar schon seit längerem echt spannend, aber zurzeit ist mir das zuviel mich da reinzufuchsen.


    Ich Pappnase hab aber garnicht gesehen, dass es auf der Seite von "Spezial Electronic" auch einen Shop gibt :D
    +edit+
    Das was ich haben will kann man nur in SMD Ausführung in kleiner Stückzahl bestellen :( Und SMD löten kann ich nicht... Oder gibts irgendwelche SSOP zu DIP Adapter?

  • Ich schließe mich KingSauce in dem Punkt an, dass es im Unteren Bereich selbst bei 8Bit holprig wird.

    Hab' das nicht ich geschrieben... ?(


    Fightclub: Das stimmt schon mit der logarithmischen Empfindlichkeit, eben genau daher braucht man ja die hohe Auflösung! - eine reine Korrekturkurve nützt hier leider gar nix, natürlich wird der Verlauf dann insgesamt linearer, aber er bleibt stufig, bzw. ist im unteren Bereich durch Rundungsfehler *noch abgestufter* - daher musst Du z.B. die 8 Bit Eingangswerte in 12 Bit Ausgang "übersetzen".... siehe dazu auch diese Versuche hier


    10 Bit ist keine so blöde Zahl, die reicht nämlich gerade, um die 8 Bit Eingang stufenlos umzurechnen - und geht dann auch noch z.B. per SW-BCM, bei 12 Bit wird's da mit der Wiederholrate schon eng...


    Und, stimme LED-Wall zu, wenn Du sehr weit runterdimmen willst und das da auch noch stufenlos sein soll, dann muss die Auflösung natürlich umso höher sein - also 16 Bit ist da bestimmt nicht übertrieben...


    KingSauce: Das alles gilt genauso egal ob Du nun PWM benutzt oder über nen DA den Strom steuerst - also die Abstufung ist da die selbe...


    gerade bei 16 Bit empfehlen sich solche dedizierten PWM-ICS, weil da wirst Du nur mit nem AVR allein nicht mehr froh.... ;) - bei 8 Bit ist's Geschmacksache, bzw. hängt davon ab, was der µC sonst noch so alles machen muss....

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Alles klar, dann weiß ich jetzt Bescheid ;)
    Muss ich nurnoch irgendwo das IC herbekommen. Als Privatuser kann man ja wohl keine ICs direkt von Maxim beziehen und bei segor gibts das gewünschte Teil auch nicht :(
    Wie gesagt: Ich such den MAX6968

  • Den hab ich sogar noch hier :P Hab ich nie zum laufen bekommen...
    Der TLC5943 kann auch 16x16-Bit - um hohe Frameraten zu erreichen musst du allerdings noch ne zusätzliche Taktquelle nutzen.


    Man kann aber bei den meisten Herstellern Samples ordern.

  • Fightclub: Das stimmt schon mit der logarithmischen Empfindlichkeit, eben genau daher braucht man ja die hohe Auflösung! - eine reine Korrekturkurve nützt hier leider gar nix, natürlich wird der Verlauf dann insgesamt linearer, aber er bleibt stufig, bzw. ist im unteren Bereich durch Rundungsfehler *noch abgestufter* - daher musst Du z.B. die 8 Bit Eingangswerte in 12 Bit Ausgang "übersetzen".... siehe dazu auch diese Versuche hier

    Also eine injektive Abbildung aus dem 8bit-Wertebereich auf den 10-bit Wertebereich soll ein holpern vermeiden? :huh: Objektiv kann das ja garnicht sein, subjektiv hab ich das natürlich nicht getestet. Aber ich tippe jetzt einfach mal ins Blaue, dass die Log-Tabelle das im Unteren Bereich fast noch surjektiv oder bijektiv abbildet und dann nach oben hin injektiv wird. Oh gott ich glaub ich mach mir da zu viel Gedanken :D

    10 Bit ist keine so blöde Zahl, die reicht nämlich gerade, um die 8 Bit Eingang stufenlos umzurechnen

    Naja, für *umrechnen* haben 10 Bit eigentlich keinen Vorteil, da der AVR aus allen Rechenoperationen mit mehr als 8bit eh mehrere Operationen macht. ;)


    Ach Pesi, krieg ich nochmal ne Mail? :D

  • Hab' das nicht ich geschrieben...


    Tut mir leid, hab halt schnell Copy&Paste und weiter gehts... ;)


    Dann mal was an dich: ;)
    Was ist SW-BCM?

    Zitat

    gerade bei 16 Bit empfehlen sich solche dedizierten PWM-ICS, weil da wirst Du nur mit nem AVR allein nicht mehr froh...


    Oh doch, AVRs (AtMega's) machen durchaus glücklich. Mein jetztiger (640 bzw. 1280 bzw. 2560, Unterschied nur im Speicher) hat 5 Timer, 12 PWMs mit 16Bit und weitere 3 PWMs mit 8Bit. In Hardware (HW-PWM) nutze ich die gerade erfolgreich;
    Mein nächstes Projekt wird mit dem selben µC sein, aber ich werde 72 PWMs realisieren (In Software, und mit nur einem µC). Ist n recht komplexer Algorithmus, da ich sonst 450% Prozessorauslastung hätte -> geht nicht. Mit dem intelligenten Alg. hätte ich mit 8Bit und 100Hz nur noch 20% Auslastung, d.h. ich könnte mit der Auflösung etwas hochgehen. Das ist aber noch alles Theorie, vielleicht wird es mit so vielen Kanälen garnicht gehen...). Meine µC werden übrigens hardwareseitig über USB an den PC angeschlossen, dieser erkennt aber einen seriellen Anschluss. Ist echt toll und sehr bequem, Daten an den µC zu schicken. RS232 emuliert ein FTDI FT232...
    Wen die Soft-PWM auf AtMegas interessiert: http://www.mikrocontroller.net…genter_L.C3.B6sungsansatz
    ---
    Der TLC5943 scheint echt ein toller Baustein zu sein, werd ich mir merken ;)