I'm building a prop for a game. Its an Arduino Nano that runs some LEDs via a controller board, a small motor, and a mini MP3 board for sound. It's powered by a 9v battery. It runs great. I wanted to add some extra LEDs to it so a small analog meter that's attached to it could be seen at night, and wired some LEDs up to the battery in parallel with the arduino circuit. When it's turned on, the extra LEDs flicker and then die as the Arduino turns on and gets going. I'm obviously not understanding something about how the circuit works, voltage, etc. The Arduino is providing 5v that is enough to power a bunch of LEDs through an adafruit LED matrix board - why are 3 LEDs in parallel with the whole thing not getting enough power when the Arduino turns on? Here's an oversimplified circuit of how it's laid out:


simulate this circuit – Schematic created using CircuitLab

Obviously I left out all the components attached to the Nano itself, but I wanted to show where the battery and power switch was and the 3 LEDs in parallel with the arduino circuit.

The 3 LEDs are white LEDs that are listed to have a voltage drop of 2.8v and pull 20mA. ledcalc.com said it needed a 30ohm resistor. Which works great when NOT also using the arduino.

So I'm not understanding something about how voltage works when powering different devices in parallel. Every search I do on google talks about LEDs in parallel vs series, but not much about parallel circuits. Any guidance here? Thanks.


"flicker" sounds like a lose contact.

ledcalc.com said it needed a 30ohm resistor.

Don't ask any tool like ledcalc - the math is really simple: Over the three LEDs, 3· 2.8 V drop, so 8.4 V in total. You have +9V (do you? Or is the battery already lower? Measure, then measure under load!), then you only need to drop 0.6V, so that means your resistance must drop 0.6V when conducting 20 mA. U = R·I, so R = U/I = 600 mV / 20 mA = 30 Ω. Now, what happens if your battery is only marginally used and not at the absolutely full 9V, but at, let's say, 8.5 V?

Your LED forward voltages are still roughly the same, so now you're dropping only 0.1 V over the resistor. U = R·I, so I = U/R = 100mV / 30 Ω = 3.33 mA.

So, your 30 Ω resistor is a bad idea here, because it's only applicable to a reliably 9V source, which a battery isn't after a rather short time.

The arduino doesn't suffer the same problem, because it has a voltage regulator that drops any voltage difference between the input voltage (9V or less, basically, anything sufficiently above 5V) and the 5V it needs.

So: run your LEDs (3 in parallel, not series!) off the Arduino's voltage regulator (the 5V), and calculate the resistor you need for each single LED.

  • \$\begingroup\$ I understand that that's the ideal way to do it. The reason I did it the other way was because it was an afterthought and easier to wire into the system. The intent of my post was to understand why what I did had the result that it did. The battery should be able to power both just fine, but it does not, so I'm not understanding something completely. \$\endgroup\$ – InfernusDoleo Mar 21 '17 at 9:45
  • \$\begingroup\$ As said, after a short while, battery voltages just drop a bit below their nomimal value. And with your resistor, and with the calculation I've explained, it's not hard to see why your LEDs don't shine. \$\endgroup\$ – Marcus Müller Mar 21 '17 at 10:03

Just because the typical forward voltage is 2.8v does not mean yours are 2.8. They could be a little higher. Subtract the 0.6v resistor drop voltage and the LEDs are hungry.

A battery can recover some of its discharge voltage when not in use. Very low battery load @ 20mA does not drop the battery voltage, when the battery has a higher load the voltage drops a tiny bit to nominal-discharge, just enough to to make them struggle. The longer the battery discharges the worse it will get.

The perfect solution would be to use a white LED with a lower forward voltage. Lumex used to have a 2V white. Some LEDs are "binned" on forward voltage where the forward voltage is guaranteed to be in a certain range just for this reason. They would be difficult to find, it's pretty much random as to who has any in stock.

If you used yellow LEDs (lower forward voltage) you'd be okay.

If you put all three in parallel each should have its own resistor and you triple the 180mW.

Add another 4th LED and run two strings of two LEDs. You can drop the current a little because the extra LED will give more light. It will be more efficient than 3 in parallel. Three LEDs will triple your 180mW two will double but give you 33% more light.

Better yet, use two LEDs with a much higher luminous flux. You could probably increase the number of candela and reduce the current. There are LEDs with 10,000mcd @ 20mA.

If battery life is important and you could drop the battery voltage to below 5.6v, then the best solution then the MIC2860

It's the equivalent of a dynamic resistor. It adapts as the battery voltage drops. Drives two LEDs at their forward voltage with a current adjustment.



I'm not 100% sure why the LEDs in parallel stopped working once the arduino circuit started up. From everything I've read and understand, when running a circuit in parallel, all branches receive the same voltage, and draw current as required. When turning on, the LEDs would light, flicker as the arduino booted, then turn off once the arduino and the rest of the system came fully online. Maybe the draw of the arduino pulled too much current leaving not enough for the LEDs?

Anyway - the solution was that I moved the LEDs to the 5v out line on the arduino, and all runs well now.


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.