Guten Abend,
ich habe hier ein Array aus WS2812, die ich im Dunkeln als Anzeige
benutzen möchte. Dafür sind diese LEDs aber selbst beim kleinsten
RGB-Wert noch zu hell, bzw hat man dann keine Abstufungen mehr.
PWM interferiert mit der internen PWM der LEDs und es flackert. Mit
Strombegrenzung (mit Transistoren, wie hier beschrieben:
https://www.mikrocontroller.net/articles/Konstantstromquelle) schaltet B
schon ab wenn R und G noch hell leuchten.
Gib es noch andere Möglichkeiten, diese Licht-Monster weiter zu dimmen?
Danke
@ Bittermelone (Gast)
>benutzen möchte. Dafür sind diese LEDs aber selbst beim kleinsten>RGB-Wert noch zu hell,
Beim Wert 1?
> bzw hat man dann keine Abstufungen mehr.>PWM interferiert mit der internen PWM der LEDs und es flackert.
Glaub ich nicht. Dann ist eher deine Ansteuerung oder Stromversorgung
schlecht.
> Mit>Strombegrenzung (mit Transistoren, wie hier beschrieben:>https://www.mikrocontroller.net/articles/Konstantstromquelle) schaltet B>schon ab wenn R und G noch hell leuchten.
Welche LEDs hast du denn GENAU, denn unter dem Namen sind verschiedene
LEds in Umlauf. Flackern tut da aber nichts.
>Gib es noch andere Möglichkeiten, diese Licht-Monster weiter zu dimmen?
Monster? Bist du photosensitiv?
Falk B. schrieb:> Beim Wert 1?
Ja. 1 geht gerade, aber ich hätte gerne noch ein paar dunklere Stufen.
>>PWM interferiert mit der internen PWM der LEDs und es flackert.>> Glaub ich nicht. Dann ist eher deine Ansteuerung oder Stromversorgung> schlecht.
Nein, das ist so. Ist auch logisch, weil die Dinger eine eigene PWM drin
haben die dann interferiert, wenn man die Ansteuerung auch wieder
moduliert. Konkret habe ich einen SPI-Puffer so mit Daten gefüllt, dass
die LEDs erst auf 1 geschaltet werden und nach kurzer Zeit auf 0. Das
wird per gelooptem DMA kontinuerlich an das Array geschickt. Wenn ich
statt 0 nochmal 1 schicke, flackerts nicht. Das Timing Stimmt auch, ich
kann präzise einzelne LEDs und Farben ansteuern.
> Welche LEDs hast du denn GENAU, denn unter dem Namen sind verschiedene> LEds in Umlauf. Flackern tut da aber nichts.WS2812B in einem NeoPixel Feather Wing.
>>Gib es noch andere Möglichkeiten, diese Licht-Monster weiter zu dimmen?>> Monster? Bist du photosensitiv?
Wenn ich mal aus versehen eine auf 255 setze, bin ich jedes Mal für ein
paar Sekunden blind. Die sind einfach so irre hell.
@Bittermelone (Gast)
>Ja. 1 geht gerade, aber ich hätte gerne noch ein paar dunklere Stufen.
Geht halt nicht.
>>>PWM interferiert mit der internen PWM der LEDs und es flackert.>>> Glaub ich nicht. Dann ist eher deine Ansteuerung oder Stromversorgung>> schlecht.>Nein, das ist so. Ist auch logisch, weil die Dinger eine eigene PWM drin>haben die dann interferiert, wenn man die Ansteuerung auch wieder>moduliert.
Stimmt.
> Konkret habe ich einen SPI-Puffer so mit Daten gefüllt, dass>die LEDs erst auf 1 geschaltet werden und nach kurzer Zeit auf 0. Das>wird per gelooptem DMA kontinuerlich an das Array geschickt.
Dafür sind sie halt nicht gedacht.
Falk das mag stimmen aber mit meinen WS2812 habe ich es gestern erst
probiert um eine Lipo Versorgung abzusichern. Sie werden dunkler aber
laufen brav weiter.
Klaus.
Ist schon etwas milder mit 3V. Aber so zum direkt drauf schauen in
dunkler Umgebung immer noch mehr als ausreichend.
Die Beleuchtung auf dem Foto ist heller als es scheint, man kann da noch
gut Zeitung lesen. Ich habe die Blende etwas zugemacht und trotzdem
überstrahlt die LED.
Gerade grün ist halt ÜBEL, weil homo sapiens dafür besonders empfindlich
ist. Rot ist dagegen kaum zu sehen. Was spricht jetzt gegen den Filter?
Die paar wenigen mAh musst du verschmerzen oder das Konzept komplett
ändern - you decide!
Klaus.
Dann werd ich wohl das Konzept komplett ändern, sodass ich nach belieben
runterdimmen kann. Ist halt so schön bequem mit adressierbaren LEDs,
alles andere ist doch deutlich aufwändiger.
Falk B. schrieb:> @Klaus R. (klaus2)>>>Die laufen auch mit ~3.3V und sind dann dtl dunkler...>> Nö, denn der Treiber-IC hat Konstantstromausgänge.
Doch, dat funst!
Kann aber grad nur auf 3V runter, dann resettet der µC. Sollte aber bis
ca. 2,8V runter gehen. Dann aber bitte keinen 5V in DI jagen....
Klaus R. schrieb:> Falk das mag stimmen aber mit meinen WS2812 habe ich es gestern erst> probiert
Vor ~3s...
Harald A. schrieb:> APA102 hat noch zusätzlich Global dimming, hat aber ein paar Nachteile:
Interessant, allerdings zu teuer.
Eine Möglichkeit wäre vielleicht noch, in jedem PWM-Zyklus die LEDs kurz
ganz auszuschalten, um die interne PWM zu synchronisieren. Der
entsprechende Transistor müsste natürlich hinter die (4 uF)
Abblockkondensatoren, was etwas fummelig wird auf dieser Platine.
@Teo D. (teoderix)
>> Nö, denn der Treiber-IC hat Konstantstromausgänge.>Doch, dat funst!
Es "funst" viel, aber meist nur durch parasitäre Effekte. Z.B. weil die
Flußspannung der LEDs angeknabbert wird. Nicht aber weil ein
Vorwiderstand weniger Spannung sieht, denn den haben die WS2812LEDs
nicht.
Es funst. Nichts anderes habe ich behauptet. Egal was im DB über KSQ
steht.
19.2khz pwm und spi der apa sind "eigentlich" ja dtl uC freundlicher und
an sich besser...interessant.
Klaus.
Bittermelone schrieb:> Interessant, allerdings zu teuer.
APA102 kostet so ca. 15 Cent, was bezahlst du für die WS2812?
Es gibt einen schönen Nebeneffekt bei der APA102. Wenn man die originale
LED mit dem modifizierten Package (Thermal Pad unter dem Package) beim
Hersteller in Taiwan kauft (neon-world.com, auch kleinere Mengen sind
ok), ist man damit sicher vor irgendwelchen Fakes von minderer Qualität,
vertauschten Farben usw. Das modifizierte Package baut nämlich keiner
nach, die Clones haben allesamt PLCC6, meist in diesem ominösen
„Weichplastik“ wie die WS2812.
Relativ neu ist die APA102-2020, alles identisch nur kleiner (2x2mm)
...würd ich mir ja gerne mal als "Teststreifen" kaufen, aber WS2812
gibts 8fach für nen Euro bei ebay - bei APA102 ist man davon weit
entfernt :)
Klaus.
Und dann ist es auch noch so, dass die Stripes eigentlich immer mit
APA102-lookalikes (SK9822 z.B.) bestückt sind. Die Variante mit thermal
Pad habe ich auf Stripes noch nicht gesehen.
Ach so, 15 cent sind schon OK. Hatte nur Suchergebnisse überflogen, aber
das waren Preise für 10er Packungen... Dann schau ich mir die APA102 mal
näher an.
Die eingebaute Elektronik ist allerdings auch ein Faktor beim
Energieverbrauch, die 32 Stück WS2812 verbrauchen zusammen schon gut 20
mA wenn sie aus sind. Bei der APA102 steht dazu leider nichts im
Datenblatt, aber der "Dunkelstrom" wird wohl auch im mA Bereich liegen.
Muss ich bei einer konventionellen Matrix mit ein paar 74HC595 und
Transistoren auch mit solchen Verlusten rechnen?
Natürlich "rechnet" da was bei einem RGB Wert von 0. Der Oszillator muss
ja weiter laufen um Daten empfangen zu können und die PWM läuft
vermutlich auch, halt mit einer Pulsweite von 0. Steht auch im
Datenblatt: Static power
consumption / IDD: 1mA.
Ok, habe gerade mal die Rechnung von neon-world rausgesucht, da lagen
die bei 1000 Stück bei 19 Dollar-Cent. Also 15 Cent aus der Erinnerung
waren nicht ganz richtig.
Die kompatiblen SK9822 bei Ali kosten allerdings nur 101USD/1000 Stück
oder 13USD/100Stück. Probleme hatte ich damit auch noch nicht,
allerdings vertraue ich lieber dem Original.
https://de.aliexpress.com/item/10-1000pcs-APA102-LEDs-Chips-IC-SMD-5050-RGB-For-Strip-Screen-DC5V-with-DATA-and/32323146870.html
Sonst bei neon-world fragen (die E-Mail unten auf der Seite) und fragen,
ob die auch günstigen Postweg machen würden.
Ich kann echt sagen, dass man das SPI-Interface sehr schnell schätzen
lernt und dann auch nie wieder zur 2812 zurück will.
Bittermelone schrieb:> Ist auch logisch, weil die Dinger eine eigene PWM drin> haben die dann interferiert, wenn man die Ansteuerung auch wieder> moduliert.
Das würd ich nochmal prüfen, kannst ja einfach mal die PWM ändern. So
logisch ist das nicht, dazu müssten die Frequenzen schon zueinander
passen.
> Konkret habe ich einen SPI-Puffer so mit Daten gefüllt, dass> die LEDs erst auf 1 geschaltet werden und nach kurzer Zeit auf 0. Das> wird per gelooptem DMA kontinuerlich an das Array geschickt.
Da würde ich eher vermuten, dass der Ausgabetakt schwankt oder
unterbrochen wird, oder dass Signale mitunter nicht empfangen werden,
und dadurch Helligkeitsschwankungen auftreten.
> Wenn ich> statt 0 nochmal 1 schicke, flackerts nicht. Das Timing Stimmt auch, ich> kann präzise einzelne LEDs und Farben ansteuern.
Das sagt nichts, da können dennoch Jitter oder Aussetzer in der
Ansteuerung sein, die würdest Du in dem Fall nicht sehen.
Das ist keine soft-PWM, sondern nur ein SPI-DMA auf loop gesetzt,
ansonsten passiert da nichts, die main Schleife ist leer. Kein Callback,
keine anderen DMAs, wüsste nicht, wo da Jitter oder Unterbrechungen
herkommen sollten. Aber möglich ist es natürlich, dass da noch irgendwas
dazwischen funkt, zumal es Arduino ist.
Die PWM Frequenz ergibt sich aus der länge des DMA-Puffers und ich habe
verschiedene ausprobiert. Die interne PWM ist auch nicht soo schnell,
man kann sie bei schnellen Bewegungen sehen. Da ist es nur logisch, dass
es interferiert. Vielleicht dauert die Datenverarbeitung in der LED auch
einfach eine gewisse Zeit.
Angesichts des Stromverbrauchs der internen Elektronik ist es aber auch
egal. Es lohnt nicht, noch ein paar uA durch Dimmen einzusparen, wenn
jede einzelne LED schon im Leerlauf ein mA verbrät. Da ist kurzfristig
eine getönte Scheibe in der Tat die beste Lösung, mittelfristig der
Umstieg auf die klassische Matrix-Schaltung.