Forum: Mikrocontroller und Digitale Elektronik PWM LED Treiber + Mosfet über ArtNet DMX512


von Peter M. (hames)


Lesenswert?

Hallo,

ich plane gerade eine DMX Licht Steuerung, bei der per LAN über das 
ArtNet-Protokoll ein Arduino mit Ethernet-Shield angesprochen werden 
soll.

Der Arduino steuert dann per I2C oder SPI mehrere PWM Treiber,
z.B. TLC5940 http://www.ti.com/lit/ds/symlink/tlc5940.pdf

Da 3W LEDs verwendet werden möchte ich Mosfets (z.B. IRF7313) mit dem 
PWM Treiber ansteuern. Probleme sehe ich jetzt aber, da der TLC5940 eine 
Konstantstromquellen als Ausgang hat. Also nicht gerade geeignet um 
Mosfets zu betreiben. Es gibt zwar einige Quellen im Internet wo das mit 
Mosfet und Pullup gebaut wurde...

https://de.scribd.com/document/250703218/Lightive-Eviroment-Aware-Lighting-System-Project-Report-Louis-Christodoulou

... aber ich kann mir nicht vorstellen dass dann die Helligkeit linear 
geregelt wird. Wenn man es mit Transistor schaltet scheint es auch nicht 
gut zu funktionieren.

Plan B:
Ich nehme einen 10-bit PWM Treiber (der linear das Tastverhältnis 
einstellt) und steuere damit einen Mosfet. Die 8-bit DMX 
Helligkeitswerte rechne ich mit Tabelle in einen 10-bit logarithmischen 
PWM Wert um.
Leider finde ich keinen geeigneten PWM IC (i2c oder SPI) >8bit.

Hat hier jemand Erfahrungen, bzw. Alternativvorschläge für eine wirklich 
gute Lösung?

Grüße!

von Dietmar (Gast)


Lesenswert?

Logic level FET an den Arduino und selber die PWM rechnen und stellen 
lassen. Oder gibt es dafür keinen fertigen Sketch?  :-)

von Peter M. (hames)


Lesenswert?

Ginge, aber ich hätte gerne 64++ Kanäle ;)

von Beaker (Gast)


Lesenswert?

Ich nehme an, jeder PWM Kanal entspricht einem Kanal im DMX512?
>(Chuck Norris hat übrigens DMX1024)
Jetzt natürlich die Frage, MUSS es Arduino sein? (nehme an das "ja")
Sonst könntest du auch z.B. einen ATMega 324 behmen, den gibts auch im 
"menschfreundlichen" DIP Gehäuse und der hat jede Menge Pins.
Dann setzt du nicht direkt die Hardware PWM ein, sondern Bit Angle 
Modulation. Ist etwas Brainfuck, wenn man es das erste Mal 
implementiert, bietet aber die Möglichkeit, softwarebasiert, mit mäßig 
CPU Zeit viele Kanäle zu stellen.

Die Gretchenfrage wird folgender Zusammenhang sein:
Ich sag mal, die Ansteuereung der LEDs sollte vielleicht bei 120Hz für 
einen kompletten BAM-Zyklus liegen. Daraus ergibt sich die Dauer eines 
einzelnen Pulses. DMX läuft bei 250kBit/s. Kann bei Anwendung von BAM 
und z.B. 15 Kanälen pro Gerät sichergestellt werden, dass der µC kein 
Byte verpasst?

Mir geht gerade durch den Kopf, einfach einen Arduino Nano zu nehmen, 
und den ohne das Ardu-Framework einfach als AtMega -Evalboard zu nehmen.

von Peter M. (hames)


Lesenswert?

Ich würde gerne den Arduino mit Ethernet nehmen, da es dafür schon eine 
Library für einen Artnet Node gibt und ich diese schon getestet habe. 
Außerdem ist es ziemlich günstig.

Alternativ habe ich noch einen esp8266 für den es auch schon genügend 
Starthilfen gibt. Dann könnte man das ganze ja auch über WLAN machen.

Aufgrund der Rechenleistung bei so vielen Kanälen dachte ich auch es 
wäre besser auf externe PWM Generatoren zu setzen.
Wenn ich dafür jetzt einen weiteren Microcontroller mit vielen Ausgängen 
nehme bräuchte ich auch 2 oder 3 und hätte auch nicht weniger Aufwand 
und Kosten.
Ich habe jetzt mal einen PCA9685 bestellt und probiere aus ob das mit 
i2c und dem Ethernet Shield funktioniert.

Da der PCA9685 400kHz i2c kann müsste es mit dem Arduino Uno bei 16 Mhz 
mit 400 kbit/s (http://playground.arduino.cc/Main/SoftwareI2CLibrary) 
reichen, zumal ich nicht alle 512 Kanäle verwende.
Leider kann ich noch nicht abschätzen wie viel Leistung das Ethernet 
Shield mit der Artnet library verbraucht. Der Look-Up Table für die 
12-bit PWM Werte wird ja auch noch etwas Rechenzeit verbrauchen ...

Eine Idee für die TLC5940 Konstantstromtreiber + Mosfet kam mir noch:
Wenn ich an die Ausgänge je eine LED und den Mosfet hänge, müsste der 
Treiber doch den Strom richtig messen und somit sein PWM Signal korrekt 
einstellen können. Der Mosfet würde dann einfach mit geschaltet werden.

von Wayne (Gast)


Lesenswert?

Kauf Dir ein paar ledwarrior4 bei Code Mercenaries in Berlin-Schönefeld
Die können dmx Dali Bluetooth usw.sind spread spectrum flickefree und 
haben jeweils 4 Kanäle mit bis zu 1A Konstantstrom frei programmierbar .

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Sone LEDwarrior Platine soll 60€ Kosten, da wird der TE bei 64 Kanälen 
aber sehr arm.

von Axel R. (Gast)


Lesenswert?

Beaker schrieb:
> Ich nehme an, jeder PWM Kanal entspricht einem Kanal im DMX512?
>>(Chuck Norris hat übrigens DMX1024)

Nochmal: Wieiviel Kanäle hat Chuck Norris ?!?

von Peter M. (hames)


Lesenswert?

Habe es mit dem TLC5940 ausprobiert, aber Mosfets an den Ausgängen sind 
keine gute Lösung. Habe den direkten Vergleich mit LEDs an vier 
Ausgängen gemacht. Den DMX Wert (8-Bit) habe ich entweder in 12-Bit 
linear ansteigend umgerechnet oder aus Tabelle 12-Bit logarithmisch 
ansteigend gelesen, also so:

Mosfet + linearer
Mosfet + log
nur LED + linear
nur LED + log

Mit Mosfet funktioniert es zwar, aber die Helligkeit lässt sich nicht 
wirklich linear regeln, auch nicht mit logarithmischem PWM. Als weiteres 
Problem sehe ich bei höherer LED Leistung die Schaltzeiten. Zwar habe 
ich die Frequenz auf 244 Hz gesenkt, aber mit den 120 mA Maximalstrom 
und noch weniger Strom am Pull-Up dürfte da einiges an Zeit 
zusammenkommen in der der Mosfet nicht voll durchsteuert und sich 
erwärmt.

Fade ich die LED normal mit logarithmischem Anstieg sieht es eigentlich 
am besten aus (also halbe DMX Faderstellung, halbe Helligkeit). Erst 
dachte ich der TLC5940 regelt die Helligkeit von 0-4095 linear und man 
muss nichts umrechnen, weil im Datenblatt von "grayscale-pwm" die Rede 
ist. Aber es scheint doch nur das Tastverhältnis/Duty-Cycle gemeint zu 
sein mit dem die Konstantstromquelle an- und ausgeschaltet wird.

Morgen probiere ich den PCA9685 aus. Wobei die Mosfet Ansteuerung da 
auch kritisch ist, da er ja nur 10mA liefert. Das heißt später wird 
vielleicht doch noch ein Treiber benötigt.
Aber das wurde ja hier auch schon gefragt:
Beitrag "PCA9685 + Leistungs-MOSFET"

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.