Electronic – Auto-ranging A/D conversion

adcmicrocontrollervoltage divider

I often find the Arduino 10-bit A/Ds lacking in resolution for my needs. I much prefer auto-ranging voltmeters. Can I play the same game?

Can I divide my target voltage range into segments to increase resolution? How do you protect the inputs from over-voltage?

Best Answer

Auto ranging would typically be handled by adding a PGA (programmable gain amplifier) in front of your A/D converter. In some instances to make maximum utility of the range of your A/D converter you would also add a programmable offset into the PGA as well. The output of the PGA would get clamped via some diodes to the A/D converter reference voltage range.

Another scheme is to design multiple amplifiers, each with its own gain and offset, that sample the input signal and condition it in a particular way. Each of these amplifiers could be setup with trimpots to permit calibrating to a precise operating range. The outputs of these amplifiers would be gated to the A/D converter through a many to one Analog Multiplexor.

It is still possible to "calibrate" the scheme with the PGA amplifier with programmable offset by feeding known signal levels through the circuit and then noting the programmable settings it takes to get an aimed for output from the A/D converter. These would get stored into some non-volatile memory of the MCU to be used for adjusting/scaling the A/D readings to the proper values when taking readings of actual signals.