Changing resolution of AnalogRead() on Arduino Uno


As I understand the analogRead() function has a resolution of 5V/1024= 4.9mV. Now I try to increase the resolution to 50mV to avoid unwanted noise plus I don't need it to be as low as 4.9mV. I am wondering if there's any good ways to do it.


I am wondering if there's any good ways to do it.

Only with software dividing the reading, you can not affect the hardware resolution in this direction.

Hi Grumpy_Mike,

Any recommendation of what direction I should take? I am a bit confused by the meaning of "software dividing the reading".


50mV is greater than 4.9mV - that's a reduction in resolution.

My bad, its a reduction in resolution. Any thought?

int value = analogRead(A0) / 10;

As said before, simply divide.

It may be as well to add five before you divide by ten.

Have a look at this Application Note from Atmel about Enhancing ADC resolution by oversampling.

There seems to be some confusion about whether you require a higher resolution, or a lower resolution.

Maybe it is a bit like a x10 oscilloscope probe - it doesn't multiply the signal by 10, it divides it by 10