-
Notifications
You must be signed in to change notification settings - Fork 0
DMX
When controlling via DMX, a separate Arduino DMX receiver is necessary to translate the commands, due to the timing constraints of interrupt based programming for Arduino.
DMX signals are passed over an RS-485 serial connection. An Arduino can be made to read the signals, listen for changes on the appropriate channel[s], and finally pass that information to the signal generator (usually via I2C).
Since the DMX signal represents a separate circuit with presumably other electronics plugged in elsewhere, it is important to isolate it electrically from the large volume of power flowing to the lights. Should something go wrong in the LED circuit, a surge could potentially flow through the DMX components, leading to lights flickering inappropriately, or possibly destruction of connected DMX equipment.
To prevent this, power the RS-485 transceiver with a galvanically isolated power supply (e.g. 0505SC). This creates an electrically separate circuit and prevents backflowing of electricity up to 3000 kV.
Additionally, separate the incoming serial signal with an optocoupler to completely isolate the DMX data from the LED circuit.
More implementation details and a generic DMX translator are available at dmx.ino.