The following example illustrates the usage of the DMX shield:
// DMX Writer #include <DmxSimple.h> void setup() { Serial.begin(115200); DmxSimple.usePin(11); } long long time = 0; int step = 0; void loop() { // wait 16ms (60/s) between animation steps if (time < millis() - 16) { // this is necessary to give the interrupt routine // enough time to write the dmx messages Serial.println("stepstepstepstep"); // set time time = millis(); // set rgb DmxSimple.write(1, step); DmxSimple.write(2, step); DmxSimple.write(3, step); // increment step += 1; // handle wrapping if (step > 255) { step = 0; } } }
Um Daten von Processing an DMX zu übergeben nutzen wir ein Arduino als Brücke. Auf das Arduino setzen wir das DMX Shield und programmieren es mit dem folgenden Code:
Mit diesem Code werden alle Kommandos, welche über die Serielle Schnittstelle an das Arduino geschickt werden in DMX Nachrichten umgewandelt und über DMX verschickt. Dazu müssen wir auf der Seite von Processing folgendes Protokoll einhalten:
CHANNEL:VALUE\n
Das folgende Beispiel sender RGB Werte an eine DMX Leuchte:
Um die gesendeten Werte mit einem DMX Endgerät lesen zu können muss dieses über die entsprechende Konfiguration verfügen. Es sollte demnach die richtige Adresse und der Wertebereich bekannt sein. Wegen der Vielzahl unterschiedlicher DMX Geräte sei hier auf die Bedienungsanleitung oder das Datenblatt des jeweiligen Gerätes verwiesen. Dort finden sich Hinweise, wie sich die Adresse einstellen lässt und wie viele Kanäle ein Gerät besitzt.