What is the Arduino ADC Sampling Rate?

In this post we clarify the sampling rate numbers of the Arduino’s Analog-to-Digital converter.

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.

This rate determines the highest input signal frequency that can be sampled.

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 fro 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 15kSPS or 15,000 samples per second.


[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. 

Related Calculators

What is the sampling rate of the Raspberry Pi ADC?