9
\$\begingroup\$

I need to control 25 groups of 3 LEDs or 25 RGB LEDs. Each group will be dismissed from the uC by up to 20 cm (about 8 inches). 20 cm is very safe assumption but I think it will be 10 cm or less.

However, I think If it be even 5 cm, it will be hard to create in matrix way, so I think using MAX7219 likie IC (http://www.arduino.cc/playground/Main/MAX72XXHardware) is not best idea.

I will probably use shift registers (http://www.arduino.cc/en/Tutorial/ShiftOut). I can connect multiple 74HC595 or use something like STP16C596.

I prefer STP16C596 but they are obsolete. I found SCT2026 (http://zefiryn.tme.pl/dok/a04/sct2026.pdf) but I'm not sure is It right choice.

One more note. My current project requires only "2 bit control" over each group (3 LEDs off, or selected and turned on only one of them), but I don't think it make my project easier or cheaper, also controlling each LED separately will give much more flexibility in case of changes.

What solution will be fit best for my requirements.

It will be nice if parts will be available in this shop - http://www.tme.eu/en/katalog/?&page=1,20#main or http://eu.mouser.com/ (but i prefer first one).

\$\endgroup\$
8
\$\begingroup\$

I would suggest going the matrix route with a driver like the MAX7219 you mentioned or maybe, if you wanted a lot more control, the TLC5951DAP, a TI LED driver meant for RGB leds that will give you 24 channels with a 12 bit resolution (4096 different steps of brightness for each channel). This will allow you to turn on each of the R, G, and B LEDs to different brightnesses to mix the colors to what you want.

You could use ribbon cable for the wiring to each of the LEDs (I'm assuming wiring is why you do not like the idea of the matrix) and have all of the cables plug into a controller board. For something like this, I would definitely recommend that you make a pcb for the controller because that's a lot of connections to try to do by hand. That's just what I would do though.

The STC2026 looks to be directly compatible with the STP16C596, so that's a perfectly good replacement if you want to use it. I would agree that controlling each LED individually will probably be cheaper and easier than trying to use some sort of MUX to have 2bits control which LED is on.

Hope that helps.

\$\endgroup\$
  • 1
    \$\begingroup\$ Thanks for complete answer. I will again consider using LED matrix driver. You're right, that I worry about wiring, but I think Your idea about crating pcb for this is nice. However I'm not sure if I understand correctly Your suggestion about ribbon cable. I think I need 4 wires for each group of 3 LEDs, so I think double pair telephony cable could be better. I also think about using telephony sockets (RJ11) for connecting my LEDs groups to PCB. \$\endgroup\$ – Maciek Sawicki Dec 29 '09 at 18:45
  • 1
    \$\begingroup\$ One more question about drivers. Waiting time in Mouser for TLC5951 is quiet long. Is it any alternative for TLC5951? On TI website I found tlc5952 (focus.ti.com/docs/prod/folders/print/tlc5952.html) but it seems like it doesn't have per LED brightness control. \$\endgroup\$ – Maciek Sawicki Dec 29 '09 at 18:46
  • 1
    \$\begingroup\$ Telephone cable could work. I just suggested ribbon cable (flat cable) because it's fairly common in electronics. Whatever gets the job done would work (obviously :). That is quite a long lead time from Mouser. You might try Digikey.com or just an equivalent LED driver from Mouser (mouser.com/Optoelectronics/Drivers/LED-Drivers/_/N-6hpc2). The tlc5952, as you said, doesn't offer the individual LED brightness control. But, there's lots of other options. I tried looking on the TME website for something that could work, but their website isn't the most user friendly so I gave up. \$\endgroup\$ – David Brenner Dec 29 '09 at 22:49
  • \$\begingroup\$ Thank You again. I found only large ribbon cables. Probably I can divide them into narrower parts, but I wasn't sure if my wiring idea is correct. In this situation I will probably use twisted pair cable. Thank You for info about Digikey.com, it looks like nice store and they have TLC5951DAP in stock. However shipping costs would be USD 60 :/ . So i think I will use MAX7219. I was trying to found in mouser.com something like TLC5951DAP but it hard for me to fund something with individual LED brightness control. \$\endgroup\$ – Maciek Sawicki Dec 30 '09 at 13:02
  • \$\begingroup\$ Yes TME website isn't user friendly. This is direct link to LED drivers (choice is not too large): tme.eu/en/katalog/… I would be very grateful if you could look at it if You have time. I also thinking about ordering samples from TI have you any experiences with this? \$\endgroup\$ – Maciek Sawicki Dec 30 '09 at 13:15
2
\$\begingroup\$

I don't know of any chips off the top of my head, but perhaps some of those I2C GPIO/output expander chips might be the way to go. It has been a while but I'm sure I saw 4bit ones around. Of course, going this avenue may not be as cheap as some other solutions but it would be easy to expand it in the future and use minimal arduino pins.

Apologies for the lack of detail, I am posting from my phone.

\$\endgroup\$
  • \$\begingroup\$ Example chips: Microchip MCP23017 (I2C), MCP23S17 (SPI). \$\endgroup\$ – Wouter van Ooijen Sep 30 '11 at 19:51
1
\$\begingroup\$

You can use the M5451 chip to economically drive constant-current outputs. My board uses them to directly drive 70 constant-current "sinks", and provides 16 500mA "sources" for people who want to do large LED matrices.

http://www.toastedcircuits.com/html/product/Lightuino_5.0.html

\$\endgroup\$
0
\$\begingroup\$

I've used a bank of three TLC5490 chips to do individual control of 16 RGB LEDs. It's used in my RGB LED Shield project. If I were reimplementing it now, I'd use the easier-to-program TLC5497 chip which has 24 output channels, versus the 5490's 16 channels. MaceTech is selling those in small quantities with immediate availability. I'm planning on using one with a FT232R to make a LED USB dongle for the Chumby.

\$\endgroup\$
0
\$\begingroup\$

I wrote a library for Arduino to do this with shift registers, it's called ShiftPWM.

You can find detailed documentation here: http://www.elcojacobs.com/shiftpwm

And a schematic for regular LED's here: http://www.elcojacobs.com/using-shiftpwm-to-control-20ma-rgb-leds/

I recommend using a TLC5916 over a 74HC595, which is a shift register with constant current sink outputs. You would not need resistors with this driver.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.