Electronic – Arduino Nano: Measuring tiny voltages with an analogue input

adcarduino

I need to measure 0v to 40mV as accurately as possible with the 10-bit ADC on an Arduino Nano. I only need approximately one sample per second.

I plan to hold the AREF pin at 40mV above ground, properly shield everything, use low-pass filters in hardware and software and use a properly smoothed power supply.

  • What sort of accuracy am I likely to get?

  • What else could I do to improve the accuracy?

Best Answer

There are better experts on the Nano's ADC than me but I'm sure it will have some problems so I would suggest an amplifier for sure. I would recommend an op-amp running from 5V (or whatever the nano uses) and 0V. The op-amp will need rail-to-rail capabilities on input and output and be configured in non-inverting mode with gain that converts 40mV to full-scale on the nano.

enter image description here

If full scale is (say) 3V, you'll need a gain of 3/0.04 = 75. This means R2/R1 = 74 (75 minus 1).

R1 will be happy to be 100 ohms and therefore R2 will be 7400 ohms (7k5 in parallel with 560k gives 7k401 which will hopefully be near enough. The op-amp is only required to run at slow speeds having read your question and there are several devices that will suit. Hold fire while I post the answer and take a look...

The AD8538 looks suitable and so does the AD8628 but there are probably several more that easily fit the bill