Introduction: DMX Controlled EL Wire Ceiling
This project is a DMX controlled EL Wire ceiling. It is made of 30 EL Wire (which means Electroluminescent Wire) in 3 different colours, totally independent. It includes a standard DMX protocol, to be compatible with any light control software.
Step 1: Materials
The materials needed are principally electronics components. Here is a list of all that has been used to complete this project :
- An Arduino Mega 2560
- A power supply for the Arduino (between 9V and 12V)
- A DMX input (and optionally a DMX output if you are not at the end of the DMX line)
- A MAX485 to convert DMX signal (RS-485) in TTL Serial readable by the Arduino
- A little switch (see DMX step to understand why)
- 3x inverters specialised for EL Wire, able to drive enough EL Wire at the same time (100 meters each in this case)
- 30x 470 ohms resistors
- 30x MOC2023 optotriacs
- 30x 1k ohms 1W resistors
- 30x BTA16 triacs
- As much EL Wire as you want !
Now that everything is here, let's get started !
Step 2: Receiving DMX Orders
DMX is a very common protocol in light control. This EL Wire project uses this standard to be compatible with any DMX controller.
First, we need to receive orders from DMX interface of the DJ or the light controller.
To achieve this goal, a MAX485 makes the conversion between RS-485 logic levels used by DMX and TTL logic levels used by the serial interface of the Arduino. Here, the MAX485 is wired only to receive orders, it is a DMX device only and it will not control anything else.
The RX pin needs to go on the Arduino TX pin but it is very useful to put a switch between them. Indeed, when you will try to upload your code in the Arduino, TX pin needs to be disconnected from DMX line, otherwise it will crash. The same issue can occur when the Arduino is booting, so just switch on the connection once everything is ready.
To allow DMX devices to be chained, an other DMX output has been soldered in parallel of the input (not on the schematic).
Step 3: Power Control of EL Wire
EL Wire control is not as easy as LED because of its power supply. It needs to be powered with special power supply, delivering something about 120 VAC at 2kHz.
Relays could have been used for this homemade sequencer, but it was not very interesting because of the switching time and the sound.
The solution is to use triacs, with optotriacs for isolating. I realised this circuit on homemade PCB, but you can order them to a professional or just solder it manually, but it will be a little bit difficult.
I decided to make 3 PCBs controlling 10 outputs each, but it can be adapted.
Step 4: Wiring
Connecting all the cards is quite long and repetitive. To be more efficient, I have used ribbon cable between the Arduino and each power board.
There are male headers in the center of each board. Then, I have soldered female headers on one side of the ribbon cable, and male headers on the other side to plug directly in the Arduino. Each EL Wire comes in a terminal screw block on the power boards.
Everything is screwed on a wooden board, and this board is fixed in the ceiling.
Step 5: Installing EL Wire
The 30 pieces of EL Wire are tied to the ceiling, but also in a kind of big light well.
First, in the light well, each piece of 9 meters long EL Wire is stapled. Because it is made of wood, a hand-held stapler was sufficient. There are 10 pieces, spaced of 10 cm.
The 20 other pieces of EL Wire are disposed in star from the light well. They are all tied to the ceiling thanks to zipties, because metal bars run through the entire room. This arrangement allows to have less cables to join the boards.
Step 6: Coding
To allow communication using the DMX protocol, I have used DMXSerial library, available here.
The rest of the code has been developed especially for this project, but it is totally adaptable. Feel free to use it and to modify it as you want !
Step 7: Enjoy It !
To use this system :
- wire up and upload the code
- put the switch off
- plug in your DMX controller in the DMX input
- switch on the power supplies
- put the switch on
- send your DMX orders
- enjoy it !
Step 8: [BONUS] Not Using Arduino Mega2560
My first idea was to create all PCBs for this project. As a consequence, I have created a schematic and a PCB layout which includes everything needed.
On this board, you can find an AtMega328P which is the same as an Arduino Uno. However, it does not have enough outputs, so I have added 3 MCP23017. They are GPIO extenders, communicating with I2C protocol. Each MCP23017 can add 16 new outputs, but it was easier to have one component for each power board.
In order to use this configuration, you should use the "ElWireMCP" library based on Adafruit MCP23017 library, instead of the "ElWireMega" library from my previous code.
Step 9: Conclusion
I hope you will enjoy this project, and use it in your own way !
Participated in the
Make it Glow Contest 2018
4 years ago
Reply 4 years ago
Thank you for your comment :)
For the special functions, it is just to prevent some work if you want to have some simple functions already available. But I agree that it is not essential.
If you take the code as it is, it will read addresses from 1 to 64. However it could be easily adaptable to begin from an other DMX address in the "main.cpp". It i even possible to add some physical switches, to choose the first address. It is a good idea for future improvement, maybe I will add it for the next version !
4 years ago
Whooooooaaa. Looks like something out of a videogame! Really well done. :D
Reply 4 years ago
Thank you very much ! I'm very happy you like it :D