Arduino MEGA powering 50 RGB LED's

Hello,

I'm new to the forum (and Arduino), thanks for reading my post.

I'm working on controlling around 50 RGB LED's from software running on a PC.
I've got two of them working great (yea!), but I can obviously see the need to scale this out since I need like 150 connections (one for each lead of the RGB LED).

I'd like to use PWM, I think, so that my shading of the LED's can be inifinite.

Would someone be willing to suggest a general approach here? I've read about multiplexing, but I'm not sure what that would entail.
Thanks for any pointers.
-Kevin

Have you tried Google? Heard it was pretty good at searching for info.

http://playground.arduino.cc/learning/4051

For fading, I would suggest the TLC594x line of drivers. You can search "Arduino LED driver" on Google.

Thanks for the link.

Maybe next time just skip the attitude.

Attitude, Google, 150 wires...let's throw all that out.

The main piece missing here is how you want to arrange these LEDs. How bright are they, should they be clusters or single LEDs, how far apart should each pixel be, how bright, etc.

Trying to control 150 wires' worth of PWM is not the best approach here. You need smart pixels, which come in a wide range of types. They will communicate down a single chain of wires using a serial communication protocol. You can actually just buy premade pixel strings with 25 or 50 pixels on a wire, spaced 4" apart. Look for WS2801, WS2811, etc. I also sell LED stuff like the ShiftBrite which is more modular as you chain them together with pluggable cables. The WS2811 strips are also really great because they are really cheap and you can cut them up and rewire as needed.

Thank you so much, that is such an awesome & helpful answer!

I'm trying to build something very similar to your hat....I will likely order some strips from you shortly!

The display I'm trying to build is perhaps best described as an excel document:

  • The row is 6 inches tall
  • Each column contains 3 RGB LED's
  • There are 20 columns

So I want to have 20 different parts of the display each be controlled independantly. Does that make sense, and if so would your suggestion of WS2811 still be the way to go? I think I'd have to have 20 different cuts of that material?

Thanks again.

It depends how far apart you want the columns to be. If you can't use 32mm spacing or 16mm spacing, then the WS2811 strips won't work without a lot of cutting and rewiring (which wouldn't be too bad for only 60 pixels). It'll probably actually be easier to control all the RGB LEDs individually rather than trying to have groups of three controlled together...such is the state of available pixels strings and strips these days.

Awesome thanks, I want to order some WS2811 from you - when will you have them back in stock?
Thanks!

WS2811 strips are great. You can snip LEDs off with scissors and arrange them any way you want to. The LEDs work out around 50 cents each.

You can control thousands of them with a single Arduino pin, maybe millions (although that would need a fairly beefy power supply).

The WS28xx will have some limit on the number used, the limit being the refresh rate you want to achieve.
For exampe, if you want a 25Hz refresh rate, then the speed you clock the data out plus the 500uS non-clocking time to give the devices a chance to respond to that data will define the limit on the number of parts that can be driven.
25 Hz is 40mS, minus the 0.5mS for device updating (check the data sheet for the particular part), divided by 3 bytes per LED, divided by the data rate used, will yield the number of LEDs that can be supported.

And power, as fungus says: 20mA/LED * 1000 LEDs = 20 amp.

CrossRoads:
And power, as fungus says: 20mA/LED * 1000 LEDs = 20 amp.

Actually 60 amps if they're RGB LEDs. :slight_smile:

CrossRoads:
The WS28xx will have some limit on the number used, the limit being the refresh rate

In theory a million LEDs would take about 30 seconds to update.

Anybody got a million LEDs and a 60,000 amp power supply to try it?

That's more than I want to wire up!

Awww C'mon CR. Where's your spirit? grin

Even in strip form, that's 3,333.33 rolls of 5m length (at 60 pixels per meter). I don't think I'd want to wire up that many either.

Where would you put it all? Need a roof-like structure like on the Vegas strip or something.

Hey, take a look at this, for sure it will help you, perhaps its not the best solution, but this combined with multiplexing can be what you looking for.

in both cases, you only use 4 pins.

Thanks for the videos, very interesting and helpful!

Yes, ElcoJacobs ShiftPWM is nicely done!

I won't have the high density WS2811 in stock for while. Still have the 30px/m and the 60px/m in waterproof (possible to just slide the strip out of the sleeve). I think several other vendors have it, too.

Hello,

Just to be clear: For controlling 36mm RGB LED pixel - i would be needed an arduino + some led driver compatible with arduino?
Only arduino can not control rgb led pixel, i`am right?

What is a 36mm RGB LED? Sounds huge, biggest I have seen is 10mm. Please describe the part some more.

Arduino can control RGB LEDs, some driver help may be needed depending on the voltage & current.

Please find link as following: 36mm Square 12V Digital RGB LED Pixels (Strand of 20) [WS2801] : ID 683 : $64.95 : Adafruit Industries, Unique & fun DIY electronics and kits But following LEDs i need to buy from USA. In my local store i have similar LEDs but without WS2801. So i`am guessing what to do.... purchase from USA & waiting for delivery or buy in local store & get to work promptly.

So that's a strand of 20 pixel, each pixel consists of 4 LEDs that are driven by a single WS2801 IC per pixel. The strand runs on 12V. Answering your previous question: you can get this product, a single Arduino, and a 12V source. Done.

Connect the string to the Arduino's SPI pins, program your sketch using either FastSPI (Google Code Archive - Long-term storage for Google Code Project Hosting.) or you can use Adafruit's library (GitHub - adafruit/Adafruit-WS2801-Library: Arduino library for controlling strips/pixels using WS2801 driver chips) to run them.