Skip to Content

ADC MCP3008 10-Bit 8-Channel DIP IC

The MCP3008 DIP is a high-performance 10-bit Analog-to-Digital Converter (ADC) IC designed to add analog input capability to microcontrollers and single-board computers. Featuring 8 analog input channels, SPI communication, and low power consumption, the MCP3008 enables devices such as Raspberry Pi, Arduino, ESP32, STM32, and other digital systems to accurately measure analog voltages from sensors, potentiometers, joysticks, and other analog devices. Packaged in a standard 16-pin DIP form factor, it is ideal for breadboard prototyping, educational projects, and embedded system development. The MCP3008 operates from 2.7V to 5.5V and supports sampling rates up to 200k samples per second.

Package Includes:

  • 1x MCP3008 10-Bit 8-Channel ADC DIP IC


32.00 AED 32.00 AED (Tax included)

Terms and Conditions
30-day money-back guarantee
Shipping: 2-3 Business Days

 

Features:

  • 10-Bit Resolution: Converts analog signals into digital values ranging from 0 to 1023.
  • 8 Analog Input Channels: Supports up to eight single-ended analog inputs or four differential input pairs.
  • SPI Communication Interface: Industry-standard SPI interface for fast and reliable communication.
  • High Sampling Rate: Up to 200k samples per second at 5V operation.
  • Wide Operating Voltage: Operates from 2.7V to 5.5V.
  • Low Power Consumption: Typical active current of only 425µA.
  • Breadboard Friendly: Standard 16-pin DIP package for easy prototyping.
  • Single-Ended and Differential Inputs: Flexible input configurations for various sensing applications.

 

Principle of Work:

The MCP3008 operates using Successive Approximation Register (SAR) Analog-to-Digital Conversion technology.

  1. Analog Signal Input: An analog voltage is applied to one of the input channels (CH0–CH7).
  2. Sample and Hold: The internal sample-and-hold circuit captures the input voltage.
  3. SAR Conversion: The SAR ADC compares the sampled voltage against internal reference levels.
  4. Digital Output: A 10-bit digital value (0–1023) representing the input voltage is generated.
  5. SPI Transmission: The conversion result is transmitted to the microcontroller through the SPI interface.

Interaction with MCU (Microcontroller Unit):

  1. Power Supply: Connect VDD and VREF to the desired operating voltage.
  2. SPI Communication: Connect CLK, DIN, DOUT, and CS to the MCU SPI pins.
  3. Analog Inputs: Connect sensors to CH0–CH7.
  4. Read ADC Values: The MCU sends commands through SPI and receives 10-bit conversion data.
  5. Data Processing: Convert ADC readings into voltage, temperature, pressure, light intensity, or other sensor measurements.

Pinout:

MCP3008 Analog-to-Digital Converter | PiRecipes

Pin Name Description
1 CH0 Analog Input Channel 0
2 CH1 Analog Input Channel 1
3 CH2 Analog Input Channel 2
4 CH3 Analog Input Channel 3
5 CH4 Analog Input Channel 4
6 CH5 Analog Input Channel 5
7 CH6 Analog Input Channel 6
8 AGND Analog Ground
9 CH7 Analog Input Channel 7
10 DGND Digital Ground
11 CS/SHDN Chip Select
12 DIN SPI Data Input (MOSI)
13 DOUT SPI Data Output (MISO)
14 CLK SPI Clock
15 VREF Reference Voltage Input
16 VDD Power Supply

Applications:

  1. Adding analog inputs to Raspberry Pi systems
  2. Sensor interfacing and data acquisition
  3. Environmental monitoring systems
  4. Industrial automation and control
  5. Robotics and autonomous systems
  6. Battery voltage monitoring
  7. Light, temperature, and pressure sensing
  8. Multi-channel data loggers
  9. Instrumentation and measurement equipment
  10. IoT monitoring systems

Circuit (Arduino Example):

Adc Spi 2pcs MCP3008 10-Bit ADC Converter | 8-Channel SPI Interface | DIP-16  Package For DIY Electronics & Arduino 8-channel 10-bit Analog To Digital  SPI Interface Chip

MCP3008 Pin Arduino UNO
VDD 5V
VREF 5V
AGND GND
DGND GND
CLK D13 (SCK)
DOUT D12 (MISO)
DIN D11 (MOSI)
CS D10 (SS)
CH0 Potentiometer Wiper

Library:

For Arduino, the Adafruit MCP3008 library can be used to simplify communication with the ADC.

Code:

#include <SPI.h>
#include <Adafruit_MCP3008.h>

Adafruit_MCP3008 adc;

void setup() {
  Serial.begin(9600);
  adc.begin(10);
}

void loop() {
  int value = adc.readADC(0);

  Serial.print("CH0 = ");
  Serial.println(value);

  delay(500);
}

Code Explanation:

  1. Initialize SPI: Establishes SPI communication with the MCP3008.
  2. Configure Chip Select: Uses pin 10 as the CS pin.
  3. Read Channel: Retrieves the 10-bit ADC value from CH0.
  4. Display Result: Outputs the ADC reading to the Serial Monitor.
  5. Continuous Monitoring: Repeats every 500ms.

Technical Specifications:

  • Model: MCP3008
  • Architecture: SAR ADC
  • Resolution: 10-bit
  • Input Channels: 8 Single-Ended or 4 Differential
  • Interface: SPI
  • Sampling Rate: Up to 200ksps
  • Supply Voltage: 2.7V – 5.5V
  • Operating Current: Typical 425µA
  • Standby Current: Typical 5nA
  • Package: 16-Pin DIP
  • Operating Temperature: -40°C to +85°C
  • DNL: ±1 LSB
  • INL: ±1 LSB

Resources: