Electronic – arduino – How to control several hundred individual leds with Arduino(s)

arduinocharlieplexingledmatrixmultiplexer

I am working on an electronics project which involves hundreds of LEDs. (Talking upwards of six to seven hundred LEDs…a lot, I know.) Is there any way to control this many LEDs with one or a couple Arduinos? I would like to be able to access/control each LED individually as what I am wanting to do is plot LEDs onto a wall map of the world. I will then interface Arduino with Google Analytics and when someone navigates to my site from a certain place in the world, the LED closest to their region will light up in almost-real-time.

Any help would be appreciated. Thanks! I've tried to research some and read about multiplexing and charlie-plexing, but those seem to max out at 100 or so? I'm assuming I would need external hardware/components to be able to control this many LEDs, but what exactly would I need to make this happen? Has anyone else ever created an LED matrix this large?

Best Answer

When you multiplex a large number of LEDs individually the common way is to use an N x M matrix. The time is divided in N steps, in each step you activate one of the N row lines, and the column lines that correspond of the LEDs you want to enable. Note that the row lines can each carry M times the LED current, which asks for some buffering. Each LED is on only 1/N of the time, so to keep the normal brightness you must increase the current N-fold. Most LEds don't like this. Charlieplexing is not practical in ths situation because of the large currents involved.

From your question I understand that you want to enable only 1 LED at a time? In that case there is nothing wrong with Charlieplexing. A uC with 31 I/O pins can drive 900 LEDs. Sounds like the consruction will be a nightmare...


Update 5 years later: Normal multiplexing or Charlieplexing is nice when you have too much time at hand, but when I had to control 100's of LEDs now I would buy a long strip of WS2801 LEDs.