I am studying Arduino ADC and I have not much background in micro-controllers. Excuse me if this question is too basic.
I found that people use external ADC for better resolution as compared to the built-in ADC of Arduino. One thing which I could not understand was the bit resolution. I saw people using ADS 1115( 16 bit) with Arduino ( 10 bit). How does Arduino measure such resolution when Arduino Mega's resolution is 10 bit itself? What would be the point of using an external ADC with a resolution higher than that of Arduino Mega's ADC?
-
\$\begingroup\$ Do you understand the difference between analog and digital? \$\endgroup\$DKNguyen– DKNguyen2021年01月26日 14:29:31 +00:00Commented Jan 26, 2021 at 14:29
-
\$\begingroup\$ Hello DKNguyen. I know the difference between Analog and digital. I found that the ADC of Arduino has a 10-bit resolution. I am not getting how External ADC's digital data is received by Arduino. \$\endgroup\$Basit Ali– Basit Ali2021年01月26日 14:31:00 +00:00Commented Jan 26, 2021 at 14:31
-
\$\begingroup\$ External ADC's digital data is received by Arduino via some sort of digital protocol supported by external ADC IC. Usually it's SPI or I2C. \$\endgroup\$NStorm– NStorm2021年01月26日 15:25:43 +00:00Commented Jan 26, 2021 at 15:25
1 Answer 1
An external ADC is its own "machine" that runs separately from the Arduino and after it measures the analog signal, it sends that measurement data digitally to the Arduino, which has nothing to do with Arduino's 10 bit ADC. The Arduino doesn't measure anything in this case; It just receives data.
External ADCs can be much faster, much higher resolution, and/or lower noise. They can also have all sorts of exotic bells and whistles (higher voltage, isolated, bipolar voltage, simultaneous sampling, etc). You can also have two ADCs with same speed and resolution but different conversion methods which have different benefits.
The ADC you find on an MCU is usually the cheapest, simplest ADC the designers could get away with.