# How to set desired current for a 4-20mA Arduino Circuit

So I am making a circuit that outputs a 0-5 V signal (Arduino into a DAC), and the DAC's ouput voltage goes into an op-amp to convert voltage to current. I've attached the current op-amp portion of the schematic.

The VOUT is the VOUT of the DAC, which in this case is the VIN of the op-amp. Measuring the 4-20 mA signal seems to work with my multimeter, but after a friend reviewed the circuit, this is what they said:

"I am struggling to see how the op amp, U12 will set a desired current regardless of the source impedance of the 4-20mA line from the control box.... and regardless of the voltage source of that line. If these two items are constant and specified then I might be able to understand how the circuit works. Please explain how the current is set without relying on the unspecified thevenin equivalent of the source."

Now, I am a bit confused how to verify this. After reading his feedback, I feel like I am missing something and it may not work as expected. I don't currently have a control box to test with (the box that takes to 4-20 mA as input).

Can someone help me out with some insight on where I went wrong or help me clarify what's going on to my friend?

It's not clear what is supposed to be sinking or sourcing this 4-20mA of current.

As it stands, with $$\V_{OUT}=5V\$$ you are successfully causing 20mA to flow through R5, and it won't matter what extra "load" you place in series with R5, the op-amp will maintain the same current through it:

simulate this circuit – Schematic created using CircuitLab

The problem is that in 4-20mA systems, the "load" isn't placed as I've shown it above, it's usually a current sink, having one end connected to ground (or some lower potential), like this:

simulate this circuit

As you can see, by adding some additional impedance (the load) between R4 and ground, you change the current flowing through R4 and the load. I believe this is what your friend was talking about, the effect of the load's impedance, assuming the load is connected as shown above, as a current sink to ground.

To regulate current in R4 and/or a load to ground, this design won't work. Also, most op-amps cannot source 20mA, so even if this design was otherwise good, unless you buffer that output somehow, you'd need to use an unusually strong op-amp.

I don't have a solution for you, yet, I'll have to think about it. It's surprisingly challenging to build a single-op-amp, voltage controlled current source. It would require high-side current sensing, mandating an op-amp with input voltage range including the positive supply potential, a rare creature. And even you find one, you have to address the problem that the control voltage will be referenced to the positive supply too. Here's a classic design that does this, which you can simulate:

simulate this circuit

I chose the LM7301 here because it has extremely wide input voltage range, even extending beyond the supplies a little.

The relationship between $$\V_{IN}\$$ and $$\I_{OUT}\$$ is:

$$I_{OUT} = \frac{5-V_{IN}}{5R_{SENSE}}$$

By the way, you do have a device that takes a 4-20mA input; it's a simple resistor, $$\R_{LOAD}\$$ in the above circuit, which can have almost any value. Changing $$\R_{LOAD}\$$ will not alter the current through it, $$\I_{OUT}\$$, which is the whole objective.

• LT's "over the top" series of op amps would also be suitable--they are rated for input voltages 76 V above the negative rail regardless of what the positive supply is, which is far more than you need. Commented Sep 8, 2023 at 14:00
• @Hearth Thank you so much for that hint! Those devices look very interesting. Commented Sep 8, 2023 at 14:03
• You're welcome! I find them quite useful for high-side current sensing--though, being LT parts, they do come with a bit of a price premium. Commented Sep 8, 2023 at 14:04
• Thanks for the response! My end goal is to talk to a device that takes 4-20mA as input to display a measurement, but I'm using an arduino to read sensors and tell the sensors' results to a DAC, which then turns into 4-20mA.
– Sean
Commented Sep 13, 2023 at 6:09
• Is there an easier way to just turn a voltage into a 4-20mA current for the device to take as input? I don't know how those systems work very well
– Sean
Commented Sep 13, 2023 at 6:11

The circuit as shown won't work reliably. I suppose the intention is to have Vin of 0.96 to 4.8V which, ideally would produce a 4-20mA current through R5 regardless of the value of R5 (the presumed load resistance).

So for R5 = 240Ω the op-amp output would have to be at 9.6V for 20mA to flow. Not going to happen, obviously, with a 9V supply. Further, if you look carefully at the LM321 datasheet you'll see that going beyond about 10mA is not wise if you want it to work for sure over temperature and not just 'typically', regardless of the value of R5 (even for 0Ω).

It's also generally unsuitable to have the load floating like that, rather than ground-referenced, so that topology is rather limited in practical application.

It sounds like your instructor wants you to think about why and when the current is constant in this case though.