1
\$\begingroup\$

I'm stuck confirming that the current pulled in a circuit will be 15mA.

If I have hypothetical LEDs that pull 15mA each from 1.8V, and they are put in parallel (I know this is not a good idea, but just wondering what happened if is) with a 5V power input, the diagram should look something like this:

schematic

simulate this circuit – Schematic created using CircuitLab

The LED's aren't actually 1.8v 15mA in the schematic, but lets just say that they are. Correct me if I am wrong: I supply 5V, the 213 Ω resistor drops the voltage by 3.2V.

This means that going into parallel, we have 1.8V, which is perfect for lighting negligible-resistance LEDs.

The LEDs at this voltage draw 15mA each.

Now here's where my understanding ends: I know that voltage is equal for every parallel branch, 1.8V, but does the current ADD together and the total pulled current will be 60 mA because of the 4 branches?

I tried to calculate the current of the circuit using Ohm's law. V = IR. 5 = I * 213, I = 23.5 mA. Is the pulled current actually 23.5mA, and the current is 'used' by the resistor? Or do I calculate the total current by subtracting the resistor? (I want to make sure I'm not pulling > 40mA for an Arduino)

I know I asked a lot of questions here and I apologize. Any help would be appreciated.

\$\endgroup\$
5
\$\begingroup\$

First, note that LEDs are current devices, not voltage. Their brightness is regulated by setting the current.

Second, LEDs have a fixed voltage drop, called the forward voltage, or Vf that stays more or less the same regardless of the current passing through the LED (it does increase slightly with current.)

Because LEDs are semiconductors (diodes), they will not pass significant current until the Vf voltage is met. Once it is met, the LED lights, and further voltage increases beyond Vf causes the LED current to rise rapidly. This non-linear behavior is the reason for the current limiting ('dropping' or 'load') resistor in most LED circuits.

The 1.8V Vf value you state is the low-end of typical for a red or yellow-green (although they are available.) More common for those colors is 2.1V

If you're assuming perfectly Vf-matched LEDs (a bad idea, by the way) with a stated Vf of 1.8V, you will have a corresponding IR drop across the resistor of:

  • Resistor IR drop = (Vcc - Vf) = (5V - 1.8V) = 3.2V.

Since we know this Vf stays more or less the same regardless of LED current (within a reasonable range), we calculate the resistor current as:

  • (Vcc - Vf) / R1 = 3.2V / 213 ohm = 15mA.

This current through the single resistor is the same as the total current for all the LEDs (Kirchhoff's Current Law). Therefore, each LED gets only 1/4 the current, or 3.75mA. Probably not what you intended.

If you want each LED to actually get 15mA, you can make one of the following changes:

  • use one 53 ohm resistor for all four (bad idea due to matching), or
  • use separate 213 ohm dropping resistors for each LED (preferred)

Either way your total current will be 60mA. That's okay for an external FET, but it's really way too much for your Arduino GPIO.

A better solution, given your 5V supply and Vf of 1.8V, would be to wire two pairs of series-connected LEDs and use a dropping resistor for each series pair. Then your total current is only 30 mA (15mA each pair.) Your dropping resistors would be (5 - 1.8 - 1.8) / 15mA = 93 ohms. Not only does this reduce draw on the driver, but it's twice as efficient.

Even then, 30mA is still kind of a lot for a GPIO. Instead, I’d recommend using a low-side FET to drive the LEDs. Also consider choosing a high-efficiency LED type that gives adequate brightness at a reduced current.

Here's what that all looks like:

schematic

simulate this circuit – Schematic created using CircuitLab

\$\endgroup\$
6
  • \$\begingroup\$ This makes a lot of sense as @Neil_UK pointed out. I still have a question on the fundamentals that will clear something up: With a 213 ohm resistor, "Each LED gets only 1/4 the current, or 3.75mA. Probably not what you intended." Does this mean that a 1.8 V forward drop only gets 3.75mA? How is the pulled current of the LED at that voltage go into the calculations? I never thought to ask that, as I assumed that "A LED at 1.8V will use 15mA", and that if I gave it 3.75 it would not drop the right way. How should I be thinking about this? \$\endgroup\$
    – Blake
    Oct 10 '20 at 7:09
  • \$\begingroup\$ The calculation comes from Kirchhoff’s current law for parallel circuits. \$\endgroup\$ Oct 10 '20 at 15:05
  • \$\begingroup\$ If it uses 3.75mA, does the LED still drop 1.8V? In this situation, what does the idea that "at 1.8V, the LED pulls 15mA" do to change the problem? I dont understand if that is a max current or the idea behind it now. \$\endgroup\$
    – Blake
    Oct 11 '20 at 3:25
  • \$\begingroup\$ I think I figured it out, 15mA isn't what it "pulls" but is an optimal current that can be more or less. That's all. Thank you! \$\endgroup\$
    – Blake
    Oct 11 '20 at 6:58
  • \$\begingroup\$ The LED Vf value is a (more or less) fixed voltage which you state as 1.8V. With a fixed power supply (5V in your case) you set the LED current with a dropping resistor. With 213 ohms and one LED you get the expected 15mA. With 4 LEDs in parallel, this does not change Vf - it’s still 1.8V - and IR drop across the resistor is the same - it’s still 3.2V - and so is current flowing through it 15mA However, that 15mA current will divide between the 4 LEDs, so each one only gets 1/4 the 15mA current, or just 3.75mA. This is all due to LED non-linear behavior with its Vf threshold. Got that? \$\endgroup\$ Oct 11 '20 at 20:17
2
\$\begingroup\$

I think you should be looking at this Problem from another point of view. The Arduino is capable of supplying 40mA and you want your LEDs to be in parallel. This means you want each branch to draw 10mA. You should absolutely put a 500 Ohm resistor on each branch, a bit more to stay on the safe side.
Using a single 213 Ohm resistor will limit the circuit current to 23.5 mA and your LEDs won't be powered properly. To answer your question, the resistor doesn't use the current, it limits the maximum value of current flowing in the circuit and a voltage drops on it.

\$\endgroup\$
1
  • \$\begingroup\$ I know that using a resistor for each LED is the way to go. It prevents a lot of problems and keeps consistency. For here though, I was just wondering about the fundamentals. I guess the question was left to ask, if since it pulls 23.5mA, will each LED get 5.8 mA? -> Does that mean that a LED over 1.8V can be supplied "less" current, and it doesnt HAVE to pull 15mA? \$\endgroup\$
    – Blake
    Oct 8 '20 at 16:06
2
\$\begingroup\$

I supply 5V, the 213 Ω resistor drops the voltage by 3.2V.

If the LEDs' Vf is 1.8 V then that is correct.

This means that going into parallel, we have 1.8V, which is perfect for lighting negligible-resistance LEDs.

The LEDs' resistance is not negligible. If each is drawing 15 mA at 1.8 V its effective resistance is \$ R = \frac V I = \frac {1.8} {15m} = 120 \Omega \$.

The LEDs at this voltage draw 15mA each.

OK.

... but does the current ADD together and the total pulled current will be 60 mA because of the 4 branches?

Yes.

I tried to calculate the current of the circuit using Ohm's law. V = IR. 5 = I * 213, I = 23.5 mA.

That calculation is correct so you'll only get 6 mA per LED.

schematic

simulate this circuit – Schematic created using CircuitLab

Figure 1. Series connection of LEDs.

In your example you're using LEDs with a Vf of 1.8 V on a 5 V supply. That means you can series connect two of them and use your current more efficiently. Now you need only 2 x 15 mA = 30 mA.

Let's say the GPIO voltage will drop to 4.8 V at 30 mA (you'd need to check the datasheet) then you need to drop 4.8 - 1.8 - 1.8 V = 1.2 V across R1. \$ R_1 = \frac V I = \frac {1.2}{15m} = 80 \ \Omega \$.

Be careful with running close to max on the pin specifications and note that there will be a maximum current for the whole chip. Remember that all the current has to go through the tiny gold bonding wires on the V+ or GND pin of the chip.

\$\endgroup\$
1
  • \$\begingroup\$ You said that the LED resistance was not negligible, which makes sense, so each LED has a 120 Ohm resistance. Where did we compensate for that to find the current? I'm assuming we would add that to the parallel branches, so that would be 120 Ohms in 4 parallel lines, so a total resistance of 30 + 213 = 243. V = IR, 5 = I*243. This means 20.5mA split through 4 lines, not 23.5, right? \$\endgroup\$
    – Blake
    Oct 9 '20 at 5:14
2
\$\begingroup\$

The LEDs are in parallel so essentially independent each drawing the same current. They have a common connection to the resistor so see the same voltage. Assuming that the forward voltage drop of each LED is 1.8V you will need 15mA per LED totaling 60mA. Therefore the resistor will need to drop 3.2V at 60mA = 53 ohms (rather than 213 ohm in the diagram) and will dissipate 0.192W.

If you're driving this from an Arduino limited to 40mA you can up the resistor to 80 ohms. The LEDs will still likely work only not quite as bright. 15mA may well be the max current limit.

\$\endgroup\$
4
  • 1
    \$\begingroup\$ Your first paragraph needs work. The LEDs together will draw 15mA, not each independently. \$\endgroup\$ Oct 8 '20 at 7:43
  • 1
    \$\begingroup\$ @hacktastical 3.2V across 53 ohms is 60mA i.e. 15mA per each of 4 LEDs. \$\endgroup\$
    – mhaselup
    Oct 8 '20 at 8:00
  • \$\begingroup\$ Like I said, it needs work - editorial work. You don’t state that resistance until the end of the paragraph. It’s confusing. \$\endgroup\$ Oct 8 '20 at 14:37
  • \$\begingroup\$ @hacktastical the value of 72 ohms you have suggested for a single resistor is incorrect. This will only provide 11mA per LED. \$\endgroup\$
    – mhaselup
    Oct 8 '20 at 15:49
2
\$\begingroup\$

I'm stuck confirming that the current pulled in a circuit will be 15mA.

If I have hypothetical LEDs that pull 15mA each from 1.8V, and they are put in parallel (I know this is not a good idea, but just wondering what happened if is) with a 5V power input, the diagram should look something like this:

The LED's aren't actually 1.8v 15mA in the schematic,

The way LEDs work, the voltage varies very little even while the current varies a lot. That means the voltage will be approximately 1.8 V, for currents in the mA ballpark. If you set the current to exactly 1 mA, or 10 mA, the voltage will be very predictable at about 1.8 V. If you set the voltage to exactly 1.8 V, you'll have no idea what the current will be, it might be uA, it might be 100 mA. It will vary with the temperature, and the particular diode.

The way we express this is that the LEDs have a very low dynamic, or incremental, or differential, resistance.

... but lets just say that they are. Correct me if I am wrong: I supply 5V, the 213 Ω resistor drops the voltage by 3.2V.

If the LEDs are dropping roughly 1.8 V, then there will be about 3.2 V across the resistor.

This means that going into parallel, we have 1.8V, which is perfect for lighting negligible-resistance LEDs.

This is the LED nominal forward voltage. This is not perfect for lighting them, this is approximately what you get when you pass a current through them.

The LEDs at this voltage draw 15mA each.

No. The LEDs at exactly this voltage would draw anything from uA to 10s of mA. The LEDs at 15 mA will drop roughly 1.8 V, depending on temperature and the specific LED.

Now here's where my understanding ends: I know that voltage is equal for every parallel branch, 1.8V, but does the current ADD together and the total pulled current will be 60 mA because of the 4 branches?

If the LEDs somehow drew 15 mA each, then the four parallel LEDs would draw 60 mA.

I tried to calculate the current of the circuit using Ohm's law. V = IR. 5 = I * 213, I = 23.5 mA. Is the pulled current actually 23.5mA, and the current is 'used' by the resistor? Or do I calculate the total current by subtracting the resistor? (I want to make sure I'm not pulling > 40mA for an Arduino)

You've used V = 5 V in the calculation. There's not 5 V across the resistor, only approximately 3.2 V due to the LED drop, which gives you roughly 15 mA through the resistor. This will then split into the four LEDs, giving about 4 mA each (giving the figure to the precision that a parallel connection of LEDs warrants).

You could get 5 V across the resistor by shorting the far end of the resistor to ground, but then you'd have no voltage to drive the LEDs. As you let the far end of the resistor rise to 1.8 V to turn the LEDs on, the voltage across it drops to 3.2 V, so the current through it becomes lower.

The resistor doesn't 'use' current. You could regard it as 'using' the difference in voltage between the supply and the LEDs.

The reason we use a resistor here is to define an operating current for the LEDs. The resistor dominates the LED's very low incremental resistance with a real, high, resistance. That way, if the supply voltage varies, or the forward drop of the LEDs vary, the current will remain approximately the same.

I know I asked a lot of questions here and I apologize. Any help would be appreciated.

Here are some measurements I did of some diodes some long time ago.

enter image description here

You'll see that for the red LED (blue trace, sorry!) the current varies from 1 mA to 10 mA, a 10:1 range, while the voltage stays at about 1.8 V. Even at 10 uA, 1000 times less, the voltage on the LED is still up at 1.6 V. That's why we say that LEDs have a 'constant voltage' while the current through them varies. It's not really constant, just much much more constant than would be the case if it was a resistor.

Reading the data behind those graphs, 998 uA gives 1.825 V, and 10.01 mA gives 1.968 V. That's a change in voltage of 143 mV for a decade change in current. You can see the log/lin graph is more or less straight over that range, so we can express this relationship reasonably as voltage = k.log(current_ratio).

Now unfortunately, the LED voltage/current curve is NOT reproducible, as it varies with temperature, and varies from LED to LED slightly. Let's say that one red LED has 20 mV lower forward voltage drop than another, and you connect them in parallel. Using the LEDs of the graph, one would then take 40% more current than the other. This is why we tend to use a separate resistor to each LED. We can use LEDs in series strings safely, as they are all forced to be at the same current.

In your particular case, you have the voltage headroom to run two parallel strings of two LEDs in series. You could run each string at 15 mA, for a total Arduino-friendly draw of 30 mA. See Transistor's answer for the resistor calculations.

Let's say that one LED increased its drop by the same 20 mV we considered above. The voltage on the resistor now drops from 1.20 V to 1.18 V, which reduces the total current down from 15 mA to 14.75 mA. That's approximately 'constant', not the wild 40% change that we had for the parallel LED case.

\$\endgroup\$
5
  • \$\begingroup\$ Thank you, is the LED's current defined by voltage, or is the voltage defined by the current? You said that "The reason we use a resistor here is to define an operating current for the LEDs." In this case, I was using the resistor to make sure the LED only had 1.8V, so then it pulled 15mA. Is that what you meant? Just for clarity because some of the laws don't make full sense as of now. \$\endgroup\$
    – Blake
    Oct 9 '20 at 4:58
  • \$\begingroup\$ Also, the answer at the top says that the current in the circuit would be defined by using V=IR with 5v as voltage, not just over the resistor. You say "There's not 5 V across the resistor, only approximately 3.2 V due to the LED drop, which gives you roughly 15 mA through the resistor." I think this is a point of confusion for me, I assumed that the resistor would allow for 23.5mA through the circuit (then split into 4 parallel branches) instead of 15mA (5v/213 vs 3.2v/213). Which one is correct? \$\endgroup\$
    – Blake
    Oct 9 '20 at 5:20
  • \$\begingroup\$ 'answer at the top' doesn't help much, as answers move up and down. Haselup's answer is correct. Transistor's is mostly, but is confused just above figure 1, 6 mA/LED assumes incorrectly 5 V across the resistor giving 23 mA, not the correct 3,2 V giving 15 mA and my correct 4 mA per LED. Giorgos is incorrect for the same 5/3.2 V reason. My answer is completely correct, and I've gone step by step to try to correct the mistakes in your question and the other answers. I'll try to find a good analogy, and add to my answer. \$\endgroup\$
    – Neil_UK
    Oct 9 '20 at 5:41
  • \$\begingroup\$ If you can face it, get a circuit simulator to play with, or better still a battery, a few resistors and LEDs, and a cheap DMM. Nothing reinforces the correct understanding more than facing the reality of what circuits really do. Of course the real ground truth is LEDs and resistors, but you need to take care with real measurements. Simulators are plenty good enough to model circuits like this, and measurements are exact and easy. This site has a free circuit simulator. I'll experiment with putting a circuit into my answer that you can click on and simulate. Hacktastical's is also perfect. \$\endgroup\$
    – Neil_UK
    Oct 9 '20 at 5:48
  • \$\begingroup\$ Thank you so much. It's just some certain points that catch me, so its greatly appreciated that you walked me through this. I'll test it on an actual circuit to reinforce my understanding \$\endgroup\$
    – Blake
    Oct 9 '20 at 6:07

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.