...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
// DMX Bridge // // #include <DmxSimple.h> #define NUM_OF_VALUES 2 String incomingString = ""; int incomingValues[NUM_OF_VALUES];Write messages in the form of "2:127\n" to forward // the to the connect DMX device. #include <DmxSimple.h> void setup() { Serial.begin(9600); DmxSimple.usePin(11); } void loop() { readSerial(); setDMX(incomingValues); } void readSerial() { if (Serial.available() > 0) { incomingStringint channel = Serial.readStringUntil('\n:'); split(incomingString, incomingValues, NUM_OF_VALUES); } } void split(String inputString, int returnData[], int numOfValues) { int index = 0; int lastPos = 0; for (int i = 0; i < inputString.length(); i++) { if (inputString.charAt(i) == ',' && index < numOfValues) { String tempStr = inputString.substring(lastPos, i - 1.toInt(); int value = Serial.readStringUntil('\n').toInt(); Serial.print("set "); Serial.print(channel); Serial.print(" to "); returnData[index] = tempStr.toInt(); index++; lastPos = i + 1Serial.println(value); } } } void setDMX(int values[]) { DmxSimple.write(values[0]channel, values[1]value); } } |
Mit diesem Code werden alle Kommandos, welche über die serielle Schnittstelle (siehe Serielle Kommunikation) 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.
...