Maker Pro
Maker Pro

Driving many LEDs with a Single Arduino Uno?

Hello all,

I'm trying to build a light-up umbrella with RGB leds. I want them to transition colors simultaneously. I thought that driving them with Arduino would be a good choice, but I'm worried that since I was going to wire them in parallel and since there will be many leds that the 5V will not provide enough current. Is that reasonable?

BTW, my reason for choosing a parallel circuit was to avoid christmas light frustrations, as in one going out and messing up the whole thing. Is that valid with leds or, since their lifespan is so long, should I cut my losses and wire in series?

I'm very new to all of this so this might be totally noobish but I will appreciate any help in clearing this up.
 

Harald Kapp

Moderator
Moderator
Did you read the entry "Got a question about driving LEDs?" in the ressources section?

Apart from the LEDs you will need current limiting resistors.
For a series connection, you have to take into account the operating voltage of the RGB LEDs.
How much current you can draw from your 5V source depemnds on the power supply. The ardujino's own 5V regulator is surely limited (I can#t say to how many milliamperes). If you use an external 5V supply, the current is limited by the supply only (see ratings of the supply).

Again: read the above entry first.
 

KrisBlueNZ

Sadly passed away in 2015
Normally you would wire LEDs in series strings, and put the strings in parallel, and use a higher voltage, e.g. 12V. But you can't do that with RGB LEDs unless they have six pins, i.e. you can get access to both ends of each LED independently.

RGB LEDs normally have four pins - one pin for each colour, and a common pin, for the other side of all three colours. They are available with the anodes commoned together ("common anode RGB LED") or with the cathodes commoned together ("common cathode RGB LED").

If your LEDs are that type, you can't connect them in series. You will need to drive them in parallel, and you will need three current limiting resistors for each LED, unless you use an LED driver IC that has constant current outputs.

This arrangement will waste significant power, but you can't really avoid that. You'll need to use a big battery if you want it to run for a long time.

Can you post the manufacturer's name and the part number for the RGB LEDs you're planning to use, and a link to a data sheet if you have one. Also, how many are you planning to have on your umbrella?

Edit: Using LED driver chips will waste space, but it will give you a lot of versatility because you will be able to control the colour of each LED independently of the others. So you could create much more interesting patterns.

Edit2:

Here are some 16-output LED drivers on Digikey's site that may be suitable. Each one can drive five RGB LEDs (15 LED elements) with one output left over. They are all SMT (surface mount technology) ICs.
 
Last edited:
You could always use a 'NeoPixel' ... It's an RGB LED with an RS281x chip.
Great thing for you is that they are powered separately and only require data to be sent from your Arduino, PIC, etc...
There are few limitations to the qty, but they are more difficult to use as they 'require' a data signal to work.
Other addressable LEDs would be an option as well for you ;)

https://www.adafruit.com/search?q=neopixel
 
Thanks for the helpful response. I am sorry that I'm just replying. I think I may look into alternative led setups like having layers of single color leds instead of rgbs. This would make my life simpler, I believe, and I don't want to have to replace a battery every other time it rains.

I'll have to look into how to make them flash and be pretty, so if you have any suggestions please do throw them out :)
 
Thanks for the helpful response. I am sorry that I'm just replying. I think I may look into alternative led setups like having layers of single color leds instead of rgbs. This would make my life simpler, I believe, and I don't want to have to replace a battery every other time it rains.

I'll have to look into how to make them flash and be pretty, so if you have any suggestions please do throw them out :)
The Pic, or Arduino mentioned above is almost a requirement to make them pretty and flashy... or you could just go buy some blinking LEDs if you dont mind that they wont flash in any particular order.
You can make this as easy or complicated as you want.
Using single color LEDs will still require some smart wiring depending on how many you want, same with regular RGB leds, the ones I posted from adafruit give you a little more flexibility as far as wiring is concerned, but are a tad harder to program for.
 
The Pic, or Arduino mentioned above is almost a requirement to make them pretty and flashy... or you could just go buy some blinking LEDs if you dont mind that they wont flash in any particular order.
You can make this as easy or complicated as you want.
Using single color LEDs will still require some smart wiring depending on how many you want, same with regular RGB leds, the ones I posted from adafruit give you a little more flexibility as far as wiring is concerned, but are a tad harder to program for.


I think that I'd rather have a more challenging wiring situation than a challenging coding situation since I know the bare basics of Arduino. Also "normal" leds are cheaper and I need a bunch because the umbrella is big.

Just curious, why is using a 555 timer not going to work? I've used those to blink leds before.
 
Did you read the entry "Got a question about driving LEDs?" in the ressources section?

Apart from the LEDs you will need current limiting resistors.
For a series connection, you have to take into account the operating voltage of the RGB LEDs.
How much current you can draw from your 5V source depemnds on the power supply. The ardujino's own 5V regulator is surely limited (I can#t say to how many milliamperes). If you use an external 5V supply, the current is limited by the supply only (see ratings of the supply).

Again: read the above entry first.
I am not sure how I missed this reply but I will go check that link out right now...in a few minutes. :)
 
I think that I'd rather have a more challenging wiring situation than a challenging coding situation since I know the bare basics of Arduino. Also "normal" leds are cheaper and I need a bunch because the umbrella is big.

Just curious, why is using a 555 timer not going to work? I've used those to blink leds before.
You can build it without a microcontroller, and use 555 timers. How many sets of LEDs do you want to make blink?
What kind of lighting pattern do you want?

Your topic is about controlling multiple LEDs with an arduino...
 
Last edited:

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
There are strips of directly (and indirectly) addressable LEDs on the market.

These typically have their own power requirement and some form of simple control interface allowing you to program each pixel in one of up to thousands of colours.

Here is a good ebay search for you.

The modules are all connected in series and you simply send a bit pattern corresponding to the R, G, and B brightness to each LED. You repeat that for each LED in the string.

There are several different controllers. Some are clocked (e.g. WS2801), others depend on accurate timing (e.g. WS281x).

I recommend the clocked variants because you can be a lot more free and easy with your code. These are a little more expensive, but may save you some hair in the short term.

With these you can control an arbitrary length string of LEDs. Be aware that to change the colour of just one of the LEDs, you need to send an update to every one in the string. You can't just say "Hey, LED number 46, time to go Red!"

This and this are worth reading as well as a pile of other literature out there on the net.
 
You can build it without a microcontroller, and use 555 timers. How many sets of LEDs do you want to make blink?
What kind of lighting pattern do you want?

Your topic is about controlling multiple LEDs with an arduino...

Yeah, I didn't know if there was another option, but decided to ask for an alternative from people more experienced than myself :)

I have a pretty large umbrella and calculated 200 leds. The goal is currently to ditch the rgb led idea for now; I am putting single-color leds along the arc of the umbrella, 25 leds on 8 arcs = 200 total. I kind of like the idea of one arc lighting up, then the next, then the next so that it looks like the light is going in a circle. I just realized that a 555 was an option. If you'd like I can move the thread :) I am going to do all of the reading recommended to me on this thread right now; I haven't had the opportunity to look previously.
 
Yeah, I didn't know if there was another option, but decided to ask for an alternative from people more experienced than myself :)

I have a pretty large umbrella and calculated 200 leds. The goal is currently to ditch the rgb led idea for now; I am putting single-color leds along the arc of the umbrella, 25 leds on 8 arcs = 200 total. I kind of like the idea of one arc lighting up, then the next, then the next so that it looks like the light is going in a circle. I just realized that a 555 was an option. If you'd like I can move the thread :) I am going to do all of the reading recommended to me on this thread right now; I haven't had the opportunity to look previously.
Well.. if the time arises, you can learn a little about microcontrollers and upgrade your umbrella. You'll benefit from PWM, which with RGB LEDs can allow you to dictate the color you would like (and change it on the fly). You would also benefit from more advanced driving techniques to control more sections of LED's at a time.

If you have a specific pattern in mind, like you do, build a small sample circuit and have fun.
Some starting points for you: (Based on how I would tackle the problem)
- Pick a battery that you would like to work with.
* Keep in mind that a higher battery (pack) voltage will allow you to make longer LED strings, but will also require a tad more work in stepping that voltage back down to a working level for the 555 Timer.
- If you can only drive a string of 2-3 LEDs, you can always connect multiple strings in parallel.
- Because you are most likely driving anywhere from 7 to 14 string at a time (wired in parallel, but placed along each arc) you will need to use a transistor or FET that can handle the current. (Check the current draw for your LEDs first)
- Take a gander at shift registers, this should easily allow you to build a circuit that will cycle each arc in a consistent manner with each pulse from the 555.
- Please use stranded wire, as moving solid core when you open/close the umbrella will cause breaks in no-time.
 
Well.. if the time arises, you can learn a little about microcontrollers and upgrade your umbrella. You'll benefit from PWM, which with RGB LEDs can allow you to dictate the color you would like (and change it on the fly). You would also benefit from more advanced driving techniques to control more sections of LED's at a time.

If you have a specific pattern in mind, like you do, build a small sample circuit and have fun.
Some starting points for you: (Based on how I would tackle the problem)
- Pick a battery that you would like to work with.
* Keep in mind that a higher battery (pack) voltage will allow you to make longer LED strings, but will also require a tad more work in stepping that voltage back down to a working level for the 555 Timer.
- If you can only drive a string of 2-3 LEDs, you can always connect multiple strings in parallel.
- Because you are most likely driving anywhere from 7 to 14 string at a time (wired in parallel, but placed along each arc) you will need to use a transistor or FET that can handle the current. (Check the current draw for your LEDs first)
- Take a gander at shift registers, this should easily allow you to build a circuit that will cycle each arc in a consistent manner with each pulse from the 555.
- Please use stranded wire, as moving solid core when you open/close the umbrella will cause breaks in no-time.

Wow, thanks for all the tips! And I'll definitely look into a microcontroller for a future project.
 
Top