300+ LEDs, Multicolour Control

Hello Everyone.

I am new to this forum, and would like some advice from those who have been around it a little longer than myself. I have a current project that will require upwards of 300+ individually controllable LEDs. They will be going in a rather large chandelier type arrangement. I need to be able to make effects with them, so each LED will need to be individually controllable and I need to be able to change colors as well. This is a rather brief explanation, but at this stage things like the type of LEDs used, the method of control etc, are all up in the air as I am fully flexible. One thing I do know is they will need to be powerful enough to have an impact, and different setups may require them all to be on at one time (as far as power draw is concerned) I am new, so I dont know the ins and outs very well, however any suggestions would be appreciated. Ill try to clarify on any questions asked as much as I can.

Cheers, Mike

Use a WS2812 LED strip. You can chop them with scissors and rejoin them any way you like.

http://www.ebay.com/sch/i.html?_nkw=ws2812+led+strip

See this image:

You cut along the black lines and solder wires onto the copper colored pads to rejoin them.

That's a tall order. If you want color control then you might consider the following ics, [u]TLC5940[/u] http://www.ti.com/lit/ds/symlink/tlc5940.pdf http://playground.arduino.cc/learning/TLC5940

[u]WS2801[/u] https://www.sparkfun.com/datasheets/Components/LED/WS2801.pdf

[u]WS2803[/u] http://www.jarzebski.pl/datasheets/WS2803.pdf

[u]WS2812[/u] http://www.adafruit.com/datasheets/WS2812.pdf

The most difficult (or "challenging" if you want to suger-coat it) aspect of your objective will be finding a way to get all the wires from the leds to their controller chips and finding a place to hide the chips. You should consider contracting a PCB house to design a custom daisy chainable pcb with a through bus for the communication signals and outputs for the leds. Choosing the communication protocol will also be a critical decision. I2C offers the advantage of TWO-wire control, as does the WS2801

The WS2801 adopts the reliable 2-wire scheme, which features low EMI transport, very strong anti-interference ability, and support hot-swap. The 2-wire control scheme can reduce the system cost; it is very suitable for low cost LED decorative LED lighting systems.

You may find the features of the WS2803 attracive as well. With 300 leds in a chandelier were troubleshooting and maintenance are impossible, you need to think very carefully about how to minimize risk. (of malfunction)

The WS2803 is a constant current LED driver. It is designed for indoor/ outdoor LED displays and decorative LED lighting system. It is suitable for LED cascading applications. The WS2803 ownes 18 output channels, each channel can drive a constant current up to 30mA. WS2081 contains serial shift registers, data latches, output registers, band gap reference voltage generator, internal oscillator, and programmable constant output current drivers. The serial data is read into the shift registers at the rise edge of the external clock. The data and clock output buffers are designed for cascading another chip. The output current can be set by connect a resistor at IREF pin to set the output current of each channel. The over temperature protection is built in to protect the chip from thermal damage, if the core temperature level rise over 120?, the output current will be decreased to stable the core temperature within a safe level. [u]The 2-wire control scheme can[/u] [u]reduce the system cost; it is very suitable for low cost LED decorative LED lighting systems.[/u]

Hi, +1 for the ws2812b leds suggestion. You can get them mounted on tiny pcbs as well as strips. They have a wide viewing angle, are quite bright and easy to use, requiring no extra driver chips and only 3 wires daisy-chaining them together. Only 2 wires if you can use the metal frame of the chandelier as the ground. For a chandelier, you will want to mout them pointing dowmwards I suspect. Get a few and experiment!

http://www.ebay.co.uk/itm/10-RGB-LED-WS2812B-Addressable-Neo-Pixel-PCB-DC5V-Arduino-Raspberry-Pi-/121427821560?pt=UK_BOI_Electrical_Components_Supplies_ET&hash=item1c45a983f8

Paul

Be aware that WS2812 LEDs need lots of amps.

300 will need 18 amps. Budget for a 25A power supply (I assume you don't want things running red hot).

For 18 amps you'll need plenty of thick wire and multiple connection points to the LED strips (you can't feed 18 amps into one long strip and hope it reaches the other end - it won't).

fungus: Be aware that WS2812 LEDs need lots of amps.

Mike, this is not a particular disadvantage of ws2812 leds. It would be just as true for any other type of led. 300 leds x 3 colours x 20mA per colour is 18 amps, whatever type of led you use.

You can get 12V strips of RGB leds. They only use around one third of the current compared to WS2812. But the colour cannot be individually controlled - they are all the same colour. Overall, the power used would be about the same.

For individual controlled leds, 5V x 18A = 90W.

For non-individual led strips, 12V x 6~7A = 72~84W

Thanks for the input guys. The WS2812 definatley looks like what I may go with.

In regards to the control, to be honest alot of the links were a little confusign for someone who is not fluent in the topic. I came across the FadeCandy system on Adafruit. Has anyone had experience with this? I would be interested to hear your feedback.

Cheers,

Mike

Looks like FadeCandy is an interface between a PC or Raspberry PI and ws2812 leds. If you use it you would not need an Arduino, but you might need a laptop or RPI plugged in to run it. You will still have do some programming!

Unless you want to run some very complex sequences, an Arduino would be simpler, cheaper, lower power and more compact I think.

Thanks for the help guys.

So am I correct in saying that the WS2812 LEDs listen to the first 24 bits of the signal chain, then pass the rest on (minus the first 24) so the next one in the chain listens to the first 24 and passes it on etc etc. Is this correct? How do you control a single LED, do you have to 'refresh' every LED up to the one you want to control/change?

Yes, to all questions, except that all the leds pass all the bits down the chain until the flow of data stops for a short time. Then they each use the last bits they received. That's the theory, but you don't have to worry about the precise details. There are a couple of libraries to do it all for you.. Adafruit's NeoPixel and another called FastLED.

Thanks Paul

I am slightly confused in regards to what hardware I would actually need for control. Earlier on in this post I was recommended the TLC5940 as a controller. Does this link with the Arduino? Or is it totally separate from it (i.e. Arduino not needed)? What hardware would you suggest be the best for this particular project? Particularly with using FAST LED.

Hi again. With ws2812b leds you need no other controller than the Arduino itself.

Any basic, modern Arduino will be fine, such as Uno, Leonardo, Nano 3, Pro Mini or Pro Micro. The last 3 mentioned are smaller and ideal for prototyping on breadboard. With the Pro Mini (the smallest) you need a separate USB to serial adaptor to program it. The others have built-in USB. The Uno and Leonardo are designed to support "shields" which are add-on boards for a variety of purposes. As you wont need a shield, there's no advantage to that for your project.

Excellent

Ok, so If I wanted to have say 10 different programs, and have some form of a rotary switch (or something) for the user to change between them. Would these units support this? What about IPhone or Android control?

Yes, any Arduino could run a sketch containing multiple colour/sequence programs.

Android/iPhone control is also possible but rather more advanced (and beyond my experience).

Would an infra-red TV remote control be suitable? That would be more achievable for a beginner I think.

mikeclegg123: Excellent

Ok, so If I wanted to have say 10 different programs, and have some form of a rotary switch (or something) for the user to change between them. Would these units support this?

The Arduino Uno has twenty I/O pins and you only need one for the LEDs. That leaves nineteen for whatever you like...if you can see it on the Internet, you can use it.

mikeclegg123: What about IPhone or Android control?

Yes.

Thanks for all your help guys. Whats the limit as far as how many LEDs you can have in one 'line' (operating from one set of I/O pins)?

mikeclegg123:
Thanks for all your help guys.
Whats the limit as far as how many LEDs you can have in one ‘line’ (operating from one set of I/O pins)?

Earlier on you said:

mikeclegg123:
am I correct in saying that the WS2812 LEDs listen to the first 24 bits of the signal chain, then pass the rest on (minus the first 24) so the next one in the chain listens to the first 24 and passes it on etc etc.

The answer to that was “yes”, so where would a limit come from…?

mikeclegg123: Whats the limit as far as how many LEDs you can have in one 'line' (operating from one set of I/O pins)?

In theory, no limit, but in practice the longer the line, the longer it takes to update. Depending on your project and how quickly you need to update, that could limit how long you could go. But I imagine you would hit another limit first, especially with an Uno. You need 3 bytes of ram for each led, with both the popular libraries. That limits the length of line to around 600, because Uno has only 2KB RAM. With a Mega or Due that would no be a problem.

You need 3 bytes of ram for each led, with both the popular libraries. That limits the length of line to around 600, because Uno has only 2KB RAM. With a Mega or Due that would no be a problem.

Why assume that the led data comes from ram? Why not generate the data from an algorithm?

Because the datasheet scares you into thinking the timing is quite a bit more critical than it actually is in reality.