led strip and DMX

hello everybody. I need, for a coming project, to control the dimming of 10 meters white led strips. each meter would be an independent pixel. I looked at RGB dmx strips but they are expensive and I won't even use color... So I thought I could purchase simple white led strips and make them dmx with kind of drivers each meters) even if I can get a dmx interface quite easily, I can't find cheap single DMX chanel driver. So my question is: can I do that with arduino? thank you for giving me your opinion.

Do you really want to use DMX or, do you just want to color change LED strips?

The reason I ask is that DMX would seem to imply a controller and perhaps remote operation to a stage. I am assuming here that you are trying to decode an incoming DMX signal and then decode it to change and/or dim your strips.

A bit more information would be appreciated and would be most useful.

There are DMX shields for Arduinos and here are a couple http://www.arduino.cc/playground/DMX/DMXShield http://shop.trinculosattic.com/products/the-guildenstern-arduino-dmx-shield

Thanks Rederikus.

Sorry for the lack of details, let me explain my need a bit more. This project is the design of a lighting product. The object shape is done and we have to embed the electronic part.

The product can be seen as a wall mounted sculpture. 10 parts of the sculpture are translucent and will contain led strips.(1meter each time) Led strips will be white only , no RGB is needed here. the wall is really large and I need to control the lighting of all the strips segments from a single wiring

So imagine the setup is 10 segments of 1 meter long white led strip. each meter beeing dimmed independantly.

DMX would be great because lighting patterns are done in max msp and we have a dmx usb pro device at our disposal. But the cheapest solution will be the best, even if we have to send data a different way....

If you are doing the same pattens over-and-over, it would probably be MUCH easier to program the patterns into the Arduino, than to build the DMX hardware & software into the Arduino.

I've never done anything with DMX, but we use some RS-485 (which is the same basic hardware & electrical connections) where I work.

The DMX hardware is fairly simple. It basically just "conditions" the signal for the correct differential voltage, and it uses standard XLR "microphone" cables & connectors. (You can look into RS-485 standards & driver chips).

The DMX software/protocol takes a bit more work. For me, this would be the trickiest part of the project. I don't think I've seen any software (sketch) examples for DMX devices... only DMX controllers. If you can't find any device examples, you might have to study the controller software and the DMX protocol, and figure it out. (You'll probably need to study the DMX protocol in any case.)

You can't drive 1 meter of LED strip directly from the Arduino. You'll need a MOSFET (and separate power supply) to boost the output current. That's easy and once you figure-out one, you can make 9 more.

Dimming of LEDs is done with PWM. The Arduino Mega has 15 PWM outputs (which can be "boosted" with a MOSFET). Or, there are various LED driver chips which have PWM built-in. Most of those driver chips have a serial-signal input, so you can drive many LEDs with only a few Arduino output pins, and you could use an Arduion Uno. (You would still need to boost the output with a MOSFET.) It would be a LOT easier to use the Mega than to add a chip (or two) and figure-out and program for the driver chip's serial format/protocol.

thanks dvdDoug.

I think I do not have the skills to create drivers from scratch. maybe I should stay looking at dmx shields, and try to find pre-built drivers to daisy chain the strip segments?

The DMX part is easy since you already have the software and the DMX USB Pro. The software is probably especially helpful in generating patterns, as it means you won't have to program them manually. Look at either the DMXSimple library or at Toni Merino's blog http://www.deskontrol.net/blog/en/author/toni/. Toni's code is centered around a mega (though it works fine on an Uno too.) The extra PWM outputs on the Mega give a little advantage as mentioned by DVDdoug. Really all you need for a DMX shield is the connector and a MAX485 chip (and I recommend a 0.1uf capacitor).

Probably the most challenging part will be deciding how the DMX channels get to the strips and what will be sourcing all of the current that the strips will need. Using Mosfets will probably be the best option.

What is your time frame?

Feel free to message me if you have DMX questions. I have built a few projects using the protocol.

Hi, i have done one DMX shutter for proyectors using NANO arduino boards. i follow some examples but for me, this one was the best

http://www.maxwellrosspierson.com/2009/03/20/receive-dmx-512-with-an-arduino/

only two thing: - the chip MAX485 you can take 5 for free from the fabric. - When i up load the code to the arduiono i must desconect all the circuit if not always fail the upload( i don´t know why)

i am light tecnician and only say tath there are free programs like magic Q,that can do chases,light efect and save in memory so easy so if you control your leds with DMX every one tath are used to DMX (all performance tecnician) can use your system.

i hope this help you

You have to disconnect the rx pin on the Arduino from the MAX485 because the signals from the 485 interfere with the signals from the computer that use the same pin.

Some of the newer DMX libraries don't require changing the HardwareSerial.cpp file.

Thanks!! I don´t know why but trying I have the answer that when i take over the circuit,upload all works ok. What are this new librarys?? I have tryed this desing but I had problems and change to the oder one... without optoacoplers

http://www.mathertel.de/Arduino/DMXShield.aspx

Now i am working in oder arduino proyect but i will return to work with DMX.

The Toni Merino blog I mentioned earlier has one example that works well with Uno or Mega.

This one: http://arduino.cc/forum/index.php?topic=22294.15;wap2 works well also, but only works on an Atmega168 running Arduino.