Forum: Mikrocontroller und Digitale Elektronik Steuerung von parallel geschalteten LEDs


von Dennis L. (thechronic)


Lesenswert?

Hallo,

in meinem Projekt möchte ich gerne LEDs einzeln ansteuern (dimmen wäre 
auch top, ist aber nicht Pflicht) können. Dabei befinden sich jeweils 3 
LEDs auf einer Platine (diese müssen aber nicht zwingend einzeln 
gesteuert werden können, sondern die gesamte Platinen). Die Platinen 
sind an 3 Leitungen, davon 2 zu Spannungsversorgung, parallel 
angeschlossen. Ca 20-30 Platinen sollen sich an einem Strang befinden.


Die LED-Controller, welche ich gefunden habe (z.B. WS2811), müssen in 
Reihe geschaltet angeschlossen werden (Data Out -> Data in).

Gibt es vergleichbare LED-Controller welche parallel verschaltet werden 
können?

Alternativ ist mir die Lösung eingefallen, Sinuswellen verschiedener 
Frequenzen auf der "Datenleitung" auszugeben und mit Hilfe von 
Bandpassfiltern auf den Platinen bei Vorhandensein bestimmter Frequenzen 
die LEDs einzuschalten (Die Filter auf den Platinen brauchen dann 
natürlich verschiedene Durchlassbereiche).

Wäre das realisierbar?

Ich denke, die Methode mit den Bandpassfiltern ist relativ kompliziert.
Es gibt sicherlich einen besseren Weg, dieser möchte mir aber nicht 
einfallen... Hat jemand hier im Forum eine Idee? Oder kennt ein IC das 
mich hier weiter bringen würde?

Im Voraus schon mal vielen Dank für jede Antwort
Beste Grüße
Dennis

von U. M. (oeletronika)


Lesenswert?

Hallo,
deine Angaben sind etwaswidersprüchlich.

> Dennis L. schrieb:
> in meinem Projekt möchte ich gerne LEDs einzeln ansteuern (dimmen wäre
> auch top,
Was heißt für dich "einzeln ansteuern"?
Wie willst du ansteuern? Für jede LED ein Poti wäre auch eine 
"Ansteuerung.

> ist aber nicht Pflicht) können. Dabei befinden sich jeweils 3
> LEDs auf einer Platine (diese müssen aber nicht zwingend einzeln
> gesteuert werden können, sondern die gesamte Platinen). Die Platinen
> sind an 3 Leitungen, davon 2 zu Spannungsversorgung, parallel
> angeschlossen. Ca 20-30 Platinen sollen sich an einem Strang befinden.
Also hast du neben der Stromversogung genau eine BUS-Leitung.
Das ist genau das, was die LED-Steuerchips WS281x wollen.

> Die LED-Controller, welche ich gefunden habe (z.B. WS2811), müssen in
> Reihe geschaltet angeschlossen werden (Data Out -> Data in).
Ja und? Trotzdem kann doch jeder Treiber gezielt angesteuert werden.

> Gibt es vergleichbare LED-Controller welche parallel verschaltet werden
> können?
Ja, wie wäre es mit so was?
https://www.rohm.de/datasheet/BD2808MUV-M/bd2808muv-m-e
https://www.st.com/en/power-management/led7708.html
Gruß Öletronika

von Harald (Gast)


Lesenswert?

Dennis L. schrieb:
> Hallo,
>
> in meinem Projekt möchte ich gerne LEDs einzeln ansteuern (dimmen wäre
> auch top, ist aber nicht Pflicht) können. Dabei befinden sich jeweils 3
> LEDs auf einer Platine (diese müssen aber nicht zwingend einzeln
> gesteuert werden können, sondern die gesamte Platinen). Die Platinen
> sind an 3 Leitungen, davon 2 zu Spannungsversorgung, parallel
> angeschlossen. Ca 20-30 Platinen sollen sich an einem Strang befinden.
>
> Die LED-Controller, welche ich gefunden habe (z.B. WS2811), müssen in
> Reihe geschaltet angeschlossen werden (Data Out -> Data in).

Warum kannst du das In-Out Prinzip nicht nutzen?

>
> Gibt es vergleichbare LED-Controller welche parallel verschaltet werden
> können?

Wie sollte das gehen, dann bräuchten die ja Adresspins.
>
> Alternativ ist mir die Lösung eingefallen, Sinuswellen verschiedener
> Frequenzen auf der "Datenleitung" auszugeben und mit Hilfe von
> Bandpassfiltern auf den Platinen bei Vorhandensein bestimmter Frequenzen
> die LEDs einzuschalten (Die Filter auf den Platinen brauchen dann
> natürlich verschiedene Durchlassbereiche).
>
> Wäre das realisierbar?

Das hört sich sehr abenteuerlich an, für mich wäre das kein vernünftiger 
Ansatz.
>
> Ich denke, die Methode mit den Bandpassfiltern ist relativ kompliziert.
> Es gibt sicherlich einen besseren Weg, dieser möchte mir aber nicht
> einfallen... Hat jemand hier im Forum eine Idee? Oder kennt ein IC das
> mich hier weiter bringen würde?

Wenn die jeweiligen Platinen auf verschiedene Stecker gehen könnte man 
auf der Hauptplatine die Zuweisung machen, wenn es denn unbedingt so 
sein soll.

>
> Im Voraus schon mal vielen Dank für jede Antwort
> Beste Grüße
> Dennis

von Wolfgang (Gast)


Lesenswert?

Dennis L. schrieb:
> Gibt es vergleichbare LED-Controller welche parallel verschaltet werden
> können?

IRLZ34 ;-)

Den kannst du mit fast jedem GPIO ansteuern.

Was ist denn dein Problem mit den WS2811. Tut es deinem Steuergerät - 
wie auch immer das aussieht - weh, wenn es den gleichen Wert mehrfach 
hintereinander schicken muss?

von Dennis L. (thechronic)


Lesenswert?

U. M. schrieb:
> Hallo,
> deine Angaben sind etwaswidersprüchlich.
>
>> Dennis L. schrieb:
>> in meinem Projekt möchte ich gerne LEDs einzeln ansteuern (dimmen wäre
>> auch top,
> Was heißt für dich "einzeln ansteuern"?
> Wie willst du ansteuern? Für jede LED ein Poti wäre auch eine
> "Ansteuerung.
>
Ich meinte natürlich schon aus einem Programm (wahrscheinlich auf einem 
Mikrocontroller laufend) heraus einzeln ein- und ausschaltbar.

>> ist aber nicht Pflicht) können. Dabei befinden sich jeweils 3
>> LEDs auf einer Platine (diese müssen aber nicht zwingend einzeln
>> gesteuert werden können, sondern die gesamte Platinen). Die Platinen
>> sind an 3 Leitungen, davon 2 zu Spannungsversorgung, parallel
>> angeschlossen. Ca 20-30 Platinen sollen sich an einem Strang befinden.
> Also hast du neben der Stromversogung genau eine BUS-Leitung.
> Das ist genau das, was die LED-Steuerchips WS281x wollen.
>
>> Die LED-Controller, welche ich gefunden habe (z.B. WS2811), müssen in
>> Reihe geschaltet angeschlossen werden (Data Out -> Data in).
> Ja und? Trotzdem kann doch jeder Treiber gezielt angesteuert werden.
>

Ich habe keine Möglichkeit die Datenleitung an den Platinen 
aufzutrennen. Die Platinen können also nur parallel an den Bus 
angeschlossen werden

>> Gibt es vergleichbare LED-Controller welche parallel verschaltet werden
>> können?
> Ja, wie wäre es mit so was?
> https://www.rohm.de/datasheet/BD2808MUV-M/bd2808muv-m-e
> https://www.st.com/en/power-management/led7708.html
> Gruß Öletronika
Die schaue ich mir mal an, besten Dank.

von Dennis L. (thechronic)


Lesenswert?

Wolfgang schrieb:
> Dennis L. schrieb:
>> Gibt es vergleichbare LED-Controller welche parallel verschaltet werden
>> können?
>
> IRLZ34 ;-)
>
> Den kannst du mit fast jedem GPIO ansteuern.
>
> Was ist denn dein Problem mit den WS2811. Tut es deinem Steuergerät -
> wie auch immer das aussieht - weh, wenn es den gleichen Wert mehrfach
> hintereinander schicken muss?

Das Problem ist, dass ich die Datenleitung nicht an den Platinen 
auftrennen kann :/ Es sind also alle Platinen parallel an die (nur eine) 
Datenleitung angeschlossen.

: Bearbeitet durch User
von c-hater (Gast)


Lesenswert?

Dennis L. schrieb:

> Ich habe keine Möglichkeit die Datenleitung an den Platinen
> aufzutrennen. Die Platinen können also nur parallel an den Bus
> angeschlossen werden

Dann muss halt ein Protokoll auf den Bus. Wie wär's mit DMX? Oops, das 
ist ja genau für sowas (Lichtsteuerungen) gedacht. Was für ein 
UNGLAULICHER Zufall...

von Holger (Gast)


Lesenswert?

c-hater schrieb:
> Was für ein UNGLAULICHER Zufall...
Ja wirklich, unglaulich! :-)

von Dennis L. (thechronic)


Lesenswert?

c-hater schrieb:
> Dennis L. schrieb:
>
>> Ich habe keine Möglichkeit die Datenleitung an den Platinen
>> aufzutrennen. Die Platinen können also nur parallel an den Bus
>> angeschlossen werden
>
> Dann muss halt ein Protokoll auf den Bus. Wie wär's mit DMX? Oops, das
> ist ja genau für sowas (Lichtsteuerungen) gedacht. Was für ein
> UNGLAULICHER Zufall...

Einen DMX Controller (IC) mit nur einer Datenleitung konnte ich (bisher) 
auch nicht finden.

von K. S. (the_yrr)


Lesenswert?

Wie wäre es mit Dallas one wire?

DS2405 adressable switch [1]
DS2408 8-Channel, Bidirectional Port Expander [2]

gibt auch nen AD converter, kann natürlich keine LED treiben, aber vllt. 
was anderes steuern/mit Sägezahn + Komparator eine PWM erzeugen:
DS2450 1-Wire Quad A/D Converter [3]


Alternativ nimmst du einen Attiny und nen einfachen UART mit niedriger 
Datenrate, dann kannst du jedem Tiny eine einmalige Addresse ins EEPROM 
schreiben.
Protokoll wäre so einfach wie 8 bit Adresse + mehrere Byte Daten. zur 
Sicherheit solltest du einen Reset einbauen, z.b. werden nach einiger 
Zeit Inaktivität am Bus alle bisher fehlerhaft teilweise empfangenen 
Daten verworfen. CRC8 wenn es ganz sicher sein soll oder der Bus lang 
und gestört ist. Eventuell Leitungen terminieren. Wenn nur der Master 
senden kann gibts auch keine Probleme.


Wieso ist die Verdrahtung schon so festgelegt wenn die Platinen 
offensichtlich noch veränderbar sind?

Dennis L. schrieb:
> Ca 20-30 Platinen sollen sich an einem Strang befinden.
Kannst du den Strang dann nicht als Strang verschalten, Spannung wird 
jeweils and die nächste Platine durchgereicht, Daten auch? WS2811 geht 
dann problemlos? und wenn nicht gibt es einen guten Grund?

[1] 
https://www.maximintegrated.com/en/products/interface/controllers-expanders/DS2405.html
[2] 
https://www.maximintegrated.com/en/products/ibutton/memory-products/DS2408.html
[3] 
https://www.maximintegrated.com/en/products/analog/data-converters/analog-to-digital-converters/DS2450.html

: Bearbeitet durch User
von c-hater (Gast)


Lesenswert?

Dennis L. schrieb:

> Einen DMX Controller (IC) mit nur einer Datenleitung konnte ich (bisher)
> auch nicht finden.

Das liegt sicher daran, dass der Standard auf RS485 aufsetzt, was halt 
zwei differentielle Strippen erfordert.

Nun ist es aber keine Kunst, zwischen RS232 und RS485 zu wandeln. DMX 
kann also ganz leicht auch über RS232 gemacht werden, was dann natürlich 
mit einer Datenleitung auskommt.

Du wirst halt nur keine fertigen Controller dafür finden. Es ist aber 
kinderleicht, fertige µC-Projekte zu finden. Bei denen brauchst du dann 
bloß den RS485-Adapter durch einen RS232-Adapter ersetzen und schon hast 
du fertig.

Bloß die mögliche Länge des Busses verringert sich natürlich gegenüber 
dem Original (sogar recht erheblich). Und die Sicherheit gegen 
Störungen.

von Dennis L. (thechronic)


Lesenswert?

K. S. schrieb:
> Wie wäre es mit Dallas one wire?
>
> DS2405 adressable switch [1]
> DS2408 8-Channel, Bidirectional Port Expander [2]
>
> gibt auch nen AD converter, kann natürlich keine LED treiben, aber vllt.
> was anderes steuern/mit Sägezahn + Komparator eine PWM erzeugen:
> DS2450 1-Wire Quad A/D Converter [3]
>
>
Den DS2405 habe ich mir auch schon mal angeschaut. Nachteilig sind die 
fest eingebrannten Adressen. Da insgesamt ca 4000 Platinen in Einsatz 
kommen, braucht es dann relativ "viel" Speicher für die Zuordnung 
"IC-Adresse zu Platinen-Position". Wäre aber sicherlich zu verkraften


> Alternativ nimmst du einen Attiny und nen einfachen UART mit niedriger
> Datenrate, dann kannst du jedem Tiny eine einmalige Addresse ins EEPROM
> schreiben.
> Protokoll wäre so einfach wie 8 bit Adresse + mehrere Byte Daten. zur
> Sicherheit solltest du einen Reset einbauen, z.b. werden nach einiger
> Zeit Inaktivität am Bus alle bisher fehlerhaft teilweise empfangenen
> Daten verworfen. CRC8 wenn es ganz sicher sein soll oder der Bus lang
> und gestört ist. Eventuell Leitungen terminieren. Wenn nur der Master
> senden kann gibts auch keine Probleme.
>
Klingt auch nach einer guten Lösung. Ich werde mich da mal weiter 
einlesen.

>
> Wieso ist die Verdrahtung schon so festgelegt wenn die Platinen
> offensichtlich noch veränderbar sind?
>

Die Platinen sollen (ca. alle 10 cm) an drei Messingstäbe angebracht und 
verlötet werden. Daher auch der parallele Anschluss. Platinen und 
"Steuergerät" sind aber noch veränderbar.

> Dennis L. schrieb:
>> Ca 20-30 Platinen sollen sich an einem Strang befinden.
> Kannst du den Strang dann nicht als Strang verschalten, Spannung wird
> jeweils and die nächste Platine durchgereicht, Daten auch? WS2811 geht
> dann problemlos? und wenn nicht gibt es einen guten Grund?
>
Aufgrund der gewünschten Konstruktion mit den Messingstäben.
Aus technischer Sicht eher kein guter Grund... Ich würde auch lieber auf 
den WS2811 gehen.

Vielen Dank für deine Antwort und die Ideen!

> [1]
> 
https://www.maximintegrated.com/en/products/interface/controllers-expanders/DS2405.html
> [2]
> https://www.maximintegrated.com/en/products/ibutton/memory-products/DS2408.html
> [3]
> 
https://www.maximintegrated.com/en/products/analog/data-converters/analog-to-digital-converters/DS2450.html

von Dennis L. (thechronic)


Lesenswert?

c-hater schrieb:
> Dennis L. schrieb:
>
>> Einen DMX Controller (IC) mit nur einer Datenleitung konnte ich (bisher)
>> auch nicht finden.
>
> Das liegt sicher daran, dass der Standard auf RS485 aufsetzt, was halt
> zwei differentielle Strippen erfordert.
>
> Nun ist es aber keine Kunst, zwischen RS232 und RS485 zu wandeln. DMX
> kann also ganz leicht auch über RS232 gemacht werden, was dann natürlich
> mit einer Datenleitung auskommt.
>
> Du wirst halt nur keine fertigen Controller dafür finden. Es ist aber
> kinderleicht, fertige µC-Projekte zu finden. Bei denen brauchst du dann
> bloß den RS485-Adapter durch einen RS232-Adapter ersetzen und schon hast
> du fertig.
>
> Bloß die mögliche Länge des Busses verringert sich natürlich gegenüber
> dem Original (sogar recht erheblich). Und die Sicherheit gegen
> Störungen.

Die Möglichkeit DMX über RS232 kannte ich noch nicht. Auch hier werde 
ich mich mal weiter einlesen.
Vielen Dank für den Hinweis!

von K. S. (the_yrr)


Lesenswert?

Dennis L. schrieb:
> Die Möglichkeit DMX über RS232 kannte ich noch nicht. Auch hier werde
> ich mich mal weiter einlesen.
ist quasi was ich vorgeschlagen hatte, nur in besser. ob du nun den µC 
direkt den Bus Treiben lässt oder einen RS232 Treiber nimmst ist erstmal 
unwichtig.
je nach Länge/ kapazitiver Last des Strangs, Verzweigung und Datenrate 
musst du dann über richtige Treiber oder eventuell terminierung 
nachdenken.

Ob ud nun ein Projekt mit DMX auf deine Bedürfnisse abänderst oder 
selbst ein Protkoll entwirfst musst du dir selber überlegen.

Dennis L. schrieb:
> Da insgesamt ca 4000 Platinen in Einsatz kommen,

Da solltest du vor allem erstmal auf den Preis und Aufwand achten, 
4000µC einzen zu programmieren (und jedem eine eindeutige Adresse zu 
geben und es hinterher auch dort einzubauen) könnte lange dauern.

du könntest das erste Modul anlöten, dann den Hauptcontroller 
aktivieren, der verteilt dem Modul eine Adresse, das Modul verlässt dann 
den "warte auch adresse" Modus.

die Adresse müsste dann mindestens 12 bit sein, ich glaube nicht dass 
DMX das ünterstützt. oder hast du viele parallele Bussysteme mit je 
20-30 Teilnehmern? dann hättest du 130-200 dieser Stränge, das wird kaum 
als ein einziger Bus gehen, so viele Verzweigungen werden zu Problemen 
führen (RS232 erlaubt eigentlich keine).

-> was sind die Abmessungen des Projektes
   -> wie lang ist ein Strang (in m)
   -> wie werden die angeordnet? Skizze wäre gut
-> muss es ein Hauptcontroller werden?
   -> Wie schnell muss aktualisiert werden? (in Sekunden)

=> das Bestimmt dann wesentlich wie du die Verschalten kannst, mehrere 
MHz auf sternförmigen Leitungen und über mehrere 10m ist nicht machbar.

nehmen wir mal 16 bit gesammt Daten (Plus start/Stop bit), 100 
Teilnehmer und 9600 baud (sehr langsam) an, hast du ca. 5hz 
Aktualisierungsrate (Wenn alle aktualisiert werden).
mit 115200 baud wären das ca. 60Hz.

: Bearbeitet durch User
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.