DMX Controlled EL Wire Ceiling

3,408

41

4

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.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

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 !

Make it Glow Contest 2018

Participated in the
Make it Glow Contest 2018

Be the First to Share

    Recommendations

    • CNC Contest

      CNC Contest
    • Make it Move

      Make it Move
    • Teacher Contest

      Teacher Contest

    4 Discussions

    0
    None
    raphan

    9 months ago

    Great ! That's not a bad idea to assign DMX channels to special functions but any "real" console is able to manage this by itself. I don't see any addressing way, does that mean it is always 001 or is there a special functions that reads DMX address from the controller during startup ? (which isn't easy to manage with many DMX fixtures)
    1 reply
    0
    None
    Lucamionnetteraphan

    Reply 9 months 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 !

    0
    None
    jessyratfink

    9 months ago

    Whooooooaaa. Looks like something out of a videogame! Really well done. :D

    1 reply