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

  • \$\begingroup\$ What power? What's the physical arrangement of the LEDs? \$\endgroup\$ Commented Jun 9, 2018 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
    Commented Jun 9, 2018 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\$ Commented Jun 9, 2018 at 19:38
  • \$\begingroup\$ I updated the post @jsotola and Jonathan \$\endgroup\$
    – djtravz
    Commented Jun 9, 2018 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
    Commented Jun 9, 2018 at 19:47

2 Answers 2


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.

  • 1
    \$\begingroup\$ Door #2: There are Arduino libraries for the very common & cheap WS2812 LEDs. \$\endgroup\$ Commented Jun 9, 2018 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\$ Commented Jun 9, 2018 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\$ Commented Jun 9, 2018 at 23:26

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


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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