Dmx2rgb
dmx2rgb Status: stable | |
---|---|
Beschreibung | DMX empfangen, LEDs dimmen! |
Autor: | krisha, schinken |
PayPal |
Beschreibung
Um diverse LED-Stripes in unserer Lounge steuern zu können, wurde eine Platine benötigt. Hierfür Bot sich DMX an, da schon diverse LED-Bars & Movingheads vorhanden sind und somit der Bus mitgenutzt werden kann. Ausserdem bietet dieser Bus die Möglichkeit später mehrere dmx2rgb-Platinen einzubinden. krisha entwickelte hierfür in EAGLE eine Platine in der Größe 95x90mm. schinken schrieb hierfür in kurzer Zeit eine Software für den µC und richtete hierfür einen Raspberry Pi mit OpenLighting ein. Der Sourcecode und die EAGLE-Dateien stehen hier zur Verfügung: dmx2rgb
Hardware
Story
Die Hardware wurde auf einer eigenen Platine aufgebaut, da der Umfang für ein Breadboard zu groß gewesen wäre. Um die eigene Platine herzustellen, wollten wir diese zuerst selber ätzen. Nachdem das hierfür benötigte Material allerdings leicht alt war (es war wortwörtlich steinhart), entschieden wir uns dafür die Platine so zu bauen, dass wir sie selbst fräsen können und haben dafür möglichst wenige Durchkontaktierungen verwendet, sowie eine Massefläche auf der Oberseite der Platine plaziert. Nach etlichen Fräsversuchen und dem mehrmaligen Kauf neuer Fräser sowie darauffolgendem Fehlschlag, entschieden wir die Platine fertigen zu lassen. Nach **nur 3 Tagen** hatten wir eine geätze Platine **mit Durchkontaktierungen** in der Hand.
Aufbau
Platine
Für die Herstellung der Platine wurde der Shop pcb-devboards gewählt, da dort Platinen für wenig Geld im Nutzen gefertigt werden. Durch diesen Shop ergab sich auch die ungewöhnliche Platinengröße. Außerdem liefert dieser Hersteller Platinen mit chemisch hergestellten Durchkontaktierungen. Auf einen Lötstopplack muss allerdings verzichtet werden.
DMX
Der DMX Bus basiert auf RS-485. Um die differentiellen Pegel zwischen -7V bis +12V zu verarbeiten, wurde ein SN75176B verbaut. Dieser Chip wandelt die Differenzialspannung auf TTL Pegel. Hierbei ist unbedingt auf die Reihenfolge der Eingänge zu achten (DMX Hot, DMX Cold), damit das Signal nicht invertiert am Prozessor anliegt.
Control & Accessoires
Das TTL Signal wird mit einem Atmega 168P über den eingebauten UART empfangen. Am µC befinden sich zudem 3x LEDs zur Statusanzeige, sowie 8 Lötbrücken um die DMX Adresse zu vergeben. Für die Spannungsversorgung der Platine wurde ein einfacher 78L05 eingesetzt. Der Prozessor wird über einen 16 MHz Quarz in Schwingung versetzt, damit auch die 250kHz von DMX ohne Abweichungen möglich sind. Die Ausgangstreiber sind über i²c mit 400kHz angebunden.
Output
Der I²C Bus ist mit 3 PWM Chips von NXP verbunden. Diese ICs erzeugen 16 unabhängige PWM Kanäle. An diese sind Dual N-FETs als Treiber angeschlossen. Diese FETs können bis zu 5A Peak und sind eigentlich für unseren Anwendungsfall und die Leiterbahnbreite zu groß gewählt. Aufgrund von 2 FETs in einem Gehäuse und dem günstigen Preis wurden sie dennoch verbaut. Alternativ kann hier aber auch ein schwächerer FET eingesetzt werden (kompatibel: IRF7301). Es empfiehlt sich die 12V Leiterbahn zu verstärken, z.B. durch Auftragen von Lötzinn oder einem seperaten Kabel, sollte etwas mehr Strom benötigt werden. Für den I²C Bus empfiehlt es sich bei 400kHz jeweils einen 1,5k Ohm Pullup zu verwenden.