ADC

In electronics, an analog-to-digital converter (ADC, A/D, or A-to-D) is a system that converts an analog signal, such as a sound picked up by a microphone or light entering a digital camera, into a digital signal. An ADC may also provide an isolated measurement such as an electronic device that converts an input analog voltage or current to a digital number representing the magnitude of the voltage or current. Typically the digital output is a two’s complement binary number that is proportional to the input, but there are other possibilities.
There are several ADC architectures. Due to the complexity and the need for precisely matched components, all but the most specialized ADCs are implemented as integrated circuits (ICs).
If the ADC performs the analog to digital conversion directly by utilizing the internally generated equivalent digital (binary) code for comparing with the analog input, then it is called as Direct type ADC.
The following are the examples of Direct type ADCs −
- Counter type ADC
- Successive Approximation ADC
- Flash type ADC
Counter type ADC
A counter type ADC produces a digital output, which is approximately equal to the analog input by using counter operation internally.
The block diagram of a counter type ADC is shown in the following figure −

The counter type ADC mainly consists of 5 blocks: Clock signal generator, Counter, DAC, Comparator and Control logic.
The working of a counter type ADC is as follows −
- The control logicresets the counter and enables the clock signal generator in order to send the clock pulses to the counter, when it received the start commanding signal.
- The countergets incremented by one for every clock pulse and its value will be in binary (digital) format. This output of the counter is applied as an input of DAC.
- DACconverts the received binary (digital) input, which is the output of counter, into an analog output. Comparator compares this analog value,VaVa with the external analog input value ViVi.
- The output of comparatorwill be ‘1’ as long as 𝑉𝑖 is greater than. The operations mentioned in above two steps will be continued as long as the control logic receives ‘1’ from the output of comparator.
- The output of comparatorwill be ‘0’ when ViVi is less than or equal to VaVa. So, the control logic receives ‘0’ from the output of comparator. Then, the control logic disables the clock signal generator so that it doesn’t send any clock pulse to the counter.
- At this instant, the output of the counter will be displayed as the digital output. It is almost equivalent to the corresponding external analog input value ViVi.
Successive Approximation ADC
A successive approximation type ADC produces a digital output, which is approximately equal to the analog input by using successive approximation technique internally.
The block diagram of a successive approximation ADC is shown in the following figure

The successive approximation ADC mainly consists of 5 blocks− Clock signal generator, Successive Approximation Register (SAR), DAC, comparator and Control logic.
The working of a successive approximation ADC is as follows −
- The control logicresets all the bits of SAR and enables the clock signal generator in order to send the clock pulses to SAR, when it received the start commanding signal.
- The binary (digital) data present in SARwill be updated for every clock pulse based on the output of comparator. The output of SAR is applied as an input of DAC.
- DAC converts the received digital input, which is the output of SAR, into an analog output. The comparator compares this analog value VaVawith the external analog input value ViVi.
- The output of a comparatorwill be ‘1’ as long as ViVi is greater than VaVa. Similarly, the output of comparator will be ‘0’, when ViVi is less than or equal to VaVa.
- The operations mentioned in above steps will be continued until the digital output is a valid one.
The digital output will be a valid one, when it is almost equivalent to the corresponding external analog input value ViVi.
Flash type ADC
A flash type ADC produces an equivalent digital output for a corresponding analog input in no time. Hence, flash type ADC is the fastest ADC.
The circuit diagram of a 3-bit flash type ADC is shown in the following figure −

The 3-bit flash type ADC consists of a voltage divider network, 7 comparators and a priority encoder.
The working of a 3-bit flash type ADC is as follows.
- The voltage divider networkcontains 8 equal resistors. A reference voltage VRVRis applied across that entire network with respect to the ground. The voltage drop across each resistor from bottom to top with respect to ground will be the integer multiples (from 1 to 8) of VR8VR8.
- The external input voltageViVi is applied to the non-inverting terminal of all comparators. The voltage drop across each resistor from bottom to top with respect to ground is applied to the inverting terminal of comparators from bottom to top.
- At a time, all the comparators compare the external input voltage with the voltage drops present at the respective other input terminal. That means, the comparison operations take place by each comparator parallelly.
- The output of the comparatorwill be ‘1’ as long as ViVi is greater than the voltage drop present at the respective other input terminal. Similarly, the output of comparator will be ‘0’, when, ViVi is less than or equal to the voltage drop present at the respective other input terminal.
- All the outputs of comparators are connected as the inputs of priority encoder.This priority encoder produces a binary code (digital output), which is corresponding to the high priority input that has ‘1’.
- Therefore, the output of priority encoder is nothing but the binary equivalent (digital output)of external analog input voltage, ViVi.
The flash type ADC is used in the applications where the conversion speed of analog input into digital data should be very high.
This is all about the Direct type ADC we also discuss about the practical use of ADC
ADC in Arduino
What is the ADC?
An Analog to Digital Converter (ADC) is a very useful feature that converts an analog voltage on a pin to a digital number. By converting from the analog world to the digital world, we can begin to use electronics to interface to the analog world around us.
Analog to Digital Conversion (ADC) is a very useful feature in microcontrollers to interface sensors. The main purpose of this features is to interface analog sensor with the Arduino UNO or any microcontroller. There are different physical quantities in nature like pressure, temperature, humidity and light intensity etc. Sometimes we develop the system that using these properties. While working on this property we first convert it in the digital so microcontroller can understand. For doing this we need Analog to Digital Conversion. Arduino UNO has 6 ADC channel from A0 to A5. For enabling this ADC feature we use the function analogRead().

Not every pin on a microcontroller has the ability to do analog to digital conversions. On the Arduino board, these pins have an ‘A’ in front of their label (A0 through A5) to indicate these pins can read analog voltages.
ADCs can vary greatly between microcontrollers. The ADC on the Arduino is a 10-bit ADC meaning it has the ability to detect 1,024 (2^10) discrete analog levels. Some microcontrollers have 8-bit ADCs (2^8 = 256 discrete levels) and some have 16-bit ADCs (2^16 = 65,536 discrete levels).
The way an ADC works is fairly complex. There are a few different ways to achieve this feat (see Wikipedia for a list), but one of the most common technique uses the analog voltage to charge up an internal capacitor and then measure the time it takes to discharge across an internal resistor. The microcontroller monitors the number of clock cycles that pass before the capacitor is discharged. This number of cycles is the number that is returned once the ADC is complete.
Reference:
https://en.wikipedia.org/wiki/Analog-to-digital_converter
https://electrosome.com/analog-to-digital-conversion-in-arduino-analog-pins/
https://learn.sparkfun.com/tutorials/analog-to-digital-conversion/all