# Voltage reference

Hi,

I want to make a precise measurement with Arduino. But the problem is that the voltage regulator that comes with my board (Arduino Uno) does not supply exactly 5V. So, I am considering to use an external reference (connected to Aref). My question is how I can guarantee a exact voltage at that pin (lets say 3.0V)? I came across to the LM723 ? Does anyone used this device? Is there any other good voltage regulator that I can use?

Hi Eduardo,

I think what you need is a voltage reference IC. Voltage references are like voltage regulators, with the difference that they are very precise (+-0.1%) and can not source much current. They are used exactly as what their name implies - voltage references. One such device, 3.0 V voltage reference is the ADR3430 from Analog Devices. (http://au.element14.com/analog-devices/adr3430arjz/ic-volt-ref-3v-6sot23/dp/1843662).

Hope that helps, -Igor

There is a round about way to maintain A/D calibration accuracy without having to use an external voltage reference.

Normally the default arduino reference used for A/D conversion is the voltage applied to the Avcc pin, +5volts for most boards. The problem is that USB power is not exactly +5vdc and even the on-board +5vdc can have a variation from exactly +5.00 volts. As most assume that 1023 counts = +5.00 volts you can see the reason for there to be a source of calibration error in most Arduino boards. Now all arduino boards have an optional internal 1.1vdc reference that one can use that won't be subject to error caused by +5 Vcc voltage variation, it however does require you not wire analog signals to the board unless their maximum range doesn't exceed 1.1vdc, either by voltage dividers or other ways. The Mega has a optional internal 2.56 voltage reference that can also be used this way.

However there is a way for a sketch to find out the exact voltage level that is powering it's chip via a read of the internal bandgap, and therefore calculate a correction factor in a mapping function so that calibration can be maintained with changing Vcc voltage while still using the Avcc as the reference. This can be especially usefull for battery powered arduinos where say 4 AA cells are wired directly to the Arduino +5vdc pin to power the board.

The topic and method were posted in the old forum and my reply #8 has the final code I developed with help "from Coding Badly". It's just a demo that prints out the calculated Vcc voltage and any voltage wired to analog pin 0. I tested the sketch by wiring a variable DC voltage regulator to power the board and saw that a 3.3vdc wired to pin A0 stayed accurate even while I adjusted the Vcc power from 5.5vdc down to 3.5vdc.

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1294478456/8

Again there are several methods to improve the accuracy of the Arduino A/D convertor, this just one 'zero' hardware method.

If you just want to improve your calibration accuracy for your specific board, then all that is required is that you measure your on-board +5 volt regulator and use the actual voltage to correct your error out with a mapping function.

Lefty

retrolefty: … it however does require you not wire analog signals to the board unless their maximum range doesn't exceed 1.1vdc

Is it no so that all analog inputs will be behind the on-chip multiplexer, operating in the Gnd to Vcc range, and so not really an issue with above 1.1V inputs present on other gates?

If you just want to improve your calibration accuracy for your specific board, then all that is required is that you measure your on-board +5 volt regulator and use the actual voltage to correct your error out with a mapping function.

This is my favorite approach and can also be applied to calibrate the 1.1V reference (measure voltage on the Aref pin and use it in calculations). The 1.1V reference is specified as 1.0, 1.1, 1.2 for min/typical/max and so about +/-10% which may be in excess of what the original poster expected.