# Interfacing dual supply op-amp with microcontroller

I have an dual op-amp amplifier circuit (LM833) to amplify a signal with a +-10V dual-supply rail from a 22V supply with a resistor voltage divider. The output is rectified into a 0-8V output, for which I simply require a logic output above a certain threshold (about 3V).

The problem is that the Arduino micro is powered from the same 22V supply through a switching regulator. So the ground references of the op-amp output and Arduino are at different potentials, therefore I cannot use a simple MOSFET to interface between the two circuits. Is there another way to safely connect the circuits without using a relay which would be too big and potentially too slow for the switching application. simulate this circuit – Schematic created using CircuitLab

This is a simplified schematic showing my main problem, since the arduino ground is with reference to the -10V point of the opamp.

• Draw a simplified schematic of your circuit. Ground reference is where YOU decide is ground (provided you have isolation from mains electricity). Now view your signal into the Arduino using the Arduino ground reference. So your signal into Arduino is really from 10v to 18v. Now you just have to get rid of the pesky 10 volts. Zener and voltage divider ? – Marla Dec 4 '16 at 14:21
• Edit your question and you can bring up a schematic drawing tool by pressing Ctrl + M. – Bence Kaulics Dec 4 '16 at 14:30
• Is there a reason you are actually grounding the midpoint of your supply-splitter instead of using a single-supply "virtual ground" setup? – ThreePhaseEel Dec 4 '16 at 14:35
• Thanks, I'll try using a Zener to bring the voltage down and see how it goes. I'm using a dual rail because the LM833 datasheet says it needs a minimum negative voltage of -5V – enrico Dec 4 '16 at 16:27
• Also note, that in the circuit you are using, you would not connect the analog ground (GND) to the Ground of the Arduino. Your -10v becomes the ground of the Arduino circuit. (Pretty sure you already knew that. But for others to see) – Marla Dec 4 '16 at 16:46

as the mcu is really referenced to the negative rail, the output of the opamp has a DC bias (vs. the mcu's ground).

So just treat all measurement as such and you will be fine.

Instead of your makeshift voltage divider, which suffers from problems when you inject current into ground, go with a real rail splitter, like the TLE2426. They run less then \$2USD in DIP packages. Then, use that ground for all your circuits.

You could set up the Arduino's switching regulator to use the same virtual ground that you are using for the op amp. That way the ground reference for both the amplifier and arduino circuit will be the same, and you could get away with a smaller regulator,because you'll be regulating only 11V to 5V rather than 22V. simulate this circuit – Schematic created using CircuitLab

• This will totally munge the voltage divider. Also, how much current do you expect the regulator to be able draw through the voltage divider? – JRE Feb 17 '17 at 19:15
• @JRE By "munge" do you mean "mash until no good"? I've never heard that term but just google'd it. Don't Arduino's only need something like 100 mA? Sounds pretty reasonable with decoupling caps. – DavidG25 Feb 17 '17 at 23:10
• Pretend the regulator is a resistor. 100mA at 10V would be 100 Ohms. In order for that to NOT disturb your voltage divider, the resistors of the voltage divider need to be considerably smaller. Like 10 Ohms or less. Do you see any problems with a voltage divider made of two 10 Ohm resistors? Remember that the regulator is in parallel to one of those resistors. – JRE Feb 18 '17 at 6:51
• Also consider what the pulsing current draw of a switching regulator will do to the voltage at the junction of R1 and R2. The poor op-amp is going to be amplifying pretty much just the pulses from the regulator. – JRE Feb 18 '17 at 8:19

Simply add a 10V Zener diode and a properly valued resistor RX in series between D1 and C1 so that the Max output of your OpAmp matches the Arduino Max linear range input. Calculate the RX and R8 such that the Minimum of your OpAmp matches the Min linear input of the Arduino, and you are in the game. R3 and R6 could also be tweaked for further match. The short answer is low power Zener and resistor.

Provide more parameters like input impedance of your Arduino circuit and we can certainly calculate the Zener and Resistor appropriately. Hope this help.