DMX512 Switch

DMX512 SwitchÜberblick

Dieses Projekt realisiert ein DMX512-kompatibles Schaltmodul. DMX512 ist ein weit verbreiteter Standard im professionellen Beleuchtungsgewerbe in Theatern und Diskotheken. Das Schaltmodul kann in ein bestehendes DMX-Konzept mühelos eingebunden werden. Wie andere DMX-Geräte auch wird es einfach in die Bus-Leitung eingeschleift. Als Ausgänge liefert das Modul 3 Steckdosen (2x Schutzkontakt, 1x Kaltgeräte-Anschluss) sowie einen Relais-Ausgang zum Steuern einer Nebelmaschine.
Sinn des Projektes ist es, eine Nebelmaschine sowie mehrere 230V-Verbraucher (UV-Leuchtstoffröhre, Stroboskop, ...) per DMX fernzusteuern. Es nutzt den Mikrocontroller ATMEL Mega8 und ist vollständig in Assembler programmiert. Eine dreistellige 7-Segment-Anzeige erlaubt die Einstellung der DMX-Adressen für die Schaltfunktionen, sowie den Schwellwert, ab dem das Umschalten ausgelöst werden soll.

Hardware

Die Schaltung ist auf einer doppelseitigen Platine aufgebaut. Herzstück ist der Mikrocontroller im QTFP-Gehäuse. An ihn angeschlossen sind die 3 Solid-State-Relais, der Steuertransistor für das Relais, die drei Taster sowie der Zeit-Multiplex-Bus zur Ansteuerung der Anzeige. Diese besteht aus drei 7-Segment-Anzeigen und einer Leiste von 6 einzelnen LEDs, die Informationen zur Bedienung des Gerätes liefern. Da bei jeder 7-Segment-Anzeige zusätzlich auch der Dezimalpunkt einschaltbar sein soll, ergibt sich eine Summe von 3 x 8 + 6 = 30 LEDs. Diese einzeln an den Mikrocontroller anschließen zu wollen ist aufwändig und unpraktisch. Daher habe ich das Zeit-Multiplex-Verfahren zur Hilfe genommen.

Nun werden nacheinander die Anzeigen mit Strom versorgt und über den Multiplex-Bus die jeweiligen LEDs zum Leuchten gebracht. Danach ist diese Anzeige wieder dunkel und die nächste Anzeige wird bestromt. Durch die Trägheit des menschlichen Auges wird das Flackern an einer bestimmen Frequenz nicht mehr wahrgenommen. Damit ist die komplette Anzeigensteuerung mit 12 Leitungen möglich.

Der Schaltplan kann hier als PDF herunter geladen werden, ebenso hier der Quellcode in Assembler. Ein kleines Video von der Laufschrift gibt es hier.

Software

Die Software ist vollständig in Assembler geschieben und modular aufgebaut. Den Takt für den Multiplex-Betrieb der Anzeigen wird durch den Interrupt eines Timers realisiert. Dabei werden die Bits für die einzelenen LEDs an vorher festgelegten Adressen im RAM erwartet. Ist der Timer einmal gestartet, muss der Progammierende sich nicht mehr um die Anzeige kümmern, sondern schreibt einfach die Daten in den RAM. Die Prorität des Anzeige-Timers ist dabei die niedrigste, so dass Verzögerungen durch ihn nicht hervorgerufen werden können. Eine kurzfristige Variation der Multiplex-Frequenz ist sicher nicht bemekbar.

Zum Empfang des DMX512-Signals ist glücklicherweise die serielle Schnittstelle nutzbar, die auf dem AT Mega8 integriert ist. Mit einigen Tricks können die Start-Sequenz erkannt sowie Fehler erkannt werden. Das bedeutet, dass nach der Initialisierung der Interrupt der seriellen Schnittstelle das aktuell empfangene Byte bereits liefert und ein Zustands-Automat über die Reaktion entscheiden kann. Bei der aktuellen Anwendung wird jedes Byte gezählt und mit der eingestellten DMX512-Geräte-Nummer verglichen. Ist das Ergebnis dieses Vergleichs positiv, so ist der Inhalt des Bytes für eine der drei 230V-Steckdosen oder das Relais bestimmt. Das so ermittelte Datum wird nun mit dem eingestellten Schwellwert für den betreffenden Aktor verglichen und wenn nötig der zugeordnetet Portpin gesetzt.

Die Dokumentation ist noch nicht ausgereift, wer das Projekt nachbauen möchte, wende sich bitte an mich.

Achtung: Es sei auf die einschlägigen VDE-Bestimmungen hingewiesen. In dieser Schaltung wird Netzspannung verwendet. Ich distanziere mich ausdrücklich von jeder Haftung für alles! Benutzung auf eigene Gefahr.

 


Valid XHTML 1.0!
letztes Update: 20.09.2009 19:03
Get Firefox!