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!
Logic level FET an den Arduino und selber die PWM rechnen und stellen lassen. Oder gibt es dafür keinen fertigen Sketch? :-)
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.
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.
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 .
Sone LEDwarrior Platine soll 60€ Kosten, da wird der TE bei 64 Kanälen aber sehr arm.
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 ?!?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.