# Best way to control 130 - 140 LEDS with Arduino Uno 32/64 bit led drivers?

I am new to electronic prototyping and had a few questions.

I need to control 132 LEDs individually. I want to make 3 rows ( 2 rows of 60 and 1 row of 12) I think i can matrix them but i would still need 63 outputs (3 high, 60 long).

I don't want to use 8 different shift registers. Are there any 32 bit or 64 bit led drivers(or shift registers, not really sure what there are called) And where can i buy them.

Any help is appreciated .

• I haven't seen any 32 or 64 bit LED drivers. I've seen 16 bit though: digikey.com/scripts/dksearch/… – dext0rb Dec 19 '12 at 23:23
• Your electrical matrix doesn't necessarily have to match your physical matrix. For example, the electrical matrix could be 11 rows of 12, with five of these rows appearing in each of your 60-LED physical rows. – Dave Tweed Dec 20 '12 at 0:24

There is actually at least one 132-LED driver IC, the AS1130 132 LED driver with PWM (\$2.99). This precisely matches your application requirement at least on the LED count.

AMS has a versatile set of LED drivers: For instance their 144 LED driver (AS1119) with its integrated charge pump for driving LEDs from a power rail lower than the forward voltage of your LED, might be of interest for your application.

• Yes, AMS has both 32 channel and 64 channel constant-current LED drivers, besides the 132 channel and 144 channel ones. You won't even need current limiting resistors with such parts.
• Other vendors appear to top off at 48-channel LED drivers, e.g. the Linear Tech LT8500, from a cursory search.
• You can buy the AMS parts mentioned above from their web site, on the LED drivers page. Also, they have a generous sampling program, so you could try that route for your initial experiments.

The challenge you might face is on ready-to-use library support on your microcontroller or platform of choice, for the various LED drivers.

For this reason, my go-to part for similar requirements has been the merely 16-channel Texas Instruments TLC5940, in cascaded arrays, simply because libraries and general public-friendly write-ups exist on the web for it, for almost any microcontroller platform I have wanted to use with them - including for the Arduino platform.

If you Charlieplex the LED's, you would only need 12 I/O pins to control all 132. ($12^2-12$)

The advantage of a Charlieplex is the reduced pin count, but there are several drawbacks. The main drawback is that you can only light one LED at a time (not quite true, but for practical reasons this is so). Another drawback is that you can't drive the LED with more current than the microcontroller can source. With the Atmel MCU's I use, this tends to be 40mA. If you need to create a persistence of vision illusion of multiple LED's being lit at a time, the inability to drive LED's with more current can be an unacceptable limitation.

You can also Multiplex the LED's, as you said in a matrix; however I think you can do this with 24 I/O pins (12 x 12 grid = 144). Obviously the physical arrangement of LED's would still be 2x60 and 1x12, but the electrical arrangement could take advantage of a 12x12 multiplex.

Edit: You could also get by with 23 I/O pins multiplexing, as 11x12 = 132.

As @DaveTweed says, you don't have to match physical to electrical layout.

Multiplex/charlieplex is an option, you have enough pins. You could get a driver chip or several to do it for you (like MAX7219), or just use I2C/SPI I/O expander chips (such as MCP23017). You could also use shift-registers such as 74HC595 to convert a serial stream to a load of directly driven pins.