Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejava
titleArduino DMX Bridge
collapsetrue
//DMX Bridge

#include <DmxSimple.h>

#define NUM_OF_VALUES 2

String incomingString = "";
int incomingValues[NUM_OF_VALUES];

void setup() {
  Serial.begin(9600);
  DmxSimple.usePin(11);
}

void loop() {
  readSerial();
  setDMX(incomingValues);
}

void readSerial() {
  if (Serial.available() > 0)   {
    incomingString = 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);
      returnData[index] = tempStr.toInt();
      index++;
      lastPos = i + 1;
    }
  }
}

void setDMX(int values[]) {
  DmxSimple.write(values[0], values[1]);
}

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.

...