Arduino Voltage Sensors: ADCs are one of the most useful modules allowing you to easily read analogue voltages with your Arduino.

Arduino Voltage Sensors let you:

  • Read analog signals within the voltage range of the microcontroller.

  • Read higher voltages using a resistive divider.

  • Make voltage measurements to a known accuracy.

  • Read analogue joysticks or the output of an LM35 temperature sensor etc.

Arduino Voltage Sensors are extremely useful for reading analog outputs in a circuit, converting an analogue signal into a digital representation of that signal.

You can do all manner of interesting things once you have that signal. For instance reading of temperature, current and light sensors. You can even process audio signals after processing the analogue signal from an Electret microphone.

The Arduino microcontrollers all have an in-built ADC (Analogue to Digital Converter) which, for most applications, is entirely suitable. However, sometimes you may need better resolution than the internal ADC can provide. You may want to get a noise free reading, or you simply need a more accurate result.

Note: External ADCs give better resolution, or allow differential operation.

You can do all of these things by using an external ADC, where you can control the ground plane and even cover the ADC in a metal shield box to eliminate noise from other parts of the circuit.

Note: With an external ADC you can control the effects of noise.

As a first step with Arduino voltage sensors, you can buy many different ADC conveniently fitted onto a breakout board to easily connect to the Arduino microcontroller. Most modern ADCs come packaged in surface mount chips so a breakout board lets you test them without creating a PCB.

TIP: Arduino Voltage Sensor breakout boards are super convenient for tests.

Arduino ADC

The Arduino Uno built in ADC is a 10-bit Successive approximation ADC and can make an analog reading in 104us. Since it is built-in and has quite good resolution and accuracy it is used extensively in Arduino projects.

There are 6 ADC microcontroller input pins (on the Arduino Uno) that allow an ADC reading. Other processors may have a different number of analog input pins. Each pin is multiplexed to the input of the ADC inside the chip so you can read each one in turn to read the analogue signal at the pin.

Click here to go to the "Arduino ADC" page.

Extreme Accuracy Arduino Voltage Sensors

ADS1115ads1115 breakout board

The ADS1115 is a highly accurate 16-bit ADC with a serial I2C interface and can accept any I2C speed from 100kHz to 3.4MHz. It has a built in reference and is usable for 5V ~ 2V systems. It has four inputs that you can use as four singled ended inputs or as two differential inputs.

An interesting feature is that gains and reference are fixed so you don't really choose a gain setting, instead, you choose a voltage range suitable for the signal you want to measure.

The differential mode is extremely important for making an accurate reading that ignores noise (since the noise is the same on each pin, the noise is effectively cancelled out).

Click here to go to the "ADS1115" page.

Low Cost Arduino Voltage Sensors

PCF8591PCF8591 breakout board

The PCF8591 is an 8-bit ADC with 4 input channels, and uses a serial I2C interface limited to an I2C speed of 100kHz which means the real sample rate is not the claimed 10kHz but below 2kHz.

However, it has a DAC output capability and can use the 4 inputs as 2 true-differential inputs. So, for lower sample rate use it is useful.

The differential input is useful for eliminating noise on the inputs (see comment about differential inputs with the ADS1115 on this page -it applies to this chip as well).

Click here to go to the "PCF8591" page.

Higher Sample Rate Arduino Voltage Sensors

MCP3008MCP3008 pinout a 200ksps 8 channel ADC

The MCP3008 is a 200ksps 10-bit ADC with 8 input channels, and uses a serial SPI interface that can operate up to 3.4MHz.

The sample rate is determined by the SPI clock and also how fast the processor can read the device (and process the information) so you won't get the claimed 200ksps sample rate. In fact it can be a lot lower - however you can choose a faster processor to increase speed - see the link to find out more.

There is a Pseudo differential input capability that is really only useful for eliminating small d.c. offsets (not for eliminating dynamic noise).

Note: Unlike the PCF8591 above, the SPI interface can run fast so the sample rate is only limited by the processor speed.

Click here to go to the "MCP3008" page.



Have your say about what you just read! Leave me a comment in the box below.

Don’t see the comments box? Log in to your Facebook account, give Facebook consent, then return to this page and refresh it.

Privacy Policy | Contact | About Me

Site Map | Terms of Use