Forum: Mikrocontroller und Digitale Elektronik WS2812b LED Matrix maximale Länge der Datenleitung


von Uli K. (uksuperstar)


Lesenswert?

Moin allerseits,
ich habe vor, mit WS2812b LED Streifen eine Matrix zu bauen. Dabei soll 
die Auflösung nicht besonders hoch sein, wahrscheinlich 7x9, dafür soll 
die Matrix insgesamt sehr groß werden. Ein Pixel soll wenn möglich 50x50 
cm groß sein, also brauche ich wohl mindestens 4 Leds pro Pixel, oder?

Nun zu meiner eigentlichen Frage: Durch die Größe der Matrix insgesamt 
ergibt sich natürlich auch ein großer Abstand zwischen den einzelnen 
Leds. So würde allein die Datenleitung über 40m lang werden. Gibt es bei 
so einer langen Datenleitung Probleme mit dem Timing und Verlusten in 
der Leitung? Und wenn ja, gibt es auch eine einfache Lösung? ;)

Ich möchte die Leds mit einem Arduino ansteuern, es sollen keine 
anspruchsvollen Animationen auf dem Ding laufen, es reicht, wenn sich 
die Anzeige auf der Matrix jede halbe Sekunde ändert.

Gruß,
Uli

von c-hater (Gast)


Lesenswert?

Uli K. schrieb:

> Nun zu meiner eigentlichen Frage: Durch die Größe der Matrix insgesamt
> ergibt sich natürlich auch ein großer Abstand zwischen den einzelnen
> Leds. So würde allein die Datenleitung über 40m lang werden.

Nein.

Wenn du Depp auch nur die Grundlagen der WS28xx begriffen hättest, 
wüsstest du, das es "die" Datenleitung da überhaupt nicht gibt, sondern 
vielmehr viele davon. Nämlich so viele, wie LEDs angesteuert werden, 
weil diese in einer Daisy-Chain geschaltet sind und jede einzelnen LED 
das Signal für die nächste LED sozusagen "auffrischt".

> Ich möchte die Leds mit einem Arduino ansteuern

Arduino-Anwender... Alles klar... Hoffnungsloses Nixwissen, ja schlimmer 
noch: NixWissenWollen...

von Joachim B. (jar)


Lesenswert?

c-hater schrieb:
> Arduino-Anwender... Alles klar... Hoffnungsloses Nixwissen, ja schlimmer
> noch: NixWissenWollen...

hey schalte einen Gang runter, ich bin vom Atmel Studio auch zum Arduino 
gewechselt.

Der Arduino ist nur eine fertige Platine

von Andreas H. (ahz)


Lesenswert?

c-hater schrieb:
> Wenn du Depp

Muss so was sein ?

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Uli K. schrieb:
> Nun zu meiner eigentlichen Frage: Durch die Größe der Matrix insgesamt
> ergibt sich natürlich auch ein großer Abstand zwischen den einzelnen
> Leds. So würde allein die Datenleitung über 40m lang werden. Gibt es bei
> so einer langen Datenleitung Probleme mit dem Timing und Verlusten in
> der Leitung? Und wenn ja, gibt es auch eine einfache Lösung? ;)

 Zwischen einzelnen LEDs bis zu 30cm ohne irgendwelche Probleme.

 Arduino => LED_No1 nach Möglichkeit nicht mehr als 70cm. Wenn es
 trotzdem länger sein muss, 120 Ohm in die Data Leitung schalten.

von Uli K. (uksuperstar)


Lesenswert?

Danke für die schnellen Antworten!

c-hater schrieb:
> Wenn du Depp auch nur die Grundlagen der WS28xx begriffen hättest,
> wüsstest du, das es "die" Datenleitung da überhaupt nicht gibt, sondern
> vielmehr viele davon. Nämlich so viele, wie LEDs angesteuert werden,
> weil diese in einer Daisy-Chain geschaltet sind

Das Grundprinzip des WS2812b habe ich sehr wohl verstanden. Jede LED in 
der Kette sammelt seine 3 Byte ein und leitet dann die Daten an die 
nächste LED weiter. Daher gibt es für meine Begriffe auch nur eine 
Datenleitung. Ist das nicht gerade das besondere an einer Daisy-Chain?!

von Steven M. (8023)


Lesenswert?

Uli K. schrieb:
> Daher gibt es für meine Begriffe auch nur eine
> Datenleitung. Ist das nicht gerade das besondere an einer Daisy-Chain?!

logisch ja, elektrisch eigentlich nicht ^^

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Uli K. schrieb:
> Gibt es bei so einer langen Datenleitung Probleme mit dem Timing und
> Verlusten in der Leitung?

Du hast Dir die Frage gerade selbst beantwortet:
Nein, denn das ist ja gerade das besondere an einer Daisy-Chain.

… natürlich im Rahmen den Marc Vesely grob umrissen hat.

Jede LED frischt das Timing wieder neu auf!

Viele weitere interessante Details unter:
https://cpldcpu.wordpress.com/tag/ws2812/

Die Probleme liegen woanders:

* Die Stromversorgung über lange dünne Leitungen:
  => Du hast eine Matrix, damit kann man das Problem leicht lösen, OK.

* Zu viele LEDs hintereinander:
  => RAM zu klein oder CPU zu lange blockiert:
  => Bei Dir scheinen es nur wenige LEDs zu sein, OK.

Uli K. schrieb:
> … also brauche ich wohl mindestens 4 Leds pro Pixel, oder?

1 oder 4 oder 9 oder ... (also n²)

Das hängt davon ab,
* Wie hell der Pixel leuchten soll,
* wie gleichmäßig das Licht verteilt sein soll und
* wie der Diffusor aussieht und welchen Abstand die LED hat.

Wird es ein Tisch mit Glasfläche?

Wie erzeugst Du Das Datensignal?
PWM-Timer, SPI, UART, delay, …?

: Bearbeitet durch User
von Peter (Gast)


Lesenswert?

Über die Datenleitungs-Länge musst du dir keine Sorgen machen. 
Beschalten wie im Datenblatt und gut ists. Dein Problem wird eher die 
Stromversorgung sein. Wie bekommst du viel Strom (= viel 
Spannungsabfall) an die LEDs ran? Die sind ein bisschen empfindlich was 
die Eingangsspannung betrifft. Das muss gut entkoppelt sein und dein 
Netzteil muss ein gutes Regelverhalten aufweisen (alle LEDs aus -> alle 
weiß an). So manches Netzteil kommt dann mit einem Überschwinger der dir 
die LEDs haufenweise killt. Du wirst nämlich  die Eingagnsspannung so 
hoch wie möglich wählen, damit du möglichst viele LEDs über die Platine 
verteilt versorgen kannst. Die in der Nähe des Netzteils bekommen 5V, 
die weiter weg immer weniger. Sonst musst du häufiger einspeisen. Wie 
bekommst du die Wärmeleistung von den LEDs weg? Denk dran - der 
Wirkungsgrad ist schrecklich - eine reine LED hat vll. 15% Wirkungsgrad, 
der Rest kommt als Wärme. Und noch dazu muss die Spannung von 5V auf 
2,2V (rot), 3,4 (grün) und 3,4V (blau) runter. Das macht die WS2812 mit 
Linearreglern. Die Spannungsdifferenz (2,8V, 1,6V, 1,6V) wird also auch 
gnadenlos in Wärme umgesetzt. Denk darüber nach - die WS2811b sind nicht 
gerade bekannt dafür, dass sie gerne warm werden.

Soll nicht heißen, dass es unmöglich wird aber denk darüber nach. Gerade 
wenn du dein System später skalieren willst. Und rechne die 
Wiederholrate mal durch - weniger als 25 fps in der Gesamtheit solltest 
du wohl nicht wählen, sonst wird es unanagenehm bei Animationen.

von Uli K. (uksuperstar)


Lesenswert?

Vielen Dank für die ausführlichen und hilfreichen Antworten.

Verstehe ich es jetzt richtig, dass die erste LED die gesamten Daten 
bekommt, dann 3 Byte "abschneidet" und den neuen Datenstrom neu sendet 
und dadurch auffrischt?
Dann könnte ich ja auch, wenn ich z.B. 4 LEDs pro Pixel verwende, je ein 
DataOut auf 4 DataIn geben, und dann pro Pixel 3 DataOut offen lassen, 
oder? So könnte ich Rechenauffand sparen und müsste bei einer 8x8 Matrix 
auch nur 64 LEDs einzeln ansteuern.

Das ganze soll spöter als Effekt auf einer Bühne stehen, daher auch die 
großen Maße. 4 LEDs pro Pixel sind dann wahrscheinlich ziemlich 
optimistisch. Ich muss denke ich einfach ausprobieren wie ich die 
Abstände etc. wähle (das Projekt ist auch noch in einer frühen 
Planungsphase).

Das Datensignal hat mir in meinen ersten Experimenten die NeoPixel 
Library bereitgestellt ;)

Die hohen Ströme sind natürlich auch ein Problem, mal sehen wie viele 
LEDs es dann werden... Mit einem geeigneten PC Netzteil kommt man 
vielleicht weiter.

Ist das Wärmeproblem tatsächlich so groß? Bisher ist mir bei meinen 
Internet Recherchen dazu wenig aufgefallen. Bei mir wäre die 
"LED-Dichte" ja auch deutlich geringer als bei den meisten WS2812b 
Matrix Projekten.
Aber danke für den Hinweis, ich werde mir die WS2811b auch nochmal genau 
anschauen.

: Bearbeitet durch User
von Markus M. (adrock)


Lesenswert?

Also wenn ein Pixel wirklich 50x50 cm(!) groß sein soll, wirst Du wohl 
mehr als 4 LEDs pro Pixel benötigen.

Mehr als 5x5 cm pro LED halte ich für nicht machbar wenn es noch 
eingermaßen hell sein soll. Oder meintest Du 50x50 mm?!

Bei 50x50 cm Pixel würdest Du somit alleine für einen Pixel 100 (!) LEDs 
benötigen. Die WS2812(b) sind für dieses Vorhaben dann eher ungeeignet.

von Uli K. (uksuperstar)


Lesenswert?

Nein, 50x50 CM war schon richtig ^^
Du hast Recht, wahrscheinlich wird sich herausstellen, dass das viel zu 
groß ist und dann wirds wohl eher 30x30...

Aber 100 LEDs für einen Pixel bräuchte man denke ich nicht. Es muss 
insgesamt nicht so ein intensives Licht wie bei einer kleineren Matrix 
sein

von Markus M. (adrock)


Lesenswert?

Naja, wenn wir mal bei 7x9 = 63 Pixeln bleiben, dann könntest Du mit 9 
LEDs pro Pixel kalkulieren, das wären dann 567 LEDs.

Das Hauptproblem wird die Stromversorgung werden.

Max. Strom sind ca. 60mA pro LED (weiß, max. Helligkeit). Bei der 
gegebenen Anzahl an LEDs wärst Du dann ca. bei 34A.

Du wirst das Ganz aufgrund der Größe ja sowieso modular aufbauen müssen.

Du könntest z.B. 7x 5A Netzteile nehmen, dann hätetst Du ein Netzteil 
pro Reihe. Oder Du machst es mit entsprechend ausgelegten Buchsen, dann 
kannst Du später sehen wie Du das auf eine gegebene Anzahl von 
Netzteilen verteilst.

Vlt. macht es sogar Sinn, pro Reihe einen eigenen Controller zu nehmen 
und diese dann mit einem anderen Protokoll bzw. Bussystem von einem 
zentralen Controller aus anzusteuern. Die Kosten für den Controller sind 
im Vergleich zum übrigen Material eher gering. Oder auch dafür überlegst 
Du Dir ein Stecksystem, die Verbindungen zwischen den Pixeln sollten 
dann aber nicht zu lang sein, evtl. abgeschirmtes Kabel, z.B. 
Mikrofonkabel o.ä.

Ich würde empfehlen erst einmal einen "proof of concept" zu machen. Hole 
Dir das Material für einen Pixel, experimentiere mit dem Abstand der 
LEDs zur (ich nehme an milchigen) Frontscheibe und mit der Anzahl der 
LEDs. Dann siehst Du ob es so überhaupt machbar ist.

: Bearbeitet durch User
von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Torsten C. schrieb:
> * Die Stromversorgung über lange dünne Leitungen:
>   => Du hast eine Matrix, damit kann man das Problem leicht lösen, OK.

 Ja.
 Trotzdem sollte man aufpassen - bei möglichen 60mA pro LED können 30
 LEDs fast 2A ziehen wenn alle 3 Farben an sind.
 Du hast mit nicht weniger als 250 LEDs zu rechnen - es können bis zu
 15A werden - also, immer schön einspeisen, am besten alle 30 LEDs.

Uli K. schrieb:
> Dann könnte ich ja auch, wenn ich z.B. 4 LEDs pro Pixel verwende, je ein
> DataOut auf 4 DataIn geben, und dann pro Pixel 3 DataOut offen lassen,
> oder? So könnte ich Rechenauffand sparen und müsste bei einer 8x8 Matrix
> auch nur 64 LEDs einzeln ansteuern.

 Im Prinzip ist das eine gute Idee und ja, so kann es gehen.


> Nein, 50x50 CM war schon richtig ^^
> Du hast Recht, wahrscheinlich wird sich herausstellen, dass das viel zu
> groß ist und dann wirds wohl eher 30x30...

> Aber 100 LEDs für einen Pixel bräuchte man denke ich nicht. Es muss
> insgesamt nicht so ein intensives Licht wie bei einer kleineren Matrix
> sein

 Intensität ist nicht dein Problem, es ist vielmehr die gleichmässige
 Lichtverteilung. Du kannst die LEDs nicht im 10cm Abstand montieren
 und erwarten, dass das völlig gleichmässig ausgeleuchtet wird.

 Oder du nimmst eine LED-Stripe mit 3 LEDs pro IC und 30LEDs/Meter,
 Pixelgrösse auf 20x20 reduzieren und kommst dann auf 36 LEDs/Pixel.

 Vorteil:
 Preis pro Pixel etwa 3-4Euro.
 Ansteuern natürlich in Gruppen a 12, braucht nur 192Byt RAM.
 Jeder Pixel kann bei Bedarf als 2x2 angesteuert werden, ergibt
 16x16 Matrix.

 Nachteil:
 12 LEDs anzusteuern pro Pixel, bei 8x8 Matrix sind das 768 LEDs die
 du ansteuern muss.
 23,5ms pro Frame bei optimaler Ansteuerung.

 Oder du nimmst LPD oder APA LEDs, diese kann mann mit SPI ansteuern,
 sind viel schneller.

: Bearbeitet durch User
von X.O. (Gast)


Lesenswert?

Da die Leds eh in Clustern angeordnet sind und du eine DaisyChain 
Verschaltung realisieren willst bietet sich die Verwendung vom WS2811 an

mal schnell rausgesucht

Wholesale WS2811 DC 24V D84 Diameter:84mm 1.8W,12 LEDs 1 Pixel 5050 
SMD,Led Board Pixels Point Node Light Modules,Addressable
 http://s.aliexpress.com/jMv63Qny
(from AliExpress Android)

von Michael U. (amiga)


Lesenswert?

Hallo,

Uli K. schrieb:
> Dann könnte ich ja auch, wenn ich z.B. 4 LEDs pro Pixel verwende, je ein
> DataOut auf 4 DataIn geben, und dann pro Pixel 3 DataOut offen lassen,
> oder? So könnte ich Rechenauffand sparen und müsste bei einer 8x8 Matrix
> auch nur 64 LEDs einzeln ansteuern.

theoretisch könnte der Trick funktionieren.
Theoretisch, weil die WS2812 ja eigenlich mit ihrem Ausgang nur eine LED 
ansteuern können müssen. Hier müßte die erste LED aber 3 andere und die 
Leitung zur nächsten treiben. Dürfte zumindest außerhalb der 
Spezifikation liegen und könnte unzuverlässig werden. Treiber dazwische 
ist auch Aufwand.
Wenn es wirklich mehr LEDs pro "Pixel" werden: ein Arduino ProMini aus 
China kostet nicht wirklich. Jeder Pixel ein Mini dran und per UART 
versorgt.
Rückmeldungen brauchst Du keine, also 4 Byte hinschicken mit LED-Nummer 
und en 3 Farbwerten. Prinzipiell kannst Du die Rx aller Mini parallel 
schalten, ich würde vermutlich je nach Verbindunglänge 3 oder 4 parallel 
hängen und einen einen 74HC(T)244 als "Treiber" dazwischenhängen.
Je nach Geschwindigkeit Deiner Farbwechsel dürfte die nötige Baudrate je 
reclativ gering werden, sind ja dann nur 4 Byte * Anzahl Pixel um alle 
zu ändern.

Gruß aus Berlin
Michael

von Joachim B. (jar)


Lesenswert?

um die Ströme bei über 200 LEDs im Griff zu behalten habe ich bei der 
wordclock24h mit einem 24V Netzteil gearbeitet und pro 2 Streifen a 18 
LEDs mit stepdown Wandler auf 5V fest eingestellt Poti entfernt und 43k 
eingelötet

http://www.ebay.de/itm/Mini-Adjustable-Step-down-Power-Supply-Module-DC-DC-Converter-Output-0-8V-20V-3A-/272297288616?hash=item3f662ee3a8:g:EkcAAOSwZ1BXe6vr

Das Poti runterlöten und zwischen den beiden Aussenpins einen 43k 0603

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Uli K. schrieb:
> Dann könnte ich ja auch, wenn ich z.B. 4 LEDs pro Pixel verwende, je
> ein DataOut auf 4 DataIn geben, und dann pro Pixel 3 DataOut offen
> lassen, oder?

Cool! :-) Ich schließe mich an: Gute Idee!

Uli K. schrieb:
> Verstehe ich es jetzt richtig, dass die erste LED die gesamten Daten
> bekommt, …

Anders ausgedrückt: Jedes empfangende Bit, das über das 24. Bit hinaus 
geht, wird aufgefrischt und weiter geschickt. Die zuletzt geschickten 24 
Bit bleiben in der ersten LED.

Peter schrieb:
> Wie bekommst du die Wärmeleistung von den LEDs weg?
Uli K. schrieb:
> Ist das Wärmeproblem tatsächlich so groß? … Bei mir wäre die
> "LED-Dichte" ja auch deutlich geringer als bei den meisten WS2812b
> Matrix Projekten.

@Uli K. (uksuperstar): Richtig, lass Dich nicht verrückt machen.

Zerschnippelst Du LED-Strips oder bedtückst Du die LEDs direkt auf PCBs? 
In Beiden Fällen hast Du kein Wärmeproblem, bei Deinem LED-Abstand! 
Die Strip-Schnippsel ggfs. natürlich nicht auf Holz oder Plastik kleben, 
sondern auf Aluminium oder einen anderen Wärmeleiter, ist ja eh klar.

Michael U. schrieb:
> Jeder Pixel ein Mini dran und per UART versorgt.

@Michael U. + Markus M: Das wäre "oversized". Selbst "pro Reihe" einen 
eigenen Controller wäre komplett unnötiger Aufwand.

Solche Lösungen verwendet man, wenn man z.B. eine Achterbahn auf der 
Kirmes beleuchten will: Ca. alle 128 LEDs z.B. ein Arduino ProMini, 
damit bei einem Kabelbruch nicht mehr als 128 LED ausfallen.

Wie Marc Vesely schon schrieb: Bei längeren Leitungen die 
Leitungsanpassung verbessern. Selbst bei langen Leitungen wäre ein 
"Little Logic" Schmitt-Trigger einfacher und kleiner als ein Arduino 
ProMini und total ausreichend.

Peter schrieb:
> Du wirst nämlich  die Eingagnsspannung so
> hoch wie möglich wählen, damit du möglichst viele LEDs über die Platine
> verteilt versorgen kannst.

Welche Platine? Ein PCB wird ziemlich leer, bei dem LED-Abstand.

Peter schrieb:
> So manches Netzteil kommt dann mit einem Überschwinger der dir
> die LEDs haufenweise killt.

Selbst die billigen China-Bucks wie in der wordclock24h kommen damit 
klar.

@Peter: Vielleicht waren bei Dir die Zuleitungen zu lang? Dein Netzteil 
hat den "Istwert" der Spannung sicher am Anfang der Leitung gemessen.

: Bearbeitet durch User
von stromtuner (Gast)


Lesenswert?

ws2812 auf der Bühne...
viel zu dunkel!
geh Linsen sähen - evtl. kannst du später Objetive ernten :)

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Torsten C. schrieb:
> Anders ausgedrückt: Jedes empfangende Bit, das über das 24. Bit hinaus
> geht, wird aufgefrischt und weiter geschickt. Die zuletzt geschickten 24
> Bit bleiben in der ersten LED.

 LOL.
 Die zuletzt geschickten 24 bit sind in der Zwischenzeit bei der
 letzten LED angekommen ;-)

 EDIT:
 War aber nicht böse gemeint -  ist mir auch schon oft passiert - erst
 schreiben, dann nachdenken...

: Bearbeitet durch User
von Max D. (max_d)


Lesenswert?

Ich würde mal über DMX nachdenken.
512 Kanäle reichen, dass jedes pixel einen Kanal hat. Und dann baut man 
halt pro pixel einen kleinen avr (tiny2313?) und einen max485 ein.
Versorgung mit 12/24v und als Lichtquelle normalen led stripe.

von Steven M. (8023)


Lesenswert?

aber die controller gabs doch auch ohne LED drann...
https://www.electronic-shop.lu/de/products/145780

daran müsste man ja auch nicht zwingend je 1 LED betreiben

von Markus M. (adrock)


Lesenswert?

...ich bleibe dabei, ich würde erstmal EIN Pixel als POC aufbauen und 
schauen wie es optisch aussieht.

Danach kann man sich Gedanken über die Verschaltung machen, evtl. muss 
man ja doch eine andere Lösung wählen wg. Helligkeit und so.

Die Lösung mit der fertigen 2811 Platine ist auch gut, wäre natürlich 
die Frage wieviel man davon für eine 50x50 cm Fläche benötigt, also ob 
einer reicht.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Max D. schrieb:
> Ich würde mal über DMX nachdenken.

Meine Meinung auch hier: Total "oversized".
(Ich weiß, keiner hat nach meiner Meinung gefragt. ;-) )

Steven M. schrieb:
> daran müsste man ja auch nicht zwingend je 1 LED betreiben

Naja, eigentlich schon. Da kommen rund 20mA PWM-Konstantstrom raus.

Du kannst mehrere LEDs in Reihe schalten, aber wegen der 
unterschiedlichen Vorwärtsspannungen der LED-Farben bekommst Du dann 
wieder neue Probleme: Der WS2811 wird zu warm oder Du machst 2..3 
unterschiedliche Versorgungsspannungen: Für jede Farbe eine 
individuelle.

Aber es gibt tatsächlich Kirmes-LED-Lampen aus China,
die das trotzdem so machen.

Markus M. schrieb:
> … ich würde erstmal EIN Pixel als POC aufbauen und
> schauen wie es optisch aussieht.
Ja, wie stromtuner auch bereits schrieb:
WS2812 sind bei größerem Abstand auf der Bühne vermutlich zu dunkel.

Max D. schrieb:
> Versorgung mit 12/24v und als Lichtquelle normalen led stripe.

Da wird ein Schuh draus: Viel Licht für wenig Geld.
Vorwiderstände (Heizungen) sind auf den Strips auch schon drauf.
Und dann pro 'Pixel' drei Mosfets (einer pro Farbe) mit PWM, oder wie?
Damit könnte man z.B. 3 x 3 LEDs (eine Farbe) bequem mit einem 
PWM-Ausgang steuern.

Marc V. schrieb:
> Die zuletzt geschickten 24 bit sind in der Zwischenzeit bei der
> letzten LED angekommen ;-)

Neenee, war schon richtig:
Die zeitlich zuerst geschickten Bits landen in der
letzten LED der Kette.

: Bearbeitet durch User
von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Torsten C. schrieb:
>> Die zuletzt geschickten 24 bit sind in der Zwischenzeit bei der
>> letzten LED angekommen ;-)
>
> Neenee, war schon richtig:
> Die zeitlich zuerst geschickten Bits landen in der
> letzten LED der Kette.

 Nein.
 Die zeitlich zuerst geschickten Bits landen in der ersten LED
 der Kette.

von Thomas E. (picalic)


Lesenswert?

Torsten C. schrieb:
> Neenee, war schon richtig:
> Die zeitlich zuerst geschickten Bits landen in der
> letzten LED der Kette.

Falsch! Die zeitlich zuerst geschickten 24 Bits kommen nicht mal bei der 
zweiten LED an.

von Steven M. (8023)


Lesenswert?

Torsten C. schrieb:

> Steven M. schrieb:
>> daran müsste man ja auch nicht zwingend je 1 LED betreiben
>
> Naja, eigentlich schon. Da kommen rund 20mA PWM-Konstantstrom raus.
>

was ich sagen wollte, man muss ja nicht die LED direkt am WS2812s 
betreiben...

das interessante wären einfach die 3 PWM signale...

die kosten ~45cent das stück bei adafruit... viel billiger wird ein 
daisychain/dmx/whatever controller auf µC basis halt auch nicht

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Steven M. schrieb:
> was ich sagen wollte…
> das interessante wären einfach die 3 PWM signale …
> die kosten ~45cent das Stück
Achso, ja! :-) Cool.
Das passt z.B. gut zu den Mosfets mit den 12V-Strips^^. :-)

Das mit der ersten bzw. letzten LED ist ja ärgerlich:
Wir müllen den Thread von Uli zu. :-(

Klar ist doch: In keiner WS2812b ist ein großer "Speicher", sondern nur 
ein 24-Bits-Schieberegister.

Beim 25. Bit in Folge am D-In kommt das erste aus D-Out wieder raus.

An welchem Ende man nun "richtig" beim Zählen der LEDs anfängt, ist ein 
Streit um des Kaisers Bart.

Die erste WS2812b direkt hinter dem µC setzt die Farben der 24 zeitlich 
zuletzt gesendeten Bits um. Was soll man dazu noch sagen?

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

Marc V. schrieb:
> Die zeitlich zuerst geschickten Bits landen in der ersten LED
>  der Kette.

Torsten C. schrieb:
> Die erste WS2812b direkt hinter dem µC setzt die Farben der 24 zeitlich
> zuletzt gesendeten Bits um.

Torsten C. schrieb:
> ist ein
> Streit um des Kaisers Bart.

nein erinnert mich an die Diskusion mit meiner Frau "parke hinter dem 
Wagen"

wo ist vor und wo ist hinter?

Die erste WS2812b ist entweder die letzte in der Kette am weitesten vom 
µC weg ODER gleich hinterm µC wo die Daten reingeschoben werden. :)

: Bearbeitet durch User
von Marc V. (Firma: Vescomp) (logarithmus)


Angehängte Dateien:

Lesenswert?

Torsten C. schrieb:
> Die erste WS2812b direkt hinter dem µC setzt die Farben der 24 zeitlich
> zuletzt gesendeten Bits um. Was soll man dazu noch sagen?

 Dass es falsch ist.

 Du must dir das folgendermassen vorstellen:
 Nachdem die erste LED ihre 24bit empfangen hat, fungiert die weiter
 nur noch als Teil der DATA Leitung, existiert praktisch nicht mehr.
 Alles, was danach kommt, wird nur noch durchgeschoben - bis zum RESET.

 Da du offenbar Schwierigkeiten damit hast, habe ich etwas angehängt,
 damit du es leichter verstehen kannst.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Oops. Sorry. Entschuldigung!
Mir ist nie aufgefallen, das meine Muster 'spiegelverkehrt' sind.

Aber nun, wo Du es sagst, so schreibt es ja auch Tim:
> After reset, each device reads the first 24 bit (GRB 8:8:8) of data into
> an internal buffer. All consecutive bits after the first 24 are forwarded
> to the next device, go through internal data reshaping and are then
> forwarded via “Dout” to the next device.
https://cpldcpu.wordpress.com/2014/01/14/light_ws2812-library-v2-0-part-i-understanding-the-ws2812

Marc V. schrieb:
> … erst schreiben, dann nachdenken...
"Nachdenken" führte in die Sackgasse. Nachlesen war besser. ;-)

Ich danke für Eure Beharrlichkeit.

: Bearbeitet durch User
von Max D. (max_d)


Lesenswert?

Led stripe ist billig und die paar Watt die da vergeudet werden dürften 
bei einer "Theater Installation" nicht so viel ausmachen (klingt nicht 
nach großer Betriebsdauer)

von X.O. (Gast)


Lesenswert?

Um nochmals des Beitrag von Torsten aufzugreifen.

Der WS2811 stellt dir direkt die PWM Signale der 3 Kanäle zur Verfügung. 
Daran kannst du dann z.B. über einen Mosfet Ledstrips, High Power Leds 
oder ähnliches schalten.

100x WS2811 Circuit Board PCB Square Making  5V 15mm  WS2811 LED Pixel 
Module Light
 http://s.aliexpress.com/UvEn6nI7
(from AliExpress Android)

von Uli K. (uksuperstar)


Lesenswert?

Wow mit so vielen guten Ideen und Tipps so schnell habe ich nicht 
gerechnet :)
Ich werde demnächst mal ein wenig mit der pixelgröße und dem ws2812b 
herumspielen, aber die Idee mit dem ws2811 gefällt mir auch sehr gut und 
wäre für mein Projekt wahrscheinlich besser geeignet...

von c-hater (Gast)


Lesenswert?

Uli K. schrieb:

> Verstehe ich es jetzt richtig, dass die erste LED die gesamten Daten
> bekommt, dann 3 Byte "abschneidet" und den neuen Datenstrom neu sendet
> und dadurch auffrischt?

So in etwa. Tatsächlich ist es eher so, dass sie nach jedem Reset auf 
Eingangssignale wartet, die presst sie in ihr eigenes Timing. Sind die 
Dinger nach ihrem Timing gültige Bits, können zwei Sachen passieren:

1) Sie hat noch keine 24 davon für sich selber abgefischt. Dann nimmt 
sie die Bits für sich selber und die nächsten LEDs kriegen nix davon zu 
sehen.

2) Sie hat die 24 für sich selber im Sack. Dann schaltet sie auf 
"Durchzug", reicht den Kram also weiter, aber eben mit dem eigenen 
Timing und den frischen elektrischen Kräften ihres Ausgangstreibers.

> Dann könnte ich ja auch, wenn ich z.B. 4 LEDs pro Pixel verwende, je ein
> DataOut auf 4 DataIn geben, und dann pro Pixel 3 DataOut offen lassen

Ja, das geht. Bezüglich der Treiberleistung ist es kein Problem, 4 
Folge-LEDs anzusteuern. Allerdings sollte die Leiterbahnführung 
innerhalb eines Pixels dann so gestaltet sein, dass sie elektrisch alle 
etwa gleich weit vom Einspeisepunkt des Signals vom vorigen Pixel 
entfernt sind.

> Die hohen Ströme sind natürlich auch ein Problem

...welches man nicht unterschätzen sollte.

> Ist das Wärmeproblem tatsächlich so groß?

Kommt drauf an. Nämlich darauf, wieviel Licht sie im Mittel absondern 
müssen. Je heller sie im zeitlichen Durchschnitt leuchten müssen, desto 
mehr Wärmeenergie sondern sie im Durchschnittszeitraum auch ab.

Viele kommerzielle Produkte mit WS28xx berücksichtigen dieses Problem 
nicht hinreichend!

Ich selber habe z.B. so einen Ring mit insgesamt 60 LEDs (bestehend aus 
vier Einzelplatinen á 15) gekauft. Bei Vollast ist der passiv einfach 
nicht hinreichend kühlbar, selbst wenn man sich ernsthaft Gedanken darum 
gemacht hat.
Die Platinen sind einfach so beschissen designed, dass selbst mit 
enormen Kühlkörpern unter den Platinen keine hinreichende Wärmeabfuhr 
möglich wäre. Es klemmt nämlich vor allem am Wärmewiderstand durch die 
Platine hindurch, aber auch an dem zwischen Platine und KK erreichbaren. 
Grenzdebile Vollidioten haben diese Platinen designed. Aber ich bin 
sicher, dass sie zumindest kostenmässig das Optimum herausgeholt 
haben...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.