I need to measure a potentiometer where the voltage supplied is very noisy and cannot be filtered.

I run into this a lot in my work, but currently I'm trying to measure a steering angle potentiometer on an autonomous ATV using an external Arduino. The problem is that an inaccessible onboard computer is providing the power to the potentiometer, and sensing it for it's own calculations, meaning I cannot supply my own voltage to power the pot. Because of the strong EMI from the engine, the computer/pot ground varies +-1v from the ground rail powering the Arduino(or whatever other sensor I might add). So I need a high impedance way to sense the voltage ratio across the potentiometer without disturbing it. The nominal voltage difference between the ends of the pot is 5V and the wiper swings from 1 to 4V relative to pot ground.

I feel like the obvious solution is to get some kind of differential amplifier/measurement boards with synchronized sampling and do the division in software, but is there a better/more elegant/cheaper way? If not, can anyone recommend differential measurement boards for the Arduino?

I would prefer not to make a custom board, but if I can do it in perfboard, that wouldn't be too bad.

This is like a noisy version of Measuring external voltage on Arduino

  • \$\begingroup\$ This is very confused ... you have a computer powering a pot and measuring its potential, but the computer's ground varies from the Arduino's .... what on earth has the Arduino got to do with this? Just take a reference ground from whatever ADC you're using, and decouple the noisy pot supply to that ground. \$\endgroup\$ May 4 '16 at 17:03
  • \$\begingroup\$ Yes, that's what I'm getting at. The vehicle computer both powers and measures the pot, but I cannot access it. I want to measure the pot as well for my own purposes, preferably with the Arduino I already have. EMI causes the ground line on the Arduino to vary relative to computer ground. This means that measurements by the Arduino vary a lot, because they are referenced to it's own ground. \$\endgroup\$ May 4 '16 at 17:20
  • \$\begingroup\$ I edited the question with some italics and such to make the problem more obvious. \$\endgroup\$ May 4 '16 at 17:30
  • \$\begingroup\$ The quick and dirty (aka expensive) answer is to use an instrumentation amplifier to find the difference between power and output. \$\endgroup\$
    – Daniel
    May 4 '16 at 17:37
  • \$\begingroup\$ So both the pot and it's supplies are kinda inaccessible, just the output pins? I'd just take a lot of samples and apply a software filter in the arduino, because either you physically put a filter on the supply, on the output from the pot or you put a filter in software. (if you can access the output from the pot, feed it through an opamp and have that opamp drive a low pass filter before the arduino takes a look at it) \$\endgroup\$
    – Sam
    May 5 '16 at 8:05

What you are looking for is called an "instrumentation amplifier". These amplifiers measure the difference in voltage between two inputs with a high degree of common mode rejection. You can get instrumentation amplifiers in dil packages suitable for use on perfboard easilly enough.

The two wires to the instrumentation amplifier inputs should run very close together to minimimise interference, a twisted pair may be a good choice.

You need to make sure the supply rails to the instrumentation amplifier are wide enough that the two inputs do not stray outside of the amplifiers common mode inputs range.

  • \$\begingroup\$ This is good, but as you mentioned, the instrumentation amplifier needs to be powered by something that has a wider supply than the measured side. In my case, that is just barely true (+- 1V noise, signal starts at 1V). So I'm using a rail to rail AD623. It looks like you could use an "isolation amplifier" if you wanted to cover things outside of the supply range. \$\endgroup\$ May 6 '16 at 16:16
  • \$\begingroup\$ Would you mind if I edited your answer to add the circuit I used and a mention of isolation amplifiers? \$\endgroup\$ May 6 '16 at 16:17
  • \$\begingroup\$ Sure, go ahead, I can always edit it again afterwards. \$\endgroup\$ May 6 '16 at 18:52

You have to use high performance differential amplifier.

As your bandwidth requirements are low (I guess almost DC), you can use so called instrumental amplifiers. They are available from TI, AD and LT. They are more expensive then ordinary amplifiers, however, they include precise resistor matrix inside. You have to pay for it anyway.

The required circuit is simple and straightforward. The only headache is to provide suitable power supplies to the instrumental amplifier. They typically require positive and negative supplies with few volts margin over the required common mode / output range.

Here is an idea of the circuit you need:


simulate this circuit – Schematic created using CircuitLab

P/N of the amplifier has no meaning. OA1 is a instrumental amplifier, it does not need external feedback as it has an internal one. L1 L2 must be ferrite beads (high dissipation). Low pass input filter suppresses interference at high frequencies.

  • \$\begingroup\$ TL081 is not an instrumentation amplifier, it's an op amp, and there is no such thing as an instrumental amplifier. If it were an instrumentation amplifier, that wouldn't be a great circuit, as the way you're handling the inputs would just about kill the CMRR \$\endgroup\$ May 4 '16 at 18:43
  • \$\begingroup\$ I suggest you to read the posts and forum rules more carefully. I wrote that "the P/N of OP AMP has no meaning". Forum rules prohibit suggestion of specific components. As for "instrumental" - sorry for misspelling. And about CMRR - the purpose of the input filter is to protect the input from high frequency interference that causes non-linear effects. Yes it compromises CMRR between 20 and 100 kHz, however, this frequency range is clearly not useful for potentiometer position monitoring. \$\endgroup\$
    – Master
    May 4 '16 at 19:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.