Blog  /  Raspberry Pi ADC- A Comprehensive Guide

Raspberry Pi ADC- A Comprehensive Guide

The Raspberry Pi microcontroller is one of the most useful MCUs in portable instrumentation applications. However, it lacks a built-in Analog-to-Digital Converter circuit; thus, it cannot read analog inputs. Hence, creating a raspberry pi ADC can improve the operability and versatility of the MCU. Therefore, we will delve into the basics of Raspberry Pi ADC. 

 

What is ADC, and Why is it necessary?

 

Connecting via ADC & digital to raspberry pi

Connecting via ADC & digital to raspberry pi

Source: Flickr

 

An analog-digital converter changes analog signals to digital signals. An Analog signal is an infinitely variable and continuous signal. On the other hand, digital signals are characterized by discrete amplitude and time. 

Having an ADC while using Raspberry Pi is vital because this microcontroller doesn't read analog signals. Hence, the analog-digital conversion module enables the compatibility of the Pi with other devices, making it analog-friendly. 

 

Best Raspberry Pi ADCs

 

Raspberry pi single board credit card size computer

Raspberry pi single board credit card size computer

 

Below are some of the top Raspberry ADC types: 

 

MPC3008: 8-channel 10-bit ADC

 

It is arguably the best external analog-digital converter with the following properties: 

  • The ADC is a 10-bit analog and eight-channel device that utilizes only four pins.
  • Secondly, you can use it in tandem with Python SPI code for reading analog devices such as temperature sensors and photocells. 
  • Also, it features a Serial Peripheral Interface.
  • Lastly, although it is not a hardware ADC, it is an external analog to digital convertor.

 

STM32F030: 8-Channel 12-Bit Raspberry Pi ADC

 

The ADC works on the STM32F030 microcontroller and is best suited for temperature and weight measurements. Also, the low-power MCU is relatively cheaper than an ADC module of a similar caliber. 

Its defining features include: 

  • It has a CRC calculation system and also features a real-time clock (RTC)
  • Operates on serial wire debug (SWD) system
  • Featuring five channels, the direct memory access system also supports various Raspberry modules. 
  • Lastly, it has a series of timers, including a SysTick timer and Advanced-control timers.

 

ADS1015 12-bit ADC

 

(ADC, or A-to-D) analog to digital converter

(ADC, or A-to-D) analog to digital converter

 

It is high precision and high-quality ADC capable of handling 3300 samples per second on an I2C (Inter-integrated Circuit) protocol. Further, you can set it either as two differential channels or four single-ended input channels. 

The ADC also has an x16 programmable gain amplifier handy in boosting small/ differential signals to full range. Also, you may opt to run it either on a power supply of 5V or 2V. Lastly, It's a high precision ADC renowned for featuring a Breakout board with ferrites. 

 

DFRobot Gravity 12C ADS1115 16-bit ADC

 

It is among the top ADC modules regarding compatibility with Raspberry Pi. Among its key characteristics include the following: 

  • The module is a 16-bit analog to digital converter. 
  • It has exceptionally high precision and also has a programmable gain adjustment allowance. 
  • With an I2C interface, the manufacturers have specifically designed it to work with the Pi microcontroller. 
  • It also features a high precision reference voltage and can work on 3.3V wide-voltage power supplies. 

 

ADS1115: 4-Channel 16-Bit Raspberry Pi ADC

 

The 4-channel ADC relies on the ADS1115 module. Therefore, it's the best fit ADC for battery monitoring and portable instrumentation-based operations. Its overarching features include the following: 

  • Firstly, it's a Raspberry Pi Zero form factor with a wide supply voltage range.
  • Furthermore, it has integrated analog Grove connectors and a programmable comparator.
  • The module also features internal components such as a PGA, low-drift voltage reference, and an oscillator. 
  • Moreover, it consumes a low current and features a relatively good programmable data rate of between 8SPS to 860SPS.
  • Also, the module features an input multiplexer (MUX) with 4-single ended inputs and two differentials. 
  • Lastly, it has a serial interface that is I2C-compatible. 

 

Projects with Raspberry Pi ADC

Now that you understand the operation of the Raspberry Pi ADC, here are some projects you can undertake: 

 

Raspberry Pi ADC Tutorial

 

Raspberry Pi single-board computer

Raspberry Pi single-board computer

 

It is a worthwhile project for Raspberry Pi beginner users. The essential parts you'll need for the project include: 

  • Any Raspberry Pi model
  • A 10K pot
  • Two 0.1µF capacitors
  • Any Pi ADC
  • A breadboard 
  • 17 pieces of 1KΩresistors 

Note that this circuit will work on a +5V supply voltage. Also, it’s capable of measuring voltage in the range of 0V to 5V. Furthermore, most ADCs feature a relatively high amount of noise. Therefore, a  0.1µF capacitor is significant for noise filtration. 

Also, note that the ADC operates on a Resistor-Capacitor oscillator clock system. Therefore, you can charge the second capacitor to a relatively lower value to improve the rate of ADC conversion. But remember that the high speed will compromise the accuracy of the ADC. 

Hence, you need to select a capacitor with a relatively high value for high accuracy. 

 

Interfacing Flex Sensor with Raspberry Pi ADC

 

It's similar to the above project, but this is relatively sophisticated as it features an analog sensor. Hence, in addition to the components outlined above, you need a flex sensor and a 16*2 LCD. 

 

How to Setup a Raspberry Pi Pressure Pad (FSR)

 

You can also make a pressure pad sensor capable of reading analog inputs. Also, this project is similar to the others highlighted above, but you need a pressure pad and additional resistors. 

Lastly, you can have a project involving 'Getting Started With The Raspberry Pi 16 Channel ADC HAT.' 

 

Summary

 

In a nutshell, we have highlighted all the essential insights of this logic level converter. Also, we have expounded on the best ADC modules compatible with the Pi microcontroller. But if you have further queries on this topic, feel free to engage us, and we'll reach back immediately.