E' capitato di dover installare una o più teste mobili e doverle pilotare tramite dmx, tutto questo comporta dover tirare molti cavi, ma con arduino che riceve il segnale dmx via LAN e si interfaccia alle teste mobili, tutto diventa più semplice e veloce.
Tutto quello che serve è un arduino uno, una ethernet shield w5100, un cip MAX485 e una resistenza; i segnali dmx saranno inviati tramite un software preposto: Q light Controller Plus tramite l'uscita artnet.
Il collegamento è abbastanza semplice e alla portata di chiunque abbia una minima dimestichezza con la saldatura a stagno.
Il pin 4 viene collegato al pin 3 di arduino (pin output di default utilizzato dalla libreria DmxSimple)
Arduino deve essere dotato di una w5100 (non ho provato con la enc28j60) .
/****************
Inizio sketch
****************/
#include <Artnet.h>
#include <Ethernet.h>
#include <EthernetUdp.h>
#include <SPI.h>
#include <DmxSimple.h>
Artnet artnet;
byte ip[] = {192, 168, 10, 229};
byte mac[] = {0x04, 0xE9, 0xE5, 0x00, 0x69, 0xEC};
void setup()
{
Serial.begin(115200);
//Serial.begin(9600);
artnet.begin(mac, ip);
//pinMode(TXEnablePin,OUTPUT);
}
void loop()
{
if (artnet.read() == ART_DMX)
{
// print out our data
/*Serial.print("universe number = ");
Serial.print(artnet.getUniverse());
Serial.print("\tdata length = ");
Serial.print(artnet.getLength());
Serial.print("\tsequence n0. = ");
Serial.println(artnet.getSequence());*/
Serial.print("DMX data: ");
if (artnet.getUniverse()==2) {
for (int i = 0 ; i < artnet.getLength() ; i++)
{
DmxSimple.write(i+1, artnet.getDmxFrame()[i]);
/*Serial.print(i+1);
Serial.print(", ");
Serial.println(artnet.getDmxFrame()[i]);*/
}
}
Serial.println();
Serial.println();
}
}
/****************
FINE sketch
****************/
Con questo semplice sketch Arduino è in grado di ricevere il dmx (sull'universo 2 in questo caso ) e lo inoltrerà direttamente al MAX485 che potrà comandare il dispositivo DMX.