Most general-purpose microcontrollers feature an analog-to-digital converter or AD converter or ADC that allows you to measure voltages with. The resolution of these AD converters varies from eight bits up to sometimes even 24 bits, but ten or twelve bits are the most common resolutions. A 10-bit resolution corresponds to 1024 steps, which is 0.1% resolution. If the input voltage range is from zero to say 5 V, then one step is almost 5 mV. That is very good accuracy, much better than you need most of the time, but how can you profit from it in a real-life situation?

The ATMega328 microcontroller as mounted on the Arduino UNO board has a 10-bit AD converter. Let’s use its function analogRead to measure some voltages with.

AD Converters Are Not So Easy

In this video we show how to configure an Arduino UNO board for precise voltage measurements. A good-quality power supply is required for this. Also, you must know the exact value of the reference voltage the AD converter is using. Do not simply assume that it is 5 V or so, measure it. If you follow the instructions carefully then you too can take accurate measurements with an Arduino board.
 

Resources