# How to get an analog signal 0 to 12 V DC based on reference 0 to 5 V DC?

I have an Arduino which is creating an analog voltage from 0 to 5 V (I used external DAC for it) and I need to use it for the regulation of "big" circuit with 12 V DC. So I am trying to get on the "big" circuit analog values from 0 to 12 V DC (the maximum current by 12 V is 55 mA).

Right now I am using MOSFET IRF520 for it, but it doesn't work as well as I expected. The MOSFET starts to open by voltage approximately 3 V and is fully opened by 4 V. So for the regulation of the big circuit, I am using just 1 V difference.

Right now I am considering maybe some JFET (e.g. J112?) could be a better choice for this type of job but I am not sure.

Can you please tell me, how would you solve this issue and what for a device would you use? Maybe can you propose some concrete FETs/transistors good for it?

• "I used external DAC for it" which DAC? – Bruce Abbott Nov 19 '19 at 1:51
• PCF8591 it is an 8-bit DAC – Jakub Nov 20 '19 at 20:38

You need feedback if you want an exact ratio of 12/5, an open loop transistor will not do this. I would use an opamp with a transistor amplifier. You could also look for an opamp that will output 55 mA (most won't) and leave out the transistor.

You need a rail-to-rail opamp so the output will go to ground. The supply voltage needs to be a few volts higher than 12V if you use a transistor.

simulate this circuit – Schematic created using CircuitLab

• Thank you very much for suggestions. This helped me a lot! – Jakub Nov 20 '19 at 14:19
• @Jakub Please "accept" this answer if it is the best solution to your problem. Accepting an answer is the best way of saying thank you. – Huisman Nov 20 '19 at 21:46

Build non-inverting OpAmp configuration with a gain of 12/5=2.4 (using a rail-to-rail opamp when you supply it with 12V).

$$V_{out}=\left(1+\frac {R_2}{R_1} \right)V_{in}$$ Using E12 series (which I know by heart):
R2 = 47k and R1 =33k yield a gain of 2.42. Using E24 or E96 may give nicer results.

• Thank you for help! – Jakub Nov 20 '19 at 14:22