WS2812 zu hell / kleiner als 1 dimmen

Gast #5622162
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?
Gast
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.
Gast
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.
Angehängte Dateien:
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.
Gast
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...
Gast
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 WS2812 LEDs 
nicht.
Gast
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)
Gast
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?
Gast
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.
Gast
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.
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.