DMX512 (Digital MultipleXed) is an agreement over the connection between lighting controllers, dimmers,scrollers, scanners, etc..
The electronic foundation for DMX is RS 485.
To send dmx from Arduino we use a driver chip like MAX485 or 75176 (the 75176 is just a cheaper version of the Max 485). The use of these drivers is a common way of transmitting and receiving dmx. You will find them in almost every dimmer/scroller etc.
The following explanations and examples are made for arduino Software 004 and 005. They will not work with other Versions, because of the change in the 'delayMicroseconds'.
-However in the code example section you will find a nice looking piece of code from two great Hungaryn guys (Peter Szakal and Gabor Papp ( http://nextlab.hu ) which works for arduino 008, at least.
-Since evolution keeps going on, here is a very nice code, working for a Duemilanove (tested on 013 and 017), thanks to Jason Ditmars
Downloads:
feel free to correct my spelling mistakes
(edited by tomek ness (k3/fhp))
DmxSimple is a new library from Tinker.it! for outputting DMX signals. It is compatible with all recent versions of Arduino. By handling DMX frames in the background, DMX can controlled in a similar way to analogWrite.
DMXSerial is a proof of concept on how to send DMX data by just using the hardware serial interface and no assembler code.
- A great tutorial on how to receive DMX Singals with your arduino here, developed by Max Pierson.
- A very simple DMX receiver, based upon the DMX Receiver C code by Henne Henne's Site, German. Slightly adapted for Arduino, the code allows receiving DMX with an Arduino without using Timer/CTC stuff. Read more >>