What is the Arduino ADC Sampling Rate?

The maximum sampling rate or speed of the Arduino’s Analog-to-Digital converter is 15 kilo-samples per second or 15,000 samples per second.

In this post we get into the details – explain why this is important and what it means.

What is an ADC?

An analog-to-digital converter (abbreviated ADCA/D, or A-to-D) is a component that converts an analog signal to its digital equivalent. Use this tool to convert analog to digital value. Once this conversion is performed, the digital signal can be processed by the microcontroller. Every digital system that interfaces with the real world requires an ADC.

What is Sampling Rate?

The sampling rate of an Analog-to-digital converter is the speed at which it samples an Analog waveform or signal. If it is sampled 10 times every second then the sampling rate is 10 Hz.

Why is Sampling Rate important?

Knowing this rate is useful as it determines the highest input signal frequency (also called the Nyquist frequency) that can be sampled without aliasing. In the case of the Arduino it is half the sampling rate or 7.5 kHz. In other words the maximum analog input signal should not exceed this number.

Increasing the sampling frequency will not damage the device. It will however cause aliasing. This post explains aliasing and also includes a calculator to find the aliased signal components.

ADC parameters

The Arduino Uno [1] uses the ATmega328P microcontroller [2] and has 8 Analog input pins. The resolution of the ADC is 10 bits. This means that the digital output is a number from 0 to 1023. Use this calculator to find the ADC resolution.

The minimum clock frequency into the microcontroller is 50 kHz and the maximum frequency is 200 kHz.

Many people confuse this to be the sampling rate of the ADC. The sampling rate of the Arduino is not 200 kHz.

This frequency is scaled down to create a clock that feeds the ADC (shown in the picture below).

The maximum sampling rate of the ADC is actually lower. From the same data sheet, we can see that it is 15 kSPS. This means that a 200 kHz clock rate has to be divided down.

The maximum sampling rate of the Arduino’s ADC is 15 kSPS or 15,000 samples per second.

Notes

[1] Arduino Uno Data sheet

[2] ATmega 328P data sheet

[3] From the application note: Understanding ADC parameters The combination of the sampling time and the hold time, is called conversion time. This is usually represented in number of clock cycles. The conversion time is the primary parameter in deciding the speed of the ADC.

[4] The representation of the sampling rate number as 15 kSPS means that it includes the conversion time. The conversion time for the ADC is 13 clock cycles. This is the time period for which the analog input value must be held constant. Use this calculator to find the sampling rate from the conversion and Sample and Hold times.

Related Posts and Calculators