DMX512-RGBWLED PDF Drucken E-Mail

Um einen RGB-LED-Scheinwerfer steuern zu können, werden insgesamt drei PWM-Leitungen mit möglichst hoher Frequenz benötigt. In diesem kurzen Artikel wird eine Firmware vorgestellt, welche aus Hendrik Hölschers DMX-Empfangsbibliothek, Andreas Müllers LED Dimmer und meinem eigenen Code eine komplette LED-Scheinwerfer-Steuerung darstellt, die insgesamt vier hochfrequente PWM-Ausgänge zum Treiben von LEDs bereitstellt. Zusätzlich wird über eine Dimmerkurve das nichtlineare Verhalten der menschlichen Augen kompensiert, sodass ein hochqualitativer RGB(W)-LED-Dimmer möglich wird.

 

Die Kosten bleiben durch Verwendung des kleinen ATtiny2313 Mikrocontrollers von Atmel sehr gering. Aufgrund der geringen Anzahl an I/O-Pins des ATtiny2313 wird die DMX-Startadresse über einen Taster und den DMX-Kanälen 511 und 511 eingestellt. Zwei LEDs zeigen zudem den Betriebszustand an.

 

Da der DMX-Empfang und die Hardware-PWM kaum Speicher benötigen, ist im Controller noch einiges an Speicher für eigene Weiterentwicklungen frei. Es können z.B. automatische Abläufe, Sound2Light oder ein zusätzlicher Dimmerkanal einprogrammiert werden. Diese Funktionen sind allerdings für eine reine DMX-Steuerung und dem entsprechend mächtigen Steuerprogramm nicht nötig, wenn nicht sogar überflüssig, da sämtliche Effekte in der Regel vom Lichtprogramm übernommen werden.

 

 

Firmware:

Die Firmware kann zusammen mit dem Sourcecode im Downloadbereich heruntergeladen werden. Die Firmware bietet derzeit folgende Funktionen:

  • DMX512-Eingang
  • 4-Kanal Hardware-PWM für Rot, Grün und Blau und z.B. Weiß
  • Tastereingang für Einstellen der DMX512-Startadresse über DMX-Kanäle 511/512
  • 2 LED-Ausgänge für Statusanzeige (Bereitschaft und DMX-Empfang)
  • freie I/Os für eigene Erweiterungen (darunter zwei AD-Kanäle)
  • noch 25% freier Platz im Chip für eigene Entwicklungen
  • Einstellbare Dimmerkurven in der Header-Datei des Sourcecodes (Code muss rekompiliert werden)

 

Es kann derzeit zwischen insgesamt drei Dimmerkurven gewählt werden: Linear und zwei logarithmische Varianten. Variante 2 der Logarithmuskurve dürfte für die meisten LEDs passen. Die lineare Kurve kann für das Steuern weiterer Hardware per PWM oder für eine mögliche D/A-Wandlung benötigt werden:

rgbw_dimmerkurven

 

Einstellen der DMX-Startadresse:

Die Startadresse wird von den beiden letzten DMX512-Kanälen eingelesen, sobald der Taster an PD3 (bzw. PD6 im älteren Layout) längere Zeit gehalten wird. Um den Controller auf Startadresse 7 einzustellen, muss Kanal 511 auf 0 und Kanal 512 auf 6 eingestellt werden. Möchte man Adresse 400 einstellen, muss Kanal 512 auf 144 und Kanal 511 auf einen Wert größer 0 eingestellt werden. Die Adresse wird im EEPROM abgespeichert, sodass auch nach einem Neustart und Ausschalten des Gerätes die Adresse gespeichert bleibt.

 

 

Schaltplan:

Hier ein kleiner Schaltplan, um die Funktion zu verdeutlichen. Es können über MOSFETs beliebig viele RGB(W)-LEDs oder entsprechend einzelne R-,G-,B-(,W-)LEDs angeschlossen werden

DMX512RGBSteuerung_thumb

 

Schaltplan ist im Downloadbereich im Eagle 5.6.0-Format herunterladbar.

 

PCB:

Dank des Users "Sascha G" aus dem PC_DIMMER Forum, gibt es nun auch ein PCB zum RGBW-Dimmerpack. Das Eagle-Projekt samt Schaltplan kann hier heruntergeladen werden: Download

dmx_rgbw_pcb