testbericht zum WS2812

hi,

die LED in Gruppen aufteilen und jeweils von einen ATmega328 oder ATmega2560 ansteuern lassen. Das Programm wird von einem zentralen "Server" übergeben. Da könnte jeder ATmega 328 ca 150 LED ansprechen da so der Speicher für 2 bis 3 Datensätze ausreichend ist

vernünftige aussage.
nur die 150 seh' ich als zu niedrig an. jede rgbLED braucht 3 Byte, also sollten 400 doch leicht machbar sein. ein ATmega1284P mit 16k speicher für 800 LEDs geht sicher. und mit 800 LEDs hat man eine wiederholrate von sagen wir mal 30fpS, weil rechnen will der microconroller ja auch.

gruß stefan

dischneider:
War ein Test :slight_smile:

Das zieht bei mir nicht. :wink: :wink: :wink: Ein italienische Politiker windet sich auch immer aus den Fettnäpfchen indem er sagt, man habe ihn falsch verstanden oder falsch zitiert oder es war gar nicht so gemeint. ]:smiley: ]:smiley: ]:smiley: Wenn ich mich so recht erinnere hat er nie gesagt, daß er eigentlich gar nicht da war.

Grüße Uwe

Eisebaer:
...
ich sehe nicht viele möglichkeiten. mit einem UNO kannst Du, sagen wir mal, 500 LEDs steuern, dann geht Dir der speicher bald aus. also jeder raumteil mit zwei UNOs, aber dann wird die programmierung für ein solches knightrider-licht in einem solchen raumteil sehr unkomfortabel.

oder ein ATmega1284P für jeden raumteil, gesteuert von einem zentralen uno, am besten mit ethenet-shield, dann kannst Du alles vom handy/tablet/computer aus steuern

gruß stefan

500 LED sehe ich für den Arduino UNO schon zuviel, da die Daten dafür satte 1500Byte sind. Bei 2048 Byte RAM des UNO ist da nicht mehr viel Platz für anderes. Da muß mann schon mit allen kniffen Programmieren und RAMverwendung extrem sparen.

Meine Wahl der max LED basiert auf folgender Überlegung:
*Bildwiederholrate über 25-30 /sec.
*Berechnung der Werte zB dimmen von 1 Farbe von 0 auf 255 oder Farbüberläufe mit neuen Werten aller 3 Farben zwischen 2 Datenübertragungen.(150 bis 450 Berechnungen)
*Übertragung der Daten von SD-Karte oder von Master zwischen 2 "Bildern"
*Speicherplatz für 2 Abbilder.
*Speicherverbrauch unter 1kByte RAM. 2x 3x150Byte = 900 Byte RAM
Ok, es könnten auch 200 LED sein. (600 Byte pro Satz) aber da wirds mit dem RAM in Arduino UNO knapp.

Grüße Uwe

hi,

uwe, ich hab' noch nie mit "abbildern" gearbeitet, deswegen rechne ich nur einen satz von 3 byte pro rgbLED, eben das struct CRBG. "bilder" braucht man meiner meinung nach nicht bei streifen rund ums zimmer, normales licht in jeder farbe und helligkeit geht ohne, effekte werden auch erst zur laufzeit berechnet. auch eine SD-karte ist dann nicht nötig.

der uno "in der mitte" soll ja auch nichts für die satelliten berechnen, sondern nur sagen,welches ihrer "programme" sie ausführen sollen und in welchen farben. berechnen müssen sie dann selber.

aber egal wie, ein ATmega1284P mit 16k ist auf jeden fall besser, doppelt soviel RAM wie ein mega2560. damit reicht einer für jeden raumteil.

gruß stefan

Eisebaer:
am günstigsten hab' ich's hier gefunden:

http://www.ebay.de/itm/Teensy-3-0-USB-Entwicklungs-Board-32bit-ARM-Cortex-M4-MK20DX128VLH-Original-PJRC-/261116450779?pt=Wissenschaftliche_Geräte&hash=item3ccbc0d7db

Bei Watterott bekommst Du den Teensy 3 schon für 18 Euro.

Hallo Stefan
Als Bild oder Abbild meinte ich die vorberechneten oder vom Server übertragenen Daten die vom Arduino oder ATmega in einem Rutsch an die LED-Strippe übertragen werden. Die einzige Möglichkeit um keine vorberechneten Daten zu brauchen ist alle LED einer Strippe mit dem gleichen Wert anzusteuern.Für eine Bedingung das x-te LED

Speicherkarten haben den Vorteil, daß die Daten nicht berechnet werden müssen und auch komplizierte Muster, die zu aufwändig zum Berechnen sind, dargesellt werden können. Ist ja nur eine der möglichen Optionen.

Grüße Uwe

Hey,

vielen vielen Dank für die ganzen Infos. Ich wollte euch damit echt nicht nerven.
Ich bin Informatiker und kein Nachrichtentechniker.
Habe bis jetzt auf jeden Fall schon viel gelernt. thx a lot

Wenn ich das Ganze mal zusammenfasse - so wie ich es verstanden habe - ist folgendes die beste Möglichkeit:

  • Ein zentraller "Server" (am liebsten den Due, denn den hab ich schon bestellt)
  • der berechnet das gesamte "Bild"
  • teilt das "Bild" in die Abschnitte und schickt es an die "Slaves"
  • Drei Slaves Typ "ATmega1284P" für jeden Abschnitt
  • jeder Slave bekommt sein Bild und "pushed" es bei einem gemeinsamen Signal an die Strips
  • Die Übertragung des Teilbildes an den Strip muss fix mit 800kHz erfolgen
  • Die Übertragung des Teilbildes an die Slaves muss mit mindestes 2.4MHz erfolgen, da ja 3 Teilbilder verschickt werden
  • Das Sync Signal muss vom "Server" kommen und 30 Hz betragen.
  • das gemeinsame Sync-Signal darf nur die "Slaves" erreichen, die eine Änderung des Teilbildes haben, Strips die nicht verändert werden behalten so die vorherige Einstellung bei.

Ist das so richtig?

Til

Nachtrag:
Habe gerade mal den größten Abschnitt berechnet.
Dieser ist 12.4m lang, also runt 740 LEDs.
Das liegt ja dann unter den 1000 LEDs und müsste mit 30fps zu machen sein.
Oder?

Hi. I found this thread looking for people using OctoWS2811 (the library I released a few days ago). Sorry about the English reply... I don't speak German. :frowning:

One difficulty with using an ATMEGA1284P is the interrupts must be disabled while the WS2811 output is generated. Each WS2811 LED requires 30 microseconds. If you update 240 LEDs, the interrupts must be disabled 7.2 milliseconds.

During those 7.2 millseconds, the ATMEGA1284P can not reliably receive more than 2 bytes of serial data, because the AVR USART has only a two byte buffer. If your Due transmits with a baud rate faster than 2777 bits/sec, it must not send during those 7.2 milliseconds. You will need to connect another signal from each ATMEGA1284P to the Due, so it can know when the ATMEGA1284P is "blind". If the Due waits until after the 7.2 millisecond blind time, then this system should be able to work.

I designed OctoWS2811 to solve these types of problems. The CPU remains free for your use, and interrupts are enabled while the WS2811 LEDs update, so you can receive serial communication or use other libraries which require interrupts.

Of course I hope you'll consider Teensy 3.0 for a future project. If you already have the Due and ATMEGA1284P chips, hopefully this message will at least help design your program to avoid frustrating data loss during those blind times while interrupts must be disabled.

Nochmal die Frage ... Brauchst Du wirklich 740 LEDs an einem Strang? Ich habe gerade den ersten Testlauf für meine Lavalampe 2.0 (altes Modell ist 20 Jahre alt, hat eine 60W Glühlampe und braucht 1h um warm zu werden) gemacht. In der neuen Lampe sind 20 von den WS2811 LEDs verbaut und ich kann damit schon einen kleinen Raum ausleuchten. Selbst bei indirekter Beleuchtung dürften Deine LEDs eher in Richtung Flutlichtanlage tendieren. Abgesehen von Stromverbrauch. Angegeben sind die Strips mit max. 3,6A pro Meter. Gemessen habe ich bei 20 LEDs max weiss gerade mal 750mA, komme also pro Meter eher auf weniger als 2,5A. Trotzdem würdest Du bei 12,4m da schon über 30 A benötigen, das sind 150 Watt was die LEDs ziehen, dazu kommt ja noch der "Verschnitt" vom Netzteil. Und das nur bei einem Strang. Entweder läufst Du immer nur auf 10% Helligkeit, kannst dann aber kaum sinvolle Farbverläufe bauen, da Du zu wenig Steps hast (0-25 bei 10% statt 0-256 bei 100%) oder Du erblindest langsam und verarmst an Deiner Stromrechnung. Da man die Strips an jeder einzelnen LED teilen kann, wäre es auch möglich (wenn auch eine schweine Arbeit) die Strips auseinander zu ziehen und z.B nur 10 LEDs pro Meter zu verwenden, das würde sämtliche Kosten drücken.

  1. Anschaffung der LED Strips
  2. Anschaffung Netzteil
  3. Laufende Stromkosten

Btw, Danke für die Tips zu den LEDs und der Software in diesem Thread, damit war dann der mechanische Teil plus das Löten der 20 x 6 Lötaugen und der 48 Drähte (Abmessen, Zuschneiden, Abisolieren und 92 Mal anlöten) der langwierigste Teil der Lampe.
Hier ein Video vom ersten Testlauf / Funktionstest, zur Zeit noch mit einem nicht ganz passenden Demo-Sketch.
http://www.youtube.com/watch?v=k2k_QGbkKJI [/img]

Ich bekommen nur die Meldung: "Dieses Video ist privat"

Ich auch. Schade.

@mkl0815
Das hatte ich schon gesagt:

testbericht zum WS2812 - #45 by uwefed - Deutsch - Arduino Forum
Du weißt schon, daß 2400 Stück WS2812 144A brauchen und das bei 5V 720W sind wenn alle LED weiß leuchten. Es sind natürlich weniger wenn nur ein Teil oder nur bestimmte Farben leuchten.
Dir ist schon bewußt, das das eine Stadion-Tageslicht-Beleuchtung in Deinem Wohnzimmer wird?

Der Stromverbrauch bei gedimmten LEDs ist nicht sehr leicht zu bestimmen.
Wenn alle WS2811/12 synchron in der PWM Sequenz laufen dann braucht es auch für kleine PWM Prozenteanteile für kurze Zeiten den vollen Strom. Weil aber die WS2811/12 nicht synchronisiert werden werden sie sicher nicht synchron laufen und der Strom statistisch gesehen auf den Prozentsatz der PWM Steuerung zurückgehen mit der Möglichkeit aber auch kurzzeitig den vollen Strom zu ziehen. Die Überlegungen fußen auf eine weiße Leuchtfarbe und somit gleichmäßige Ansteuerung aller Farben. Wird nur 2 oder eine Farbe gemischt oder verwendet so sinkt der maximale Stromverbrauch auf 2/2 2/3 bzw 1/3.

Grüße Uwe

uwefed:
Wird nur 2 oder eine Farbe gemischt oder verwendet so sinkt der maximale Stromverbrauch auf 2/2 bzw 1/3.

Du treibst deine Fehlerquote weiter hoch: gemeint waren 2/3 bzw 1/3 gehe ich von aus!?
Oder war es ein Test?

Liebe Grüße

Dirk

dischneider:

uwefed:
Wird nur 2 oder eine Farbe gemischt oder verwendet so sinkt der maximale Stromverbrauch auf 2/2 bzw 1/3.

Du treibst deine Fehlerquote weiter hoch: gemeint waren 2/3 bzw 1/3 gehe ich von aus!?
Oder war es ein Test?

Liebe Grüße

Dirk

Mensch, sind heute viele Leute mit 'ner Goldwaage unterwegs :wink: :wink: :wink: :wink:

Danke Dirk, Habs korrigiert.

Grüß Uwe

Ups, sorry. :sweat_smile:
Das Video sollte nun nicht mehr privat sein. Der Haken "privat" ist eine default-Einstellung, man muss in explizit entfernen damit das öffentlich wird. Ansich sehr praktisch die Funktion, man muss halt nur dran denken. Man selbst kann das Video im Browser anschauen, daher fällt das nicht so auf :blush:

@Uwe: Daher habe ich auch bei 100% weiss (also alle PWM-Werte auf 255 Maximum gesetzt) gemessen, daher hier der maximale Strom fliessen sollte. Im Idealfall sind alle einzelnen LEDs zu jeder Zeit an.

Mario.

Hi,
kurzer Einwurf und Antwort auf meine eigene Frage: KT Elektronic sagt, den WS2812 gibt es max. als 4 m Stück, wei das die maximale zulässige Länge mit einer Spannungseinspeisung sei. 14 A, Hut ab.

Trotzdem kannst Du mehr als 4m an einen Strang hängen, Du musst nur die Spannungsversorgung mind. alle 4m anklemmen. Der Datenstrang kann länger sein.

Bei mir habe ich im übrigen das Problem, das ich ab ca. 85% Helligkeit bei weiss (also alle 3 Werte RGB auf 220 oder kleiner) ein ziemliches Flackern sehe. Das dann den ganzen weiteren Bereich bis 0% bleibt.
Zumindest ist mir das bei meiner Lampe aufgefallen, ich teste das morgen nochmal mit einem 0.5m Strip.

Hatte den Effekt auch schon jemand?

Mario.

hi,

Bei mir habe ich im übrigen das Problem, das ich ab ca. 85% Helligkeit bei weiss (also alle 3 Werte RGB auf 220 oder kleiner) ein ziemliches Flackern sehe. Das dann den ganzen weiteren Bereich bis 0% bleibt.
Zumindest ist mir das bei meiner Lampe aufgefallen, ich teste das morgen nochmal mit einem 0.5m Strip.

Hatte den Effekt auch schon jemand?

ja, hatte ich auch bei einem netzteil mit 5V 3A.
wenn man nur eine led ansteuerte, war das flackern weg, bei mehr als einer da. anderes netzteil, effekt verschwunden.

gruß stefan

Danke, dann besteht ja Grund zur Hoffnung :slight_smile:
Aktuell hängt der Prototyp noch am Labornetzteil im Keller (Einstellbar von 3 bis 12V max 3A). Am Ende wird die Lampe aber an einem dedizierten 5v,2A Netzteil hängen. Vielleicht hab ich ja Glück und es past. Auffällig ist das zum Glück nur bei weiss und das kommt bei den verschiedenen Betriebsmodi nur im "ich brauch 'ne Leselampe"-Modus zum Einsatz.
Mario.