0
\$\begingroup\$

I am trying to do a project which requires me to control about 100 LEDs individually. I want to make a clock that has 6 columns of 10 LEDs that as the number in the time goes up, more LEDs will turn on. I would prefer just doing it with wires connected directly to the lights. I have looked into using an arduino, but they don’t have enough ports. Is there any way to do this? Maybe using USB?

Thanks, djtravz

\$\endgroup\$
  • \$\begingroup\$ What power? What's the physical arrangement of the LEDs? \$\endgroup\$ – Jonathan S. Jun 9 '18 at 19:30
  • 1
    \$\begingroup\$ there is always a way, except that you have not described the project, so it is impossible to guess which way would be best. \$\endgroup\$ – jsotola Jun 9 '18 at 19:36
  • 1
    \$\begingroup\$ Depending on power requirements, and required speed, you might just need 20 pins (hint: 20 = 2*sqrt(# of leds)). \$\endgroup\$ – Vladimir Cravero Jun 9 '18 at 19:38
  • \$\begingroup\$ I updated the post @jsotola and Jonathan \$\endgroup\$ – djtravz Jun 9 '18 at 19:43
  • 1
    \$\begingroup\$ " I would prefer just doing it with wires connected directly to the lights. " That would be 100 outputs. You know there are more efficient ways. Also 6 columns of 10 LEDs I get to 60 LEDs, not 100. \$\endgroup\$ – Oldfart Jun 9 '18 at 19:47
4
\$\begingroup\$

A few choices:

  • You can use shift-registers such as HC595 to drive individual LEDs, one resistor in series with each. Needs only 4 port pins from your MCU, but n resistor and n/8 (rounded up) chips. It would be static drive.

  • You can use individually addressable RGB(W) LEDs and add color to your project. Still only a few port pins. Libraries are available for this purpose.

  • You could build row and common drivers and multiplex the LEDs fast enough that they appear to be steady. Time-tested approach, works well. You could use (say) 8 column drivers and 8 row drivers to control 64 LEDs.

Personally, for a hobby project, I would probably pick door #2.

| improve this answer | |
\$\endgroup\$
  • 1
    \$\begingroup\$ Door #2: There are Arduino libraries for the very common & cheap WS2812 LEDs. \$\endgroup\$ – Wouter van Ooijen Jun 9 '18 at 20:54
  • \$\begingroup\$ The RGB LEDs which Wouter is referring to include a driver chip with serial (and daisy-chain-able) interface. Thanks to China they are very affordable, thanks to open-source libraries they are easy to use despite the somewhat arcane interface. \$\endgroup\$ – Spehro Pefhany Jun 9 '18 at 21:16
  • \$\begingroup\$ Or option 4, build a matrix with discrete row and column drivers (demux for one, shift registers for the other). Could even use a counter to drive the demux, or use a shift register and only shift by one position at a time. More efficient in terms of IO pins. \$\endgroup\$ – alex.forencich Jun 9 '18 at 23:26
1
\$\begingroup\$

These two solution also have dimming.

Use a matrix design like the Texas Instruments 96 LED driver: LED17 1596A 96-LED Matrix Driver (get some free samples)

enter image description here



If you were to use a 3 output serial RGB drivers like the
Texas Instruments TLC59731 3-Channel, 8-Bit, PWM LED Driver With Single-Wire Interface
or WS2811 , you do not have to use the 3 channels for RGB but rather any 3 LEDs.


EDN Tips and tricks for driving WS2811 LED strips


enter image description here


enter image description here

| improve this answer | |
\$\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.