Electronic – arduino – Controlling 500 LEDs with PWM


I'm considering taking on a project that would involve individually addressing 500 LEDs, optimally with PWM support for each.

I'm planning on using an Arduino since I already have one, but I'm open to suggestions if anyone thinks a different platform would be a better match.

Shift registers would need to be employed. What is a good shift register to use in this situation? If PWM makes this project a lot more expensive, I'm alright to do without it. I want to try to spend less than $100. I'd bulk buy 500 LEDs off ebay.

What is your opinion on the best way to control such a large number of LEDs? Also, how would I go about providing the power? I'd appreciate any help. I'm fairly experienced with electronics, I've just never done anything on such a large scale.

Best Answer

I am the author of the ShiftPWM library and I just updated the documentation to include schematics and a lot more general info for normal LED's, LED strips and high power LED's.

You probably already started your project, but since this page gets a lot of visitors, I'd still like to provide a detailed answer.

If you want to control 500 LED's with ShiftPWM, you can get about 64 brightness levels per LED at 60 Hz. You would use 64 shift registers. Dedicated hardware PWM drivers will give you more brightness levels, but will be a bit more expensive. I think the main advantage of my library is ease of use, because it includes RGB and HSV functions and a lot of examples.

I would personally go for the TLC5916 of TLC5917 instead of normal shift registers, because they have a built in constant current LED driver. This will save you a lot of soldering, because you don't need resistors.

On my website ( http://www.elcojacobs.com/shiftpwm ) I have more info on how to connect the LED's and how to deal with driving the long signal wires with the Arduino at high speeds.

If you have any more questions, please ask.