Electronics > Beginners
Want to control 12 LEDs but there is not enough pins on Arduino?
engineheat:
Hi,
I have an application where I need 12 LEDs to light up at different situations. But each LEDs requires a signal pin and the Arduino Nano (can't use bigger Arduino due to other reasons) don't have enough pins since I also need to control some servos and stepper motor.
I would hate to use a 2nd Arduino because the LED response is related to the actions of other parts of the program. Theoretically I only need 4 bits to uniquely identify each LED, so I shouldn't need 12 pins. But how do I implement something like this?
Thanks
mathsquid:
You could try charlieplexing, or use a couple of 74hc595 shift registers.
Kjelt:
As they say above or what we used back in the good ol days a HEF4515B 4 bits to 16 outputs decoder.
Nusa:
led direct = 12 pins for 12 led's
led multiplexing = 7 pins for 12 led's
led charlieplexing = 4 pins for 12 led's
led shift register = 3 pins for any reasonable number of led's, since shift-registers can be chained.
Searches on any of those terms will give you the details very quickly.
mariush:
There's LED drivers ... some work just like shift registers.
Here's a 16 channel one for 1$ : https://www.digikey.com/product-detail/en/stmicroelectronics/STP16CPC26TTR/497-11985-1-ND/2772290
There's also versions with the pins more spread out, for example this one has 1.27mm spacing for the pins : https://www.digikey.com/product-detail/en/stmicroelectronics/STP08DP05MTR/497-6118-1-ND/1654043
You could bend each odd pin down so it goes directly in a 0.1" spaced circuit board and every even pin could be soldered to the next row of holes
Also multiplexing, for example have 3 groups of 4 leds ... power each group from a 5v pin so you have 3 pins reserved to send power to the leds (pins on output). Set the 4 pins as input to have current flow into the micro ... add resistors to limit current. Power the leds you want from first group, wait a bit of time, turn off leds and power to first group, turn power to 2nd group and set the right leds, repeat..
This way you control 12 leds with 3+4 pins.
For a lot of current you could use something like ULN2003
Navigation
[0] Message Index
[#] Next page
Go to full version