0

I don't have much knowledge in Arduino and I'm about to start a new project which I believe can be done with it.

There will be 50 boxes with a led in top of each one. The user will type a number in a keyboard (1 to 5 for example), and then based on a table, the leds according to that number should light up.

It will have some overlaps, for example, Number 1 would light led 1, 2 and 3, while Number 2 would light leds 1, 2, 3 and 4.

Could I build such a project with arduino? Or are there too many inputs/outputs (keyboard, 50 leds)? I was thinking to buy an Arduino Uno to start learning, but first I'd like to know if it's feasible.

Thanks already

1
  • Look up "Charlieplexing" as used in the "LOL shield" - it isn't without tradeoffs, but an ordinary Arduino can drive at least 64 LEDs this way. Commented Jul 7, 2017 at 14:54

1 Answer 1

4

depending on how you want to control your LED's there are several options. firstly to be clear you could not feasibly connect that many LEDs to an arduino that could all be turned on at once (if that was needed) without damaging the arduino.

if all you need is on/off level of control then you could look at shift registers or if you have pre built arrays of LEDS in a grid type layout you could look at the MAX7219/MAX7221

if you also wanted to be able to control the brightness individually then you could look at the TLC5940

if we look at the pros and cons of each approach:

74HC595

pros:

  • cheap to buy
  • simple to use

cons:

  • each LED needs its own resistor
  • cannot vary brightness
  • if not using the hardware SPI pins can be slow for large numbers of outputs

MAX7219/MAX7221

pros:

  • lower current draw than 74HC595
  • only needs one resistor per IC which can drive 64 LEDs

cons:

  • actually flashes LED's really fast to look like they are always on
  • costs more than 74HC595

TLC5940

pros:

  • can vary brightness with a high number of steps (4096 steps from fully off to fully on)

cons:

  • uses more output pins than either of the above methods
  • requires resistor per LED
  • costs more for the IC than 74HC595

so to sum up, each method has its merits. if you are driving individual LEDs the the 74HC595 is probably the best/simplest route, if you are driving an array then the MAX7219/MAX7221 is best, and if you need variable brightness then the TLC5940 is probably best.

8
  • 1
    just as a side note, i currently have a project that controls some RGB LED strips that each consist of 3 RGB LEDs per strip (red, green and blue LEDs in a single housing) and a total of 16 strips individually controlled for a total of 48 individually controled outputs with PWM brightness control using three of the TLC5940 ICs. so what you are asking for can definately be done, although my project may be more complicated than you are after.
    – James Kent
    Commented Jul 7, 2017 at 14:52
  • 1
    If you need many resistors, you also can use resistor arrays. Commented Jul 7, 2017 at 14:53
  • 1
    @MichelKeijzers true, just depends on how the circuit is being made/wired up.
    – James Kent
    Commented Jul 7, 2017 at 14:59
  • Thanks for your answer @JamesKent I have a pre-built array of leds for each number, it can change with time though. I should be able to change the leds that will light up just by changing my code. Is it possible with 74HC595 or MAX7219/7221? Or would I need to set up all my wires again when I want to change the leds that will light up? Commented Jul 7, 2017 at 15:52
  • chances are if you have a pre made array they it will be wired in a grid pattern rather than giving an individual pin for each LED plus a power pin, instead they will be arranged in rows of shared positive pins and columns of shared negative pins (or the other way round) in which case the 74HC595 cannot be made to work without a lot of hard work. if your led array is something like this: circuitstoday.com/wp-content/uploads/2016/04/… then use one of the MAX chips. the 7219 is usually cheaper and should do what you need
    – James Kent
    Commented Jul 7, 2017 at 16:18

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.