I'm looking for a circuit that produces an output voltage which represents the voltage between A-B compared to B-C here. IE if AB is 10V and BC is 1V, the output is 10V, and if AB is 10V and BC is 2V the output is 5V.

Essentially what I want is an output voltage that represents the resistance ratio between R1 and R2.

The absolute output values is not important, as long as I can derive the current value of R1 from the known values R1(cold) and R2.

The reason is that R1 will change value as it warms, and I want to track that with a microcontroller. V1 will vary too fast to sample A and B separately, but I can use a single channel differential ADC if required.

I don't think this is possible without a very complex circuit having gone through it this morning but I thought I would throw it out there in case I am missing something.

enter image description here

EDIT: Thanks for both answers (and thanks for the 3rd but I don't really understand your suggestions). Firstly I think I can see that the result for me is that 'no its not possible to do it the way I hoped'. IE bridge like resistor networks.

The op amp idea is nice and probably the closer to my aim as I wanted a mathematical approach, but the result is that high currents need to go through linear devices which will lose considerable power and produce considerable heat. Also during fault conditions (which I will encounter) I won't be able to clamp the 200Aish currents fast enough to protect the devices I think.

The multiplier approach is also nice as I didn't realise a multiplier could be configured to divide. This one is more practical I think - but I don't think I can use it as I suspect I need greater accuracy and stability than I can get from relatively standard components, and the cost as you say is high.

So the result seems to be that I need to find another way to do it. Its hard to know who to award this to because I think both answers are equally excellent. Any help 'choosing' the most stack exchange 'best' reply would be appreciated.

As for my problem, I guess its either a sample and hold (I was thinking a homebrew with a 4066), or I will search for the controller mentioned that does simultaneous conversion. None of the ADCs I have seen seem to sample and hold the Vref voltage at sample time which is a pity as it seems to me that if I could feed A into Vref, B into ADC in, and C to gnd, that would work perfectly. Any further comments on that would be great if anyone had them.

Edit2: Since no one has commented as to the 'best' answer I think I am going to choose the op amp one, because of the algebraic approach and principle behind it which is kind of what I wanted (even if I wanted a non active type). Thanks to both.

Thanks, Pete

  • \$\begingroup\$ Are you trying to measure resistance changes in a 0.315Ω resistor? That will make it a bit trickier. \$\endgroup\$
    – W5VO
    May 17, 2016 at 16:24
  • \$\begingroup\$ Yup (0.315R) but my currents are high, 5 to 20A. So I'm getting 100 mV across BC. So for an accuracy of 1% I need < 1mV resolution which my ADC can do. But it just can't do it fast, hence wondering if I can do the comparison electronically. \$\endgroup\$
    – Pete
    May 17, 2016 at 16:32
  • \$\begingroup\$ Normally you would use a differential amplifier to measure the voltage across your resistor and amplify it to the range of your ADC. \$\endgroup\$ May 17, 2016 at 16:37
  • \$\begingroup\$ I can use a differential amp - but the thing is I need both current and voltage at one instant. So Vab and Vbc at the same time. Even using 2 I2C ADCs, I can't trigger them both at the same time. Getting 2 ADC conversions at the same instant has turned out difficult. A dual sample and hold will be the only alternative but I hoped to avoid it. \$\endgroup\$
    – Pete
    May 17, 2016 at 16:44
  • \$\begingroup\$ How fast? How about a sample and hold circuit? They do make analog multipliers/ dividers. ~10 MHz (maybe some are faster now.) \$\endgroup\$ May 17, 2016 at 17:14

3 Answers 3


You are trying to calculate (A-B)/B, where A and B are the voltages at A and B respectively. For the voltage divider, B=A*R2/(R2+R1).

Let's do the algebra.
$$ \frac{A-B}{B} = \frac{A - \frac{AR_2}{R_2+R_1}}{ \frac{AR_2}{R_2+R_1}}= \frac{A \left( R_2+R_1\right)}{AR_2}-1 = A=1+\frac{AR_1}{R_2}-1$$


simulate this circuit – Schematic created using CircuitLab

Of course, for your resistance and current values, you'll need a pretty special high current op amp for the first stage, maybe the MP38.

  • \$\begingroup\$ +1 for out of box thinking. This may be useful for the OP with a bit of thought and adaptation. \$\endgroup\$ May 17, 2016 at 18:23
  • \$\begingroup\$ Brilliant - although its not suitable for my use, this is kind of what I wanted. More comment put in edit to question. \$\endgroup\$
    – Pete
    May 18, 2016 at 12:52

You can do this with an IC multiplier, however it will not be cheap. Also, note the bipolar supplies.

enter image description here

I suggest reducing the input resistor (to get gain on \$E\$) and using another op-amp (maybe half of a dual) to amplify \$E_X\$ so the input signals are reasonably high.

Alternatively, you could use an external ADC that has multiple simultaneously sampled channels. If memory serves, there are even a few microcontrollers that have that built in, for such applications as 3-\$\phi\$ energy metering.

  • \$\begingroup\$ Also brilliant - probably the only practical way to achieve my aim I guess, but I am worried about stability of the resistors etc. More comment put in edit to question. \$\endgroup\$
    – Pete
    May 18, 2016 at 12:54

Use subtractor circuit to get voltage across AB and use a micro-controller like pic with internal ADC to monitor the voltage internally, and since you can operate a pic at about 20MHz, you can keep close watch on the parameter.

Just an idea.

  • \$\begingroup\$ Can you draw (or describe in detail) how? I can't see how. \$\endgroup\$
    – Pete
    May 17, 2016 at 16:49

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.