Forum: Mikrocontroller und Digitale Elektronik RGB-LED-Großmatrix


von Michael Z. (zahn)


Lesenswert?

Hi ich habe mir ein etwas größeres Projekt vorgenommen und bräuchte 
dafür Unterstützung.

Also das Ziel ist es eine LED-RGB-Matrix zu bauen, die aus 20 einzelnen 
8x8 Matrizen besteht.

Ich hätte gerne 20 Matrizen um diese als Große, z.B. 4x5 zu verwenden 
oder zum Beispiel als 5 Streifen a 4 Matrizen. Es soll ein variables 
System entstehen, welches je nach Event eben unterschiedlich aufgebaut 
werden kann.

Nun zum Problem:
Wie eine Matrix funktioniert weiß ich zwar, aber mein Problem ist es nun 
20 Matrizen als eine zu steuern.
Ich würde das ganze gerne live über z.B. MADRIX (http://www.madrix.com) 
steuern. Kann man jeder 8x8 Matrize einen Controller zuweisen der im 
Rahmen dieser Matrize eingebaut ist, sodass man einfach alle Matrizen 
aneinanderhängt, die man benötigt uns am ende einfach ein Kabel in eine 
externe Steuerbox geht, die die richtigen Werte an die Controller 
sendet?
Diese soll über DMX, USB oder Ethernet mit dem PC verbunden werden.

Vielen Dank schonmal für eure Mühe
Michael

von Hans M. (Gast)


Lesenswert?

Hallo Michael,

schau Dir mal diese LEDs an:

http://www.kirronlightcomponents.com/index.php/de/produkte/leds/dyco-led

oder gleich die Panels :

http://www.kirronlightcomponents.com/index.php/de/produkte/dyco-led-produkte/panels

Werden mit nem einfachen SPI_Protokoll gesteuert, erspart Dir evtl ne 
Menge arbeit.

MfG Hans

von Michael Z. (zahn)


Lesenswert?

Vielen Dank schonmal für die schnelle Antwort :)

Das ganze soll ein Projekt für die 13 Elektro-LK werden, deshalb kommt 
nur ein Selbstbau in Frage. Ich möchte mit dem Projekt die 
Funktionsweise einer LED-Matrix zeigen. Das geht zwar auch mit einer 
einzelnen 8x8 Matrix sehr gut, aber da ich nebenbei Showtechnik betreibe 
würde ich gerne gleich eine Wand bauen und diese bei Events einsetzen.

Ich hatte an einfache 5mm RGB LEDs gedacht
(http://www.ebay.de/itm/500-x-LED-5mm-RGB-steuerbar-4-Pin-gem-Minus-10000mcd-rot-grun-blau-/251086607297?pt=Bauteile&hash=item3a75ed93c1)

von Karl H. (kbuchegg)


Lesenswert?

Michael Zahn schrieb:

> Das ganze soll ein Projekt für die 13 Elektro-LK werden, deshalb kommt
> nur ein Selbstbau in Frage.


Na dann baus.
Das hindert dich ja nicht daran, mal über den Zaun zu linsen, wie andere 
diese Problematik angegangen sind.


> Kann man jeder 8x8 Matrize einen Controller zuweisen ...

Baun kann man alles. Niemand hindert dich daran.

von Falk B. (falk)


Lesenswert?

@  Michael Zahn (zahn)

>steuern. Kann man jeder 8x8 Matrize einen Controller zuweisen der im
>Rahmen dieser Matrize eingebaut ist, sodass man einfach alle Matrizen
>aneinanderhängt, die man benötigt uns am ende einfach ein Kabel in eine
>externe Steuerbox geht, die die richtigen Werte an die Controller
>sendet?

Ja, aber allein eine 8x8 RGB Matrix benötigt 192 DMX Kanäle, man kann 
also bestenfalls zwei Matritzen an ein DMX Universum klemmen.
Macht 10 DMX Universen für dein 20 Matritzen. Hmm, ne Menge Holz.

>Diese soll über DMX, USB oder Ethernet mit dem PC verbunden werden.

Es gibt fertige DMX-USB Adapter, nutze sie. Denn sonst hast du am Ende 
viele Baustellen.

Beitrag "LED-Matrix, 9x9 RGB, Voll dimmbar"

von Michael Z. (zahn)


Lesenswert?

Mit DMX kenne ich mich aus, da ich Movingheads und Diverses andere damit 
steuere. Habe mir deshalb ein DMX-Interface gebaut. Funktioniert auch 
super aber mein problem an DMX ist eben, dass man 8 DMX-Universen 
bräuchte...

Gibt es da eine Alternative über Ethernet?

von Karl H. (kbuchegg)


Lesenswert?

Langsam.
Deine Topologie wird so, oder so ähnlich aussehen


                Main
PC  ----->    Controller  --------+------+------+-----+-----+
                   |   |          |      |      |     |     |
                   |   |       Matrix  Matrix Matrix Matrix Matrix
                   |   |
                   |   +----------+------+------+-----+-----+
                   |           Matrix  Matrix Matrix Matrix Matrix
                   |
                   +--------------+------+------+-----+-----+
                               Matrix  Matrix Matrix Matrix Matrix

Wie du den Teil rechts vom 'Main Controller' machst, ist dir überlassen. 
Das kann DMX sein, muss es aber nicht. Hauptsache der Main Controller 
kann jedes Matrix Modul, und in diesem Modul jede LED ansprechen (zb, in 
dem er einen Befehl an den für jedes Modul zuständigen µC schickt). Aber 
welche Technologie du für diese Kommunikation benutzt, ist dir 
überlassen. Ja, warum nicht ... das könnte auch SPI sein.

Was anderes ist hingegen der Teil links vom 'Main Controller'. Da wäre 
es eine extrem gute Idee, wenn du einen existierenden Standard einsetzt. 
Und da du vor hast, auf PC Seite MADRIX einzusetzen, wäre es eine 
äußerst extrem gute Idee, wenn du dich für etwas entscheiden würdest, 
was MADRIX auch unterstützt.
Ergo - meine Schlussfolgerung:
Ich an deiner Stelle würde mir für diesen Teil erst mal ansehen, was 
MADRIX so unterstützt, würde mir diese Systeme dann mal genauer ansehen, 
entscheiden welche davon das können, was ich brauche (nämlich eine 
entsprechende Anzahl Lichtkanäle zu steuern) und dann meine Entscheidung 
treffen.

von Michael Z. (zahn)


Lesenswert?

Vielen Dank schonmal, Madrix ist das einzige Programm welches ich für 
solche Anwendungen kenne, ich möchte mich nicht daran binden.

von Karl H. (kbuchegg)


Lesenswert?

Michael Zahn schrieb:
> Vielen Dank schonmal, Madrix ist das einzige Programm welches ich für
> solche Anwendungen kenne, ich möchte mich nicht daran binden.


Ich würde mal sagen:
Die Schnittstellen die MADRIX anbietet, werden wohl auch die anderen 
Produkte unterstützen. Das eine oder andere vielleicht eine oder 2 
Schnittstellen-Protokolle mehr, andere vielleicht etwas weniger. Aber im 
großen und ganzen bietet MADRIX da ein paar Möglichkeiten an und ich 
schätze mal, das wird sich nicht großartig von dem unterscheiden, was du 
bei anderen Produkten finden wirst.

Es geht nicht darum, was MADRIX alles kann und wie bedienerfreundlich es 
ist oder wie toll das Programm nicht ist oder eben nicht ist.
Es geht darum was hinten rauskommt und aufs Kabel zu den Lichtern geht. 
Und das wird bei MADRIX auch nicht anders sein, als bei anderen 
Produkten.

Genau deswegen gibt es ja Standards, damit es wurscht ist, ob da jetzt 
Programm A oder Programm B am anderen Ende der Leitung sitzt. Solange 
beide nach dem gleichen Standard ihre Ergüsse loswerden, ist das alles 
austauschbar.

von Reinhard Kern (Gast)


Lesenswert?

Falk Brunner schrieb:
> Macht 10 DMX Universen für dein 20 Matritzen. Hmm, ne Menge Holz.

Einerseits. Andrerseits ist das noch lange keine Wand oder auch nur ein 
für Video brauchbares Display - die Auflösung beträgt ja nur ärmliche 32 
x 40 Pixel, da geht nicht mal ein noch so kurzer Text (Ok, ein Buchstabe 
pro Matrix wäre ja machbar, aber was macht man mit einem Display mit 5 x 
4 Zeichen?).

Um praktisch von Nutzen zu sein, wird es also noch sehr viel mehr Holz. 
Ein anständiges Bild wäre VGA, aber dafür bräuchte er schon 4800 solche 
Matrizen. Das sollte man sich klarmachen, bevor man sich in so etwas 
verrennt wie eine Videowand.

Gruss Reinhard

von Michael Z. (zahn)


Lesenswert?

Es geht hierbei nicht darum Bilder oder gar Videos wiederzugeben. Die 
Matrix ist für Lichteffekte gedacht, bzw. einfache Visuals. Die Matrix 
soll hinter einem DJ hängen und einfach ein Effekt sein der die 
Beleuchtung durch Moving-Heads und Scheinwerfern ergänzt.

von Reinhard Kern (Gast)


Lesenswert?

Michael Zahn schrieb:
> aber da ich nebenbei Showtechnik betreibe
> würde ich gerne gleich eine Wand bauen und diese bei Events einsetzen.

Dein Projekt wird etwa 16 x 20 cm gross - das ist selbst im 
Sozialwohnungsbau noch lange keine Wand. Aber wenn du dir inzwischen 
über die Grenzen des Machbaren klargeworden bist, ist es ja gut.

Gruss Reinhard

von Michael Z. (zahn)


Lesenswert?

Die LEDs haben einen Abstand von 10cm und ergeben somit eine 
Gesamtfläche von 4m x 3,20m. Das Ganze soll wie gesagt nur für einfache 
Visuals bzw. Laufschriften verwendet werden.

von Eumel (Gast)


Lesenswert?

Michael Zahn schrieb:
> Die LEDs haben einen Abstand von 10cm und ergeben somit eine
> Gesamtfläche von 4m x 3,20m. Das Ganze soll wie gesagt nur für einfache
> Visuals bzw. Laufschriften verwendet werden.

Welche LEDs willst du benutzen?

von Falk B. (falk)


Lesenswert?

Ambilight halt. Kann man schon machen, mit ultrahellen LEDs in der Disse 
passt das schon. Dennoch kann man nur warnen. Wenn du ALLES selber 
machen willst, weil du dich nicht an Standards halten willst, wirst du 
nie fertig.
Madrix ist ein guter Startpunkt. Wenn man es besser verteilt reichen 8 
DMX Universen für 1296 RBG LEDs, macht eine Matrix von 36x36 Punkten 
plus bissel Rerserve.

von Vlad T. (vlad_tepesch)


Lesenswert?

laufschriften von Punkten mit 10cm Abstand sind nicht zu lesen.

Voschlag:
nimm smd-RGB-LEDs und setz 1-2cm vor jede LED ein Milchglasquadrat als 
Diffusor

von Falk B. (falk)


Lesenswert?

@  Vlad Tepesch (vlad_tepesch)

>laufschriften von Punkten mit 10cm Abstand sind nicht zu lesen.

Dann solltest DU mal die Beiträge des OP lesen. Er will nur 
Lichteffekte, keine Schrift.

Beitrag "Re: RGB-LED-Großmatrix"

von Vlad T. (vlad_tepesch)


Lesenswert?

Falk Brunner schrieb:
> Dann solltest DU mal die Beiträge des OP lesen. Er will nur
> Lichteffekte, keine Schrift.
Das solltest du vielleicht tun, bevor du Leute  vollmotzt.

Michael Zahn schrieb:
> Das Ganze soll wie gesagt nur für einfache
> Visuals bzw. Laufschriften verwendet werden.

von Michael Z. (zahn)


Lesenswert?

Also ich würde halt gerne 8x8 Module haben die ich je nachdem wie ich 
sie brauche zusammenschraube, das Vorbild sieht so aus: 
http://www.thomann.de/de/eurolite_led_pixel_mesh_64x64.htm

Mein Hauptproblem ist einfach, dass ich 10 bzw. 8 DMX-Unsiversen 
bräuchte. Ich habe mir gedacht einfach in jedes Panel einen AtMega 
reinzuschrauben und dann alle Panel über SPI zu verbinden. Allerdings 
habe noch nie mehrere AtMegas zusammengeschaltet und weiß garnicht ob 
das so funktioniert. Das mit der Laufschrift ist denke ich schon zu 
lesen man steht ja nicht 1m davor und ich denke aus >10m ist das schon 
zu erkennen.Das ist aber auch zweitrangig. Der Hauptpunkt sind die 
Effekte.

von Max D. (max_d)


Lesenswert?

es gibt so einen schönen pwm controller namens tlc5940 (20 stück kosten 
25€) der als spaltentreiber gut zu gebrauchen ist, mit 16 kanälen pro ic 
ist der ganz gut ausgestattet (man kann zwei 8x8 matrizen zusammenfassen 
und an drei tlcs hängen, geht genau auf). Man muss dann nurnoch die 
Zeilen multiplexen (und ~480 Hz updaterate (60 Hz mal 8 zeilen) packt 
sogar ein relativ kleiner µC (AVR?) gut).... Dann schaltet man einfach 
alle zwerierpackete in ne dasychain und fertig is die laube :D

Alternativ sowas nur mit rgb: 
http://hackaday.com/2013/03/18/prototyping-a-modular-led-matrix/

von Michael Z. (zahn)


Lesenswert?

Das mit den tlc5940 hört sich gut an ergo ich baue einfach 10 matrizen 
mit 16x8 LEDs und brauche dafür im groben eigentlich nur einen µC und 
3tlc's, oder?

Am ende hänge ich einfach alle 10 µC's an einen Main-Controller, welcher 
über DMX oder Ethernet am PC hängt, das Müsste doch gehen, oder?

von Michael Z. (zahn)


Lesenswert?

Aber ich muss das ganze 3mal aufbauen wegen RGB oder?

von Falk B. (falk)


Lesenswert?

@  Michael Zahn (zahn)

>Mein Hauptproblem ist einfach, dass ich 10 bzw. 8 DMX-Unsiversen
>bräuchte. Ich habe mir gedacht einfach in jedes Panel einen AtMega
>reinzuschrauben und dann alle Panel über SPI zu verbinden.

Und was glaubst du, was du dadurch einsparst? Du musst so oder so die 
Daten irgendwo herholen. Klar kann man das auch per Ethernet machen, 
dann hat man praktisch unbegrenzte Kapazitäten, aber auch dort braucht 
man ein Programm, dass die Ansteuerung per Ethernet raushaut.

von Falk B. (falk)


Lesenswert?

@  Michael Zahn (zahn)

>Das mit den tlc5940 hört sich gut an ergo ich baue einfach 10 matrizen
>mit 16x8 LEDs und brauche dafür im groben eigentlich nur einen µC und
>3tlc's, oder?

Nö. Du baust jeweils für ein 8x8 Modul eine Elektronik, dort kann man 
ggf. einen TLCxxxx nutzen, siehe LED-Matrix.

>Am ende hänge ich einfach alle 10 µC's an einen Main-Controller, welcher
>über DMX oder Ethernet am PC hängt, das Müsste doch gehen, oder?

Und wo soll DMX die vielen Daten herholen? Es hat nur 512 Kanäle, dur 
brauchst das achtfache.

von Michael Z. (zahn)


Lesenswert?

Aber ich kann doch 8x16 mit einem µC ansteuern 8 zeilen und 3 tlc's für 
die Spalten, oder? (sry hatte oben 16x8 geschrieben)

Dann muss ich also für jedes LED Panel (8x16) ein DMX-Universum 
verwenden?

von Vlad T. (vlad_tepesch)


Lesenswert?

hat denn ein dmx-Kanal immer nur genau ein Datum?

von Michael Z. (zahn)


Lesenswert?

Vlad Tepesch schrieb:
> hat denn ein dmx-Kanal immer nur genau ein Datum?

Was meinst du damit?

von Vlad T. (vlad_tepesch)


Lesenswert?

ein dmx universum hat 512 Kanäle.
wie breit sit ein Kanal?
Kam man mit einem Kanal wirklich immer nur eine LED-Farbe ansteuern?

Dann müssen ja irgendwelche komplexen Installationen aus 100en separaten 
DMX-Bussen bestehen.

von Ernybert (Gast)


Lesenswert?

Wie wäre es mit ws2812 led's. Das sind RGB 3x8bit LEDs die über ein 
eindraht Protokoll angesteuert werden. Weiß nur nicht wie viele da 
möglich sind. 8x8 auf jeden fall+ nen attiny pro Modul. 96 stk ist kein 
Problem ^^ hab gerade sovielmal am laufen.

http://partfusion.com/wp-uploads/2013/01/WS2812preliminary.pdf

Oder google nach ws2811 oder ws2812 ( die 12 sind 2811-ICs in einer led 
integriert)

Grüße :)
Erny

von Michael Z. (zahn)


Lesenswert?

Das mit den WS2812 LEDs sieht sehr cool aus.

Ich schalte also einfach 64 dieser LEDs über Pin1 und Pin2 in Reihe und 
hau die dann in einen Controller?

von Simon B. (nomis)


Lesenswert?

Michael Zahn schrieb:
> Das mit den WS2812 LEDs sieht sehr cool aus.
>
> Ich schalte also einfach 64 dieser LEDs über Pin1 und Pin2 in Reihe und
> hau die dann in einen Controller?

Ich spiele gerade mit einem LED-Streifen mit 320 dieser LEDs 
hintereinander. Sehr cool.

Das Timing ist ein bischen lästig, läuft jetzt aber bei mir ganz gut.

Viele Grüße,
        Simon

von Michael Z. (zahn)


Lesenswert?

Naja ein DMX-Kanal besteht aus 255 Werten bei RGB Farbmischungen belegt 
man 3 Kanäle mit R, G und B dadurch ergeben sich die 16,58 Mio. Farben.

Aber man könnte theoretisch auch sagen Wert 0-85 Rot, 86-170 Grün und 
171-255 Blau. Dadurch hat man aber "nur" noch 614.125 Farben.

von Michael Z. (zahn)


Lesenswert?

@ Simon

wie steuerst du die LEDs an?

von Ernybert (Gast)


Lesenswert?

Na Vcc und Gnd an die LEDs und dann brauchst du nur eine Steuerleitung.

http://bleaklow.com/2012/12/02/driving_the_ws2811_at_800khz_with_a_16mhz_avr.html

Da gibt's links zum sourcecode in C. Aber durch die Zeiten ist die 
Anzahl an LEDs pro Reihe begrenzt. Ich würde ein ATtiny mit i2C und 8x8 
LEDs pro Modul machen und die untereinander per i2c ansteuern.

Ich Steuer momentan eine 8x12 Matrix  mit einem mega8 mit 16mhz an.
LÄUFT :) der Quellcode ist sehr gut (Header mit assemblerinline und 
Source in c)

Alles was du brauchst :)

von Simon B. (nomis)


Lesenswert?

Michael Zahn schrieb:
> wie steuerst du die LEDs an?

Ich mache im Moment Bitbanging mit einem STM32F4-Discovery. Bisher 
gelernte Lektionen:

* wenn die LEDs sich generell komisch verhalten dann sollte man doch mal 
merken, dass die einen 5V-Signalpegel haben wollen und die 3V vom 
STM32F4 nicht reichen...

* wenn im großen und ganzen alles richtig ist und nur die eine oder 
andere LED mal ungewollt aufblitzt, dann sollte man die Pulsbreite für 
das "0"-Bit verkürzen.

Mit einem mit 8MHz getakteten AVR wird das ganze vermutlich haarig, weil 
man nicht viele Takte zur Verfügung hat um auf die von den LEDs 
geforderten 800kHz zu kommen, man kann während des Updates nicht viel 
anderes machen. Insbesonders könnte paralleles Empfangen von DMX 
kritisch sein.

Ich habe noch nicht größer rumexperimentiert wie empfindlich die LEDs 
genau sind, ich will da nochmal eine Session am Oszi machen. Etwas 
Schwankungen im Timing vertragen sie schon.

Viele Grüße,
        Simon

PS: Gelegenheit live zu gucken: Donnerstag abend im Hackspace Siegen 
(HaSi)...

von Vlad T. (vlad_tepesch)


Lesenswert?

Michael Zahn schrieb:
> Naja ein DMX-Kanal besteht aus 255 Werten bei RGB Farbmischungen belegt
> man 3 Kanäle mit R, G und B dadurch ergeben sich die 16,58 Mio. Farben.
also 1 Byte pro Kanal. Und zeitliches Multiplexing ist nicht üblich?
Ich kann mir einfach nicht vorstellen, dass sich ein so eingeschränktes 
Bussystem so durchgesetzt hat.

Michael Zahn schrieb:
> Aber man könnte theoretisch auch sagen Wert 0-85 Rot, 86-170 Grün und
> 171-255 Blau. Dadurch hat man aber "nur" noch 614.125 Farben.

das musst du jetzt genauer erklären, wie du in 8 Bit Daten 19.x Bit 
Information unterbriingst.

von Michael Z. (zahn)


Lesenswert?

Naja du musst bedenken, dass sich DMX in der digitalen Lichtsteuerung 
zum steuern von intelligenten Scheinwerfern durchgesetzt hat und nicht 
zum ansteuern von Großen Matrizen. Ein DMX-Scheinwerfer konventioneller 
Art hat z.b. 5 DMX-Kanäle -> man kann an ein universum gut 100 dieser 
Scheinwerfer anschließen kann dabei ist die Kanalbelegung:
1-Modus
2-Rot
3-Grün
4-Blau
5-Geschwindigkeit

Selbst bei sehr komplexen Scheinwerfern wie z.b. einem Moving-Head habe 
ich maximal 14 DMX-Kanäle.

Deswegen hat sich DMX durchgesetzt, weil man die ewig schweren 230V 
Lastmulticorekabel durch ein einfaches 3pol. Steuerkabel ersetzt hat und 
mit diesem nun eine vielzahl an Scheinwerfern steuern kann.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

MAn könnte natürlich mit Paletten arbeiten - Dann hätte man eben 256 
Farben, was für die meisten Anwendungen ausreichen würde und die 
benötigten Kanäle mal gleich auf ein Drittel reduziert.
Bei meinem LED Matrix Beamer habe ich auch eine Art Hochsprache 
reingebaut, so dass er einfache Sequenzen per DMX Kommando aus dem ROM 
abspielt oder Lauflichter mit DMX-regelbarer Geschwindigkeit generiert.

von Michael Z. (zahn)


Lesenswert?

Also ich denke ich baue die Matrix mit den WS2812 LEDs. Ich find die 
total geil.

Kann ich 64 davon mit einem ATtiny45 steuern?
http://www.reichelt.de/Messtechnik-und-Werkstattbedarf/2/index.html?;ACTION=2;LA=3;GROUPID=536;SHOW=1

Aber wie bekomme ich die Daten von dem Programm Madrix in die ATtiny's?

von nosilent (Gast)


Lesenswert?


von Michael Z. (zahn)


Lesenswert?

@nosilent

sieht gut aus allerdings hat dann mein projekt nichts mehr mit eigenbau 
zu tun :/

kennt jemand eine möglichkeit so einen "Adapter" selbst zu bauen?
Ich weiß leider nicht wie sowas funktioniert.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Michael Zahn schrieb:
> Kann ich 64 davon mit einem ATtiny45 steuern?

Das wird mit den Pins beim Tiny45 wirklich knapp. Der hat eben nur 5 
davon zur freien Verwendung. Du wirst zwei 8 bit Schieberegister 
brauchen und hast dann gerade mal einen Pin zur Kommunikation mit dem 
Mastercontroller. Ein Tiny 2313 macht dir das etwas einfacher, der hat 
auch eine USI/UART.

Michael Zahn schrieb:
> Aber wie bekomme ich die Daten von dem Programm Madrix in die ATtiny's?

Du wirst nicht drumherum kommen, einen Mastercontroller als 
übergeordnete Instanz und DMX Interface zu programmieren. Dieser 
verteilt dann Kommandos an die einzelnen Segmente.

von Joachim R. (bastelbaer)


Lesenswert?

Hi, besorg dir den Net-IO von Pollin, mach dir die Artnet-Software drauf 
und übergib die empfangenen Daten an einen SUB-Proz der dann die 2811 
ansteuert, entweder per DMX oder z.B. SPI. Vergiss nur nicht dass du 
entsprechndes RAM (512Byte/Universum) brauchst für die Pufferung der 
Daten.

von Ern B. (ernybert) Benutzerseite


Lesenswert?

Matthias Sch. schrieb:
> Michael Zahn schrieb:
>> Kann ich 64 davon mit einem ATtiny45 steuern?
>
> Das wird mit den Pins beim Tiny45 wirklich knapp. Der hat eben nur 5
> davon zur freien Verwendung. Du wirst zwei 8 bit Schieberegister
> brauchen und hast dann gerade mal einen Pin zur Kommunikation mit dem
> Mastercontroller. Ein Tiny 2313 macht dir das etwas einfacher, der hat
> auch eine USI/UART.

Er meinte doch er möchte die WS2812'er nehmen. Da brauchst du keine 
Schieberegister oder sonst irgendwas.

Aber mit so einem kleinen Attiny45 würde ich nicht anfagen. Nimm einen 
Tiny2313 für i2c oder wenn es weniger Pins sein sollen, dann ein Tiny24.

Weiterhin musst du drauf achten, dass es nur mit 16Mhz und höher möglich 
ist. (was aber kein Problem ist, da du an die Tinys 20Mhz anklemmen 
kannst :))

Hier habe ich meine günstig bekommen:
Beitrag "[V] SMD5050-RGB-LED built in WS2811 Chip"

Du kannst dir auch mal ausrechnen, was die LEDs an zeit benötigen.
Du brauchst 1,25us pro Bit -> bei 24bit = 30us pro LED
30us * 64 LEDs = 1,92ms  bzw
30us * 64*8 LEDs (wenn du 8 Module an ein Controller hängen willst) = 
15.36 ms -> 65Hz
D.h. für 8 Module an einem Controller könntest du maximal 65 mal pro 
Sekunde deine LEDs ansteuern. -> finde ich riskant (da du ja noch 
kommunizieren möchtest) Wenn dir das von der Zeit her reicht, dann würde 
ich es so machen. Einfach 8x8 LEDs pro Modul und dann maximal 8 
aneinander.

Oder du nimmst pro Modul ein Tiny und lässt die i2C/Twi kommunizieren 
(da musst du nur mal zwecks Übertragungssgeschwindigkeit ausrechnen was 
du an Zeiten da verballerst.)

Grüße,
Erny!

von Ern B. (ernybert) Benutzerseite


Lesenswert?

Kleiner Nachtrag:

24bit/LED = 3Byte/LED -> 8x8x8 LEDs = 512LEDs = 1,5kByte

Arg knapp bei nem Tiny mit 2kB  nimm nen ATtiny84A, der hat 8kB zur 
Speicherung !

Grüße!

von Michael Z. (zahn)


Lesenswert?

Ich würde gerne pro Modul (8x8) einen ATtiny nehmen, damit ich die 
Module auch mal wahllos verteilen kann. Das wären dann 64 LEDs pro 
ATtiny 2313

Alle Attinys dann zusammen an einen Maincontroller, der sich mit der 
Stromversorgung für die LEDs in einem Rack befindet.

Ist der ATtiny 2313 dafür geeignet? Ich habe noch nie ATtinys verwendet.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Mir ist nicht ganz klar, wie ihr die WS2811/12 ansteuern wollt. 
Zeilenweise? Dann hat man also immer 8 Stück in der gleichen Farbe. Und 
dann soll der MC 8 Datenströme pro Feld generieren, eines pro Spalte? 
Bei 64 individuell gefärbten LED müsste der MC 64 Datenströme 
erzeugen...

von Michael Z. (zahn)


Lesenswert?

@Matthias
Nein die LEDs hängen alle 64 in einer Reihe die erste LED nimmt sich die 
erszen Daten, welche sie benöntigt und gibt die restlichen Daten weiter. 
Die zweite LED nimmt sich nun von den "gekürzten" Daten wieder die 
ersten und gibt den Rest weiter. Das geht immer so weiter. Das ist 
eigentlich einfach nur ein Bussystem.

von Ernybert (Gast)


Lesenswert?

Genau, ich denke das der tiny 2313 passt ^^ musst dir nur n 
kommunikationsprotokoll heraussuchen, mit welchem du die Module 
untereinander kommunizieren lässt.
Es gibt auch in Internet ne eagle Lib für die LEDs. Nur ist mir da 
aufgefallen, das die Pass zu kurz sind und man das schlecht löten kann 
^^.
Und zur Stromversorgung: Schleife die Stromversorgung nicht konsequent 
durch die leds sondern schließe jedes Modul am Anfang und am Ende an die 
Stromversorgung an. Ich hatte Probleme, dass die am Ende sonst dunkler 
sind

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Ah, ein Glück, das wenigstens einer das Datenblatt kapiert, das von 
Worldsemi benutzt ja ein lustiges Englisch, wo solche Sachen nicht gut 
rüberkommen :-P
Also besteht jeder 'Frame' für ein, sagen wir mal 64er LED Feld, aus 64 
24-bit Worten, die von einem Reset Signal gefolgt werden? Wäre dann ja 
so ein bisschen wie DMX.
Hmm, wenn man nun für jede LED 8-Bit RGB Werte im MC halten will, 
braucht man also 192 Bytes, da würde ja dann doch ein Tiny45 reichen. 
leider müsste man dann SoftUART/SPI/I2C zur Kommunikation mit dem Master 
selber machen. Der Tiny2313 hat das in Hardware, aber nur 128 Bytes RAM. 
Vermutlich wäre also der Tiny4313 der richtige - 256 Bytes RAM und 
Hardware UART/USI.

von Electronics'nStuff (Gast)


Lesenswert?

Oder einfach ein richtiger Mikrocontroller :)

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Naja, du willst ja keinen STM32 mit dieser Lulleraufgabe belästigen. So 
einer wäre aber als Master vermutlich nicht schlecht, um den Sack Flöhe 
(die 8*8 Felder) zu bändigen. Zumindest könnte der dann sogar Bitmaps 
speichern und als Kacheln an die Unterlinge verteilen.

von Ern B. (ernybert) Benutzerseite


Lesenswert?

Na das klingt doch nach nem Plan :)

von Michael Z. (zahn)


Lesenswert?

PC ---> STM32
          |
          |---> (1) ATtiny2313  --> 64x WS2812
          |
          |---> (2) ATtiny2313  --> 64x WS2812
          |
          |---> (3) ATtiny2313  --> 64x WS2812
          |
          |...
          |
          |---> (20) ATtiny2313 --> 64x WS2812


Würde so hinhauen oder?

Wenn ich aber ein von Madrix unterstütztes Protokoll verwenden würde 
müsste ich ja über ART-Net oder DMX den STM32 ansteuern aber das geht ja 
nicht mit nur 512 Kanälen. Brauch ich dann einen DMX-Splitter? Mein 
Problem ist halt wie ich mit der Software die 20 ATtinys möglichst 
einfach ansteuern kann.

von Ern B. (ernybert) Benutzerseite


Lesenswert?

Also DMX kenn ich mich nicht aus,
nimm aber anstatt des Tiny2313:

Matthias Sch. schrieb:
> Vermutlich wäre also der Tiny4313 der richtige - 256 Bytes RAM und
> Hardware UART/USI.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Michael Zahn schrieb:
> Brauch ich dann einen DMX-Splitter? Mein
> Problem ist halt wie ich mit der Software die 20 ATtinys möglichst
> einfach ansteuern kann.

Wenn du wirklich jede einzelne LED mit vollen 8 bit pro Farbe ansteuern 
willst, brauchst du pro Feld schon 192 DMX Kanäle, sind also 192*20 = 
3840 Kanäle für den Vollausbau. Ein DMX Universum kann 512 Kanäle 
ansteuern. Du benötigst also 8 DMX Universen und ein Pult, das so etwas 
kann.

Ist aber Quatsch. Sinnvoll wäre es, sich z.B. Auf Paletten und Muster zu 
verständigen, wie z.B. bei einem normalen LED Matrixbeamer. Nimm als 
Vorlage für die STM32 Software später das, was Madrix kann.
Das soll dich aber erstmal nicht stören. Diese Software ist ja nur im 
STM32, dein erstes Thema ist ja, die Felder aufzubauen. Die würde ich 
softwaremässig aber schon so konzipieren, das über USI/USART jede 
einzelne LED gesteuert werden kann.

von Hans M. (Gast)


Lesenswert?

Desswegen schlug ich ja ganz oben eine ähnliche LED vor und 5Bit je 
Farbe vereinfachen die ganze Sache auch noch ;)
Und dein(e) Eigenbau -leistung verlagert sich halt einfach von rum 
frickeln zu Systemkonzeptionierung, seiner "Verteidigung" und Umsetzung 
=> mehr entwickeln statt "basteln"  ... Macht sich dann auch gleich in 
der nächsten Bewebung, als RefProjekt gut :-D

MfG Hans

von Michael Z. (zahn)


Lesenswert?

Also 5bit je Farbe reichen ja vollkommen aus.

Und anstatt der ATtiny2313 nehme ich einfach die ATtiny4313.

Okay soweit habe ich alles verstanden mein problem ist aber immer noch, 
dass ich nicht verstehe wie der STM32 mit dem PC kommuniziert. Kann ich 
einfach alle 20 ATtiny's per i2C an den STM32 hängen?

von Hans M. (Gast)


Lesenswert?

Hm,
Also wenn du eh n RiesenDMXuniverse aufbauen willst:
USB-DMX an Pc und an jedes Panel n kleiner Kontroller mit SN75176 der 
DMX kann ( gibt's genug fertige Projekte) der dann seine Daten an die 
LEDs verteilt => kein STM nötig.
Hat auch den Vorteil das die DMX_Sklaven alle gleich sind und nur einmal 
entwickelt werden müssen und es is zu deiner Lichtanlage kompatibel.
Es böte sich auch an, das die Kontroller der Slaves USART und SPI in 
Hardware haben, dann könnt die beidseitige Kommunikation fast 
ausschließlich in den Interrupthandlern erfolgen.

MfG Hans

Ach und I2C bitte nur auf kurzen Strecken, sprich Platinen/Modulinterne 
Kommunikation ;)

von Falk B. (falk)


Lesenswert?

@  Michael Zahn (zahn)

>Also 5bit je Farbe reichen ja vollkommen aus.

Macht immer noch 15 Bit/Punkt und damit 8x8x20x2 =  2560 DMX Kanäle = 5 
DMX Universen.

>Und anstatt der ATtiny2313 nehme ich einfach die ATtiny4313.

Du konzentrierst dich auf Nebensächlichkeiten.

>Okay soweit habe ich alles verstanden mein problem ist aber immer noch,
>dass ich nicht verstehe wie der STM32 mit dem PC kommuniziert.

Da gibt es viele Möglichkeiten. USB, Ethernet, whatever.

> Kann ich
>einfach alle 20 ATtiny's per i2C an den STM32 hängen?

Theoretisch ja, praktisch nein. Schon mal an den Datendurchsatz gedacht? 
Und daran, dass I2C nicht für weit verteilte Systeme erfunden wurde?

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.