Analogue to digital converter Buyers Guide
Created 03/10/2015 | Choosing an analogue to digital converter
We sell a range of analogue to digital expansion boards for the Raspberry Pi which can also be used on other platforms such as Arduino.
This guide is to help you choose the best ADC board for your application.
When selecting an ADC you need to consider the characteristics of the ADC for your needs.
- Input voltage range - Many analogue to digital converters have a single ended input range of 0 to 2.048 volts or a differential input range of -2.048 to + 2.048
- Interface - ADC chips will either use I2C or SPI bus interfaces. SPI is faster but you are limited by the number of devices the SPI bus can accept. I2C is slower but you can connect many more devices to the I2C host machine
- Number of channels - this is the number of voltage inputs you can connect to the boards.
- Sensitivity - The sensitivity of an ADC chip is measured by its bit rate. A higher bit rate means that the chip has a higher resolution for measuring the input voltage but this comes at the expensive of the speed of the readings. Our ADC boards have bit rates of between 12 bit and 18 bit.
- Sample Rate - This is the speed in which the ADC chip can sample and report the input voltage. The ADC DAC Pi can sample several thousand times per second whereas the ADC Pi & ADC Differential Pi can sample between 3.5 (18-bit mode) and 120 (12-bit mode) samples per second on each input channel but at a higher resolution than the faster ADC DAC Pi boards.
How many inputs do you need to measure?
Up to two inputs:
The ADC DAC Pi and ADC DAC Pi Zero is a 2 channel 12-bit high speed analogue to digital converter which measures between 0 and 3.3 Volts
More than two inputs:
Do you need to read a positive voltage between 0 and 5 volts?
The ADC Pi Plus and ADC Pi Zero are an 8 channel 17 bit analogue to digital converter which measures between 0 and 5 Volts using its onboard voltage divider. They can be stacked to give you up to 32 analogue inputs.
Do you need to be able to read a differential voltage inputs and/or single ended inputs?
ADC Differential Pi is an 8 channel 18 bit analogue to digital converter which allows you to measure an input range of -2.048 volts to + 2.048 volts on each channel. Each channel can also be used in single-ended mode by connecting the negative side of the input to the GND pads. The ADC chip will then measure an input range of 0 to 2.048 volts which you can then expand the input range using an external resistor voltage divider.
Expanding the ADC input voltage range.
You can use a voltage divider to expand the input level on each input.
We have a Voltage Divider Calculator on https://www.abelectronics.co.uk/tools/resistor-voltage-divider.aspx which will allow you to enter the input voltage and output voltage to calculate the resistors you will need to make your voltage divider to expand the ADC input range.
When using a voltage divider, you will need to multiply the output voltage from the python library with the scale factor from your divider.
The input impedance of the ADC can have an effect of the measured voltage from your circuit. The MCP3424 chip which is used on the ADC Pi and ADC Differential Pi have a very high input impedance of 2.25M ohms which would cause very little additional load on your circuit but when using a voltage divider this will lower the input impedance and this can cause additional current load and potential voltage drop on the circuit being measured.