2

I want to hook up a potentiometer to my arduino (Leonardo) as a voltage divider with the middle pin to an analog pin. I want to use the highest resistance to save power. I looked on the datasheet and it said the maximum output impedance is 10kOhm (§24.7.1 on Atmega32u4 datasheet). I also found another question that said I should use a 10kOhm potentiometer. What doesn't make sense is if the knob was turned towards the middle so that there is 5k on both sides, it's not the maximum capable resistance. So should I use a 20kOhm potentiometer?

  • Aren't you more interested in input impedance? – Nick Gammon Apr 9 '16 at 5:14
  • Oh yeah. But the datasheet said output impedance... I'm confused. I'm ensentially asking what is the maximum potentiometer resistance for analog input without the chip stuffing up. – Bradman175 Apr 9 '16 at 5:18
  • The voltage divider is Thévenin equivalent to a voltage source having no more than 1/4 the resistance of the pot. You could then use a 40 kΩ pot and still be within spec. – Edgar Bonet Apr 9 '16 at 11:06
  • If you are sequentially reading various analog inputs and your resistance is too high, you might get some cross-talk. If this is the only analog input you are reading, there should be no issue. If you really care about sub-mA consumption, you should probably use a barebones ATmega instead of your Leonardo. – Edgar Bonet Apr 9 '16 at 11:13
  • I'm actually using two pots for two analog input pins. I also kinda get with your meaning of cross talk as I heard the analog pins are multiplexed into one capacitor. Also I am planning to use barebones Atmega but I'm using a Leonardo as my prototype. I want to know how changing the pot resistance affects the chip. – Bradman175 Apr 9 '16 at 11:24
4

There is a lengthy discussion about this on the Arduino Forum. As I understand it, the input impedance is only important if you are sampling a rapidly varying signal, as it takes a finite time to charge the sample/hold capacitor. However your potentiometer would not vary rapidly (certainly not in the order of thousands of herz). Thus I don't think the potentiometer resistance will be particularly important, particularly if you are not changing the analog inputs (eg. from one channel to another). The continuous current through the 10k pot would be 0.5 mA.

If you are worried about power, then rather than connecting the +5V side directly to 5V, connect it to an output pin, which you can bring high when you want to take a measurement, and make low at other times. That reduces the power through the pot, since there won't be a voltage potential. You might allow a few microseconds for the reading to stabilize when you need to take one.


So the lower the pot resistance, the faster response time? Also I will constantly always be taking a measurement

No, I don't think this is an issue. The "response time" is really the time taken to do the ADC calculation (nominally 104 µs if you don't fiddle with the registers).

See ADC conversion on the Arduino (analogRead). As mentioned on that page you can speed up the measurement by changing the ADC prescaler. However even with a prescaler of 128 you get 9615 conversions per second. I doubt you can turn the pot fast enough for this to be a meaningful issue.

Regardless of the response time, the issue here is accuracy. Will a lower pot value give more accurate results? Well, I doubt it. The ADC effectively copies the analog input into a 14 pF capacitor (the "sample and hold" capacitor) which it then tests against the reference voltage divided up in various ways.

The input impedance would be relevant if you were sampling a high-frequency input. On the page I linked I sampled a 4 kHz sine wave and got good results. You just won't be turning the pot that fast (4000 times a second).


I'm still unsure with how potentiometer resistance affects the data ...

If you keep sampling the same ADC input (eg. A0) then I think the sample and hold capacitor can be charging in the background (while your code is doing other things).

But even if that were not the case, the datasheet says the sample and hold operation takes place 1.5 ADC cycles after the conversion starts. So at 16 MHz clock rate, and a prescaler of 128 for the ADC clock, this means we have:

128 * 62.5 ns * 1.5 = 12 µs

Now since the datasheet says the sample-and-hold capacitor is 14 pF, and the time taken to (almost fully) charge a capacitor is reckoned to be:

5 * R * C

Given R = 110k and C = 14e-12 (14 pF) then it will take:

5 * 110000 * 14e-12 = 7.7 µs

I quoted 110k because the datasheet mentions a resistance of 1 to 100k in series with the capacitor, plus the 10k impedance they recommend.

This means the capacitor will charge within the 12 µs it has available. Bump R up to 1e6 (1 megohm) and the calculation now gives:

5 * (100e3 + 1e6) * 14e-12 = 77 µs

This exceeds the 12 µs quoted for the sample-and-hold.

This is why, I suggest, that for fast-changing signals they recommend a lower input impedance.

However if I am correct that the sample-and-hold capacitor is normally connected to the ADC input, then that 77 µs can be spread over the time you deal with the calculation. Still, that is quite a few clock cycles. :)


My recommendation is to stick with 10k or so potentiometer (as recommended by the datasheet) and use my earlier suggestion of connecting the 5V side of the pot to an output pin instead of continually having it connected to the +5V signal. That way you only need to "power" the pot when you actually need to take a reading. However you can see that a 20k pot (or even 50k) will probably still be in an acceptable range for an accurate conversion.

For example, a 50k pot could charge the capacitor in:

5 * 150000 * 14e-12 = 10.5 µs

I would also be cautious about a 1 megohm pot because then slight variances in other things (eg. heat on the wire, nearby noise) could swamp the reading from it.


Wait, sorry do I need to half my potentiometers' resistance if I'm using two analog inputs?

No, because the multiplexer chooses one input at a time (the others are effectively out of circuit).

However if you are choosing between two pots (to measure two) then the resistance becomes more relevant. As I showed, with a high value pot it takes longer to charge the capacitor, so if you read A0 and then immediately afterwards A1, you don't want a lengthy charging time for the capacitor, because that would give erroneous readings.

  • So the lower the pot resistance, the faster response time? Also I will constantly always be taking a measurement – Bradman175 Apr 9 '16 at 6:27
  • See amended reply. – Nick Gammon Apr 9 '16 at 7:35
  • So in conclusion, resistance doesn't matter, and I could use a potentiometer in the mega ohms? And this is because I'm twisting a potentiometer, right? – Bradman175 Apr 9 '16 at 8:04
  • I can't tick your answer because I'm still unsure with how potentiometer resistance affects the data even though you said it doesn't matter that much. – Bradman175 Apr 9 '16 at 9:52
  • See more details in reply about timings. – Nick Gammon Apr 9 '16 at 22:56

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.