
One of the challenges in circuit design is building a good current source, especially when the load is variable or the current must be controlled with a voltage source.
Figure 1 shows a simple voltage-controlled current source using two operational amplifiers, which give a good range of current and maximum load with a simple and low cost design.
The idea is to apply a voltage to a reference resistor (or resistors) with a low thermal coefficient; the current passing through this resistor will be the output current.

Figure 1: Design Circuits
As you can see in figure 1, U1 adds the input voltage with V2 and U2 buffers the load voltage. So we have:
V1 = Vin + V2
Obviously, U1 output current is amplified by Q1.
Applied voltage on the resistor network R is (V1-V2) which will be equal to:
VR= V1 - V2= (Vin + V2) - V2 = Vin
So, the output current will be:
Iout = VR / R = Vin / R
If R is a constant value (low thermal coefficient) the output current will be a linear function of the input voltage. We used four resistors in series to reduce the effect of thermal dependency.
We have to consider some other constraints:
Limited supply voltage causes a limited maximum output current and if the load is big transistor Q1 must be able to handle the maximum current.
If U2 is a rail-to-rail amplifier, then we don't need to have the zener diode. Otherwise, we have to provide it to prohibit of the malfunctioning of the current source in low current outputs. (When V2 is very close to –VCC, the output of the buffer may not follow exactly as input changes)
Here is the calculation:
Suppose we want to calculate the maximum output current with +-VCC and R as the resistor value when the input voltage has a maximum value of Vinmax.
Imax= (2 * VCC - 2*Vz - Vbe - Vinmax ) / R
For the circuit shown in Figure 1 the maximum current of 20 mA is feasible for maximum 1100 OHMS load. It is obvious that by using higher voltage operational amplifiers and higher power transistors we can increase this value, if your concern is not the price.
Mazi Hosseini M.A.Sci., P.Eng