Minimum current for AnalogRead

The Arduino needs a small burst of current when it takes a reading. If you take lots of readings per second, you will need more steady-state current. If you just take a reading once a second (for example), you just need to provide that burst of current once. This means you can use very high value resistors (like 1 megaohm) as long as you put a capacitor across the "bottom" resistor (that is, directly from the analog input to ground).

The capacitor will charge up to the voltage divider voltage, and when the analog read happens, the current will come from the capacitor, not the voltage divider. Then, the capacitor charges up again in preparation for the next reading.

With 1M resistors in the voltage divider and a 0.1uF capacitor, the effective time constant is 50ms, which means that after 5 time constants (250ms) the capacitor can be considered fully charged to the voltage divider voltage, and you can take readings about 4x per second.

--
The Gadget Shield: accelerometer, RGB LED, IR transmit/receive, speaker, microphone, light sensor, potentiometer, pushbuttons

2 Likes