How to sequence individual LEDs, Dream-color LED strip, DMX, MAX485 chip

Hi,

I'm trying to work on a project to control every individual RGB LEDs on a 12V LED strip.
And sequence each of the LEDs using a software (Vixen? http://www.vixenlights.com ; Freestyler? http://users.telenet.be/freestylerdmx/)

I'm still quite a beginner in the circuitry (hardware, connections) but I can work around with the code (have been modifying other's Javascript code for my website)

I've done some research and I'm still quite confused.

Some stuffs that I've found out:

How do I get started?

Thanks for all the info :slight_smile:

The strips you linked to don't let you control down to each LED but only the whole strip. The controller is included with the package, it's a ready-to-use package, more or less.

What you like have is something like these http://shop.boxtec.ch/pixel-strip-ws2801-p-40601.html. There every LED has it's own controller chip. The chips gets their commands by some sort of SPI and they are chained (easily extensible). You then need only a strong power supply and two digital pins of your Arduino. Lots of example code is available.

I use the kind of strip that pylon is talking about and it ROCKS!!!!

Here's Sparkfun's WS2801 strip:

Here's the sample code for the Sparkfun strip:

http://www.sparkfun.com/datasheets/Components/LED/LED_Strip_Example.pde

pylon:
The strips you linked to don't let you control down to each LED but only the whole strip. The controller is included with the package, it's a ready-to-use package, more or less.

What you like have is something like these http://shop.boxtec.ch/pixel-strip-ws2801-p-40601.html. There every LED has it's own controller chip. The chips gets their commands by some sort of SPI and they are chained (easily extensible). You then need only a strong power supply and two digital pins of your Arduino. Lots of example code is available.

johnnycanuck:
I use the kind of strip that pylon is talking about and it ROCKS!!!!

Here's Sparkfun's WS2801 strip:

RGB LED Strip - 32 LED/m Addressable - 1m - COM-10312 - SparkFun Electronics

Here's the sample code for the Sparkfun strip:

http://www.sparkfun.com/datasheets/Components/LED/LED_Strip_Example.pde

Thanks a lot :slight_smile:

Wow... The price is too high for my budget.
I plan to buy many many of them...
Are you sure the Dream-color cannot be controlled individually?
(like this one? dream color led strip.mpg - YouTube)
But instead of using the packaged controller, I use Arduino and set my own custom sequence.

Some strips allow you to control 3 LED's, which is what the one you're looking at appears to allow.

Sure wouldn't hurt to give it a try.

In the meantime, when I'm ready, I'll be ordering direct from China some of:

Your project looks like a lot of fun and you've done some good research. Hope you keep us up to date. In the meantime, I'm going to check out the light sequencing packages you found.

DMX512 is a communication standard that was developed and is primarily used by the entertainment industry to control lighting dimmers and devices. It has been in use for a long time because it is quite robust and able to transmit for long distances. The "512" comes from the number of individually addressed channels that can be sent across one Universe (cable). It is the communications protocol that your computer software will seek to use to output control signal to a receiving device. Doug Fleenor has been making DMX products for many years and has a good introductory paper on how it works as http://www.dfd.com/primer.html.

You will need a serial or USB to DMX interface that is compatible with your software connected to your control computer to send data down a line to a receiving device. The Freestyler website has a list of compatible interfaces at http://users.telenet.be/freestylerdmx/ and the Vixen ones are at http://www.vixenlights.com/downloads.html#output_plugins.
This complicates your project as it adds an additional piece of hardware to strain on your budget. Though you can look at building your own as the ENTTEC OPEN DMX device has its schematics posted online through their website ENTTEC | Lighting control experts : ENTTEC. It may be possible to make your own DMX device using an Arduino and a MAX485 chip, though I don't have the experience to know how to get it to interact with the control software. There is also the option of using Art-Net as your control protocol if your software supports it. Art-Net is a method of sending DMX512 information through your ethernet connection. More on that below.

For receiving DMX512 to control your LEDs you will be using the MAX485 (I have successfully used a sn75176) to convert the DMX control signal which is designed to transmit over long distances to a voltage and signal readable by your Arduino. The Arduino code I use requires the tx pin on the MAX485 be connected to the rx pin on the Arduino. The Arduino then uses interrupts to read the timing based signal of DMX to store all of the needed control channels. Each DMX control channel is received with one byte of data (value of 0-255). My code then uses these control channels to assign the received value either to a pwm pin or to SPI if using an LED PWM driver chip like the WS2801. This code is strongly based on someone else's work. Sadly I can't find the site where I found it. It, however, only works with the ATmega168 chip in an Arduino.

I have, however, just found http://www.deskontrol.net/blog/en/. It looks like Toni has been doing some much more recent work with Arduino and DMX that may be more flexible. You can use his instructions to make a custom shield for your Arduino to receive the signal.

As an alternative to needing DMX transmitting and receiving interfaces you can potentially use Art-Net, which can transmit through your ethernet adapter. You would no longer need a MAX485 chip, but you would need an Ethernet Shield for your Arduino. There is Arduino based Art-Net work at http://vvvv.org/contribution/artnet-arduino-set-v2.

So, to summarize, DMX is a method of sending up to 512 addresses of intensity (0-255) from your computer to your Arduino. The MAX485 enables your Arduino to read the DMX signal. The code you use in your Arduino will enable you to assign each address to an individual pixel, or pin using pwm, spi, or whatever control method you desire.

you can try the dual signal spi led chips as the ws2813 or gs8208,
though they are not dmx digital led strip,but dual signal to make it more stable and engineering protectio,also lower cost and easy installation without addressing the led,
the gs8208 also the dc12v individual pixel led,can be large installation in most lighting projects with long strip and lower voltage drop.