WS2812 Multiplexen

Hallo Leute,

Ich bin gerade an einem Projekt mit dem ich schonmal das Forum geplagt habe, das Tetris Projekt.

Ich habe nun folgendes Problem ich sollte die WS2812 LED´s fast Multiplexen da der Strom fast ein bisschen hoch ist bei 200 LED´s.

Ich baue mir eine Matrix von 10x20 Pixel und da eine LED maximal(bei der Farbe Weis) ca.60mA an Strom braucht und somit der maximale Gesamtstrom bei ca. 12A liegen würde ist das doch ein bisschen zu hoch finde ich. Da ich ja eine Anzeige und keine Heizung bauen möchte :D .

Ich habe mich gefragt ob ich die Versorgungsspannung kurz wegnehmen könnte aber das geht nur bei den WS2812 LEDs da diese 2 Verschiedene Anschlüsse für die Versorgungsspannung haben, eine für die Datenspeicherung und die andere für die Versorgungspannung der LED.

Ich habe allerding die WS2812B die haben nur noch einen Vcc Anschluss für beide. Wenn ich nun die Anzeige immer nur nach einer gewissen Durchlaufzeit eine Reihe anzeige und so durchwechsel funktioniert es relativ gut. Nur an machen Programmstellen zeigt es mir spinnt die Anzeige.

Die nächste Idee von mir wäre das Ganze über einen Interrupt laufen zu lassen damit die ganze Zeit die Anzeige aktuellisiert wird. Allerdings habe ich das Bedenken das dann der Spiel Fluss des Tetris nicht optimal wäre gerade wenn man ca. alle 100ms 200 LEDs Aktualisiert.

Darum die Frage an Euch, Habt Ihr eine bessere Idee wie ich?

Vielen Dank im Vorraus, bdorer

Warum machst du die WS- Dinger nicht einfach dunkler, wenn sie dunkler werden sollen.... Denn die 12A braucht es doch nur, wenn sie "ganz hell" leuchten, oder?

Bei einer digital steuerbaren LED die Versorgung weg schalten wollen? Ich verstehe es nicht.

Von mir aus auch "aus", aber doch nicht die Versorgung multiplexen...

combie: Warum machst du die WS- Dinger nicht einfach dunkler, wenn sie dunkler werden sollen.... Denn die 12A braucht es doch nur, wenn sie "ganz hell" leuchten, oder?

Bei einer digital steuerbaren LED die Versorgung weg schalten wollen? Ich verstehe es nicht.

Von mir aus auch "aus", aber doch nicht die Versorgung multiplexen...

Ich brauche die LEDs so hell wie möglich da ein Pixel nacher von einer LED belecuhtet wird und dieser Pixel nachher 5cmx5cm groß ist. Und auf diesen Pixel kommt eine Matteplexiglasscheibe.

Wenn ich die LEDs nacheinander ein bzw. ausschalte ist das Licht zu schwach.

Okey hat sich erledigt hab es hin bekommen :D

Vielen Dank trotzdem

Nett daß du uns so ausführlich mitgeteilt hast, was du jetzt tatsächlich gemacht hast. :slightly_frowning_face:

sry :D

Ich habe es mit einem Interrupt erneut versucht diesen aber deutlich schneller eingestellt, hätte nicht gedacht das das Programm trotzdem weiterhin so flüssig läuft wie bisher :D

Ich habe den Interrupt nun mit der TimerOne Bibliotheke durchgeführt, und lasse ihn alle 10 Millisekunden wiederholen.

Bei mir haben Interrupts keinen Einfluss auf das Leuchten meiner WS2812b.

Du kannst WS2812 nicht so einfach multiplexen. Die haben ihre eigene PWM Frequenz und ein unsynchronisiertes Umschalten bringt komische ungewollte Effekte. Wenn Du die WS2812 nur einen Teil der Zeit leuchten läßt und dann für eine bestimmte Zeit abschaltest. Dann hast Du die LED dunkler. Wenn Du die WS2812 hell haben mußt dann mußt Du sie voll ansteuern. Da geht kein Weg drum herum. Du brauchst ein Netzteil für den vollen Strom.

Grüße Uwe

Ich bin auch völlig verblüfft!

Mich würde wirklich mal interessieren, wie es möglich ist die mittlere Stromaufnahme zu verringern, ohne gleichzeitig die Leuchtkraft mit abzusenken.

OK, vielleicht Magie? Aber wir leben doch in einem Universum mit Energieerhaltungssatz. Und nicht in einem "Wünsch dir was."

Oder habe ich da was verpasst?

Du hast bei der FASTLED Lib sogar ein schöne möglichkeit den maximalen Strom mit einer gewissen Toleranz einzustellen. Du sagt z.B. max 4500mA und die Lib berechnet selber die maximal Werte. Multiplexen geht ohne Spanung wegnehmen über das Programm indem du die Bereiche LED Adressen die dunkel sein sollten mit 0 beschreibst. Um genug Power reserven zu haben wäre wohl ein Teensy brauchbar.
Gruß
DerDani

hi,

wir wissen alle, daß der TO mit dem multiplexing in die falsche richtung denkt.

tun wir das nicht auch? wir gehen ja immer vom durchschnitt aus...

aber wenn wir alle LEDs auf (1, 1, 1) stellen, brauchen die dann nicht 1/256stel des PWM-zyklusses die volle leistung und dann 255/256stel keine leistung?

was bedeutet das für ein unterdimensioniertes netzteil? schluckt es diese spitzen?

gruß stefan

was bedeutet das für ein unterdimensioniertes netzteil?

Was was bedeutet, ist doch egal. Man muss doch sowieso ein Netzteil dran bauen, was zur Not die gesamte Leistung liefern kann. Denn sonst: Ein Programmfehler, und es glüht aus.

aber wenn wir alle LEDs auf (1, 1, 1) stellen, brauchen die dann nicht 1/256stel des PWM-zyklusses die volle leistung und dann 255/256stel keine leistung?

Wären die Dinger alle synchron, dann ja. Aber nee, jedes Ding hat seinen eigenen Taktgenerator. Es wird sich also ein Mittelwert einstellen. Und die ganz spitzen Spitzen werden vom Elko im Netzteil gefüttert.

hi,

Was was bedeutet, ist doch egal. Man muss doch sowieso ein Netzteil dran bauen, was zur Not die gesamte Leistung liefern kann. Denn sonst: Ein Programmfehler, und es glüht aus.

das ist absolut meine meinung. da sollte es keine diskussion geben.

es gibt aber eine, und zwar auch von den leuten hier aus dem forum. deswegen mein einwand.

mittlere stromaufnahme, dafür sorgen, daß nicht alle voll leuchten. nur 50% helligkeit, usw. haben diese einschränkungen denn überhaupt eine wirkung? die ein wenig unterschiedlichen taktfrequenzen machen sich doch erst nach einigen PWM-takten bemerkbar.

laufen tips wie: "Du darfst halt nicht voll aufdrehen" nicht voll ins leere?

kann ein oszi auch stromstäken messen? wäre interessant, wie da die spitzen aussehen.

gruß stefan

die ein wenig unterschiedlichen taktfrequenzen machen sich doch erst nach einigen PWM-takten bemerkbar.

Ja, aber bis dahin hatte ja noch keiner Zeit, da Daten hin zu schicken. Und wenn die ersten Daten kommen, ist es schon lange asynchron.

Irgendeine Synchronisation findet auch im weiteren Verlauf nicht statt. Denn: Da hat es kein Kabel für.

kann ein oszi auch stromstäken messen?

Nur indirekt. Einen niederohmigen Shunt in die Versorgungsleitung, und den Spannungsabfall anzeigen lassen.

haben diese einschränkungen denn überhaupt eine wirkung?

Ja. Aber eben beim Missgeschick, dann nicht.

hi,

Irgendeine Synchronisation findet auch im weiteren Verlauf nicht statt.

die synchronisation ist das reset-signal, und die dinger sind so synchron, wie die lichtgeschwindigkeit für ein paar meter braucht.

gruß stefan

Seit einigen Monaten betreibe ich in meiner Bar 300 Lichtpunkte (APA102) an einem 4 A Netzteil mit der Strombegrenzung von FastLED. Es würde mich schon interessieren, ob ich bislang Glück hatte, das Netzteil fehlertolerant ist oder das so OK ist.

Bitte miß mal, würde mich schon interessieren.

die synchronisation ist das reset-signal,

OK... Aber, woher weißt du das?

Haste mal ein Oszibild, oder anderes, was das bestätigt?

300 Lichtpunkte (APA102)

Das ist halt was anderes, als die WS2812. Habe auch nur die APAs da um evtl mal einen Testaufbau zu machen. Mache ich gerne mal, aber nur nicht heute, sondern erst wenn ich den vorhandenen Aufbau wieder zerlegen muss. Habe aber irgendwann mal gemessen, da waren keine Aufschaukler zu erkennen. Viel Gezappel, aber keine extremen Spitzen.

Muss aber gestehen, dass ich dabei diesem hier besprochenem Punkt wenig Aufmerksamkeit geschenkt habe. Da ich bisher nicht nicht auf die Idee kommen bin ein Netzteil unterzudimensionieren.

hi,

ich will ja nicht behaupten, daß es so ist, aber wenn nicht, würde ich halt gerne wissen, wieso.

Quote

die synchronisation ist das reset-signal,

OK... Aber, woher weißt du das?

naja, so ist eben das protokoll. erst werden die werte rausgeschoben, dann kommt das reset,signal (>50µSek), damit wird scharf geschalten. und das müßte dann doch die spitzen erzeugen, bis sie eben auseinanderlaufen.

gruß stefan

naja, so ist eben das protokoll. erst werden die werte rausgeschoben, dann kommt das reset,signal (>50µSek), damit wird scharf geschalten. und das müßte dann doch die spitzen erzeugen, bis sie eben auseinanderlaufen.

Naja... Ich sehe noch nicht, dass auch die/der Interne Timer dieser Bausteine dabei einen Kaltstart durchlaufen. Aus meiner Sicht ist es viel wahrscheinlicher, dass da einfach der neue Grenzwert vom Schieberegister in das Vergleichsregister transportiert wird. Leider habe ich zu dem Vorgang bisher keine Doku/Datenblatt gefunden.

Beispiel: (vielleicht es hinkt, ich weiß es nicht) Der Arduino interne Timer wird ja auch nicht zurückgesetzt, nur weil du ein analogWrite() macht. Der Beweis: Dann hätten wir bei vielen analogWrite() Aufrufen einen millis() Wert mit Verzug.

Nachtrag: Hier: APA Da steht, dass sich der Takt von LED zu LED zieht. Damit kommt auch dein Reset nicht gleichzeitig bei allen an. Ich bin mir sicher, dass sich das Signal auch bei den WS2812 verschleppt. Sollte man mal messen....

Es ist also so, dass der Reset da von LED zu LED, einer nach der anderen, da durch wandert.

Moin Leute,

also ich habe die LEDs sozusagen multigeplext, das heißt ich lösche alle 10ms die Daten aus den LEDs und beschriebe dann die nächsten 5 LEDs, und so geht das immer weiter bis ich alle LEDs durch habe und dann beginnt es von vorne.

combie: Ich bin auch völlig verblüfft!

Mich würde wirklich mal interessieren, wie es möglich ist die mittlere Stromaufnahme zu verringern, ohne gleichzeitig die Leuchtkraft mit abzusenken.

OK, vielleicht Magie? Aber wir leben doch in einem Universum mit Energieerhaltungssatz. Und nicht in einem "Wünsch dir was."

Oder habe ich da was verpasst?

Nein du hast nix verpasst, aber es ist nicht viel dunkler geworden als zuvor, so das es akzeptabel hell ist.

volvodani: Du hast bei der FASTLED Lib sogar ein schöne möglichkeit den maximalen Strom mit einer gewissen Toleranz einzustellen. Du sagt z.B. max 4500mA und die Lib berechnet selber die maximal Werte. Multiplexen geht ohne Spanung wegnehmen über das Programm indem du die Bereiche LED Adressen die dunkel sein sollten mit 0 beschreibst. Um genug Power reserven zu haben wäre wohl ein Teensy brauchbar. Gruß DerDani

Das habe ich auch nicht gemacht, da ich die NeoPixel, NeoMatrix und GFX Biblithek benutze.

Viele Grüße, bdorer