I have a sensor which gives a voltage output between 0V and 5V. I need to transform this sensor output to a current suited for a 4..20mA current loop.

The thing is, the current loop doesn't have a fixed resistance, so my current circuit does not seem to work, because as soon as you change the RLOAD (pot in the schematic for simpification) the output current does not stay within the range.

What do I need to change to make this circuit funtion as a variable 'constant current source' (not sure how to call it, I want constant current based on the input voltage but the input will be changin).

I'd really appreciate some guidance to figure out what I'm missing!


  • \$\begingroup\$ Where does this schematic come from? Is it your design? \$\endgroup\$ Commented Oct 24, 2019 at 11:22
  • \$\begingroup\$ @Stefan It's an adaptation from something I found online. I've been mucking around with the values in a simulator to try and figure out how it's supposed to work. \$\endgroup\$ Commented Oct 24, 2019 at 11:45
  • \$\begingroup\$ Can you provide the link for that circuit? Is there an explanation for the circuit online? \$\endgroup\$ Commented Oct 24, 2019 at 11:51
  • 1
    \$\begingroup\$ Look up a Howland current pump (simpler than what you have there). Alternatively, think about using an opamp to servo the voltage across a resistor in the emitter or source of a BJT or FET, with the outptu current at the collector/drain. \$\endgroup\$
    – Neil_UK
    Commented Oct 24, 2019 at 12:53
  • \$\begingroup\$ Have a look at this question of mine. The first circuit would achieve probably more than you need (it's a two-quadrant design and you appear to need only one quadrant.) But what you are looking for is a wide compliance voltage range, I suspect. Anyway, give it a thought. \$\endgroup\$
    – jonk
    Commented Oct 25, 2019 at 6:59

1 Answer 1


In the end I switched to a different solution, which has been tested both in simulation and in the real world.


simulate this circuit – Schematic created using CircuitLab

I chose the AD797 as the op-amp simply because I had them laying around, so that part isn't necessarily part of the final implementation. It also appears to be able to drive quite a resistive load with a maximum output voltage of 13V and a maximum output current of 50mA.

RV is the variable load (resistance of the cables, of the current sensor, etc...) and could be anywhere between 100Ω and 400Ω (I used a potentiometer in the circuit for simulation purposes)

R1 has been chosen to be 250Ω (precision resistor) since V = IR or I = V/R, which owuld give us I = 20mA for the 5V input, or I = 4mA for a 1V input.

Should the load's resistance (RV) increase dramatically I'll have to look for another op-amp or a different solution alltogether but for now this will do!


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.