Buka Senin - Jumat jam 08.30 s/d jam 16.30 , Sabtu Jam 8.30 s/d jam 13.00 , Minggu tutup
  • Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
  • Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
Beranda » Blog » Tutorial Membaca Input Analog Menggunakan ADC MCP3008 pada Arduino Uno

Tutorial Membaca Input Analog Menggunakan ADC MCP3008 pada Arduino Uno

Diposting pada 18 December 2025 oleh indo maker / Dilihat: 14 kali / Kategori: ,

Secara bawaan, Arduino Uno sebenarnya sudah memiliki pin analog. Tapi pada beberapa proyek, terutama saat jumlah sensor analog semakin banyak, kita bisa memanfaatkan ADC eksternal seperti MCP3008. Dengan menggunakan MCP3008, Arduino dapat membaca lebih banyak input analog sekaligus melalui satu jalur komunikasi.

Pada percobaan ini, kamu akan belajar cara membaca nilai analog dari potensiometer menggunakan chip ADC MCP3008 dan Arduino Uno. Nilai analog tersebut nantinya akan ditampilkan melalui Serial Monitor.

Mengenal MCP3008

MCP3008 adalah chip Analog to Digital Converter (ADC) dengan 8 channel input analog dan resolusi 10-bit. Artinya, setiap input analog akan dikonversi menjadi nilai digital antara 0 sampai 1023.

Gambar 1. Pinout Kaki MCP3008

Chip ini berkomunikasi menggunakan antarmuka SPI (Serial Peripheral Interface), sehingga hanya membutuhkan beberapa pin digital Arduino untuk membaca banyak input analog. MCP3008 sangat cocok digunakan saat kamu membutuhkan pembacaan banyak sensor analog secara bersamaan.

Alat dan Bahan yang Diperlukan

Untuk menjalankan percobaan ini, siapkan komponen berikut:

  • Arduino Uno Trainer Kit
  • ADC MCP3008
  • Potensiometer
  • Breadboard
  • Kabel jumper
  • Software Arduino IDE

Wiring Rangkaian

Koneksi MCP3008 ke Arduino Uno

  • Pin VDD MCP3008 dihubungkan ke pin 5 volt
  • Pin VREF MCP3008 dihubungkan ke pin 5 volt
  • Pin AGND MCP3008 dihubungkan ke ground
  • Pin DGND MCP3008 dihubungkan ke ground
  • Pin CLK MCP3008 dihubungkan ke pin D13
  • Pin DOUT MCP3008 dihubungkan ke pin D12
  • Pin DIN MCP3008 dihubungkan ke pin D11
  • Pin CS MCP3008 dihubungkan ke pin D10 Arduino

 Koneksi Potensiometer

  • Kaki pin 1 potensiometer dihubungkan ke 5 volt Arduino
  • Kaski pin 2 potensiometer dihubungkan ke CH0 MCP3008
  • Kaki pin 3 potensiometer dihubungkan ke ground Arduino

Gambar 2. Wiring Rangkaian Pembacaan Nilai Analog dengan MCP3008

Dengan rangkaian ini, perubahan posisi potensiometer akan menghasilkan perubahan tegangan yang dibaca oleh MCP3008.

Menulis Program Membaca MCP3008 dengan Arduino

Setelah rangkaian selesai, buka Arduino IDE dan tuliskan program berikut, lalu unggah ke papan Arduino Uno.

#include <SPI.h>

const int csPin = 10;

void setup() {
  Serial.begin(9600);
  pinMode(csPin, OUTPUT);
  digitalWrite(csPin, HIGH);
  SPI.begin();
}

int readMCP3008(byte channel) {
  byte command = 0b11000000 | (channel << 3);

  digitalWrite(csPin, LOW);
  SPI.transfer(command);
  int highByte = SPI.transfer(0x00);
  int lowByte = SPI.transfer(0x00);
  digitalWrite(csPin, HIGH);

  int value = ((highByte & 0x0F) << 8) | lowByte;
  return value;
}

void loop() {
  int potValue = readMCP3008(0);
  Serial.print("Nilai Potensiometer: ");
  Serial.println(potValue);
  delay(500);
}

Penjelasan Kode

  • #include <SPI.h> digunakan untuk memanggil pustaka SPI agar Arduino dapat berkomunikasi dengan MCP3008
  • const int csPin = 10; digunakan untuk menentukan pin chip select yang mengaktifkan komunikasi SPI
  • pinMode(csPin, OUTPUT); digunakan untuk mengatur pin CS sebagai keluaran
  • begin(); digunakan untuk menginisialisasi komunikasi SPI
  • readMCP3008() digunakan sebagai fungsi untuk membaca data analog dari kanal tertentu pada MCP3008
  • transfer() digunakan untuk mengirim dan menerima data melalui jalur SPI
  • ((highByte & 0x0F) << 8) | lowByte digunakan untuk menggabungkan data menjadi nilai 10 bit
  • println(potValue); digunakan untuk menampilkan hasil pembacaan potensiometer ke Serial Monitor

Hasil Percobaan

Setelah program dijalankan dan Serial Monitor dibuka, Arduino akan menampilkan nilai potensiometer secara real time. Saat knob potensiometer diputar, nilai yang ditampilkan akan ikut berubah.

Jika potensiometer diputar ke satu arah, nilai akan semakin kecil. Jika diputar ke arah sebaliknya, nilai akan semakin besar. Perubahan ini terjadi secara halus dan terus-menerus, menandakan bahwa Arduino berhasil membaca input analog melalui MCP3008 dengan benar.

Gambar 3. Hasil Percobaan Membaca Nilai Analog pada Serial Monitor

Percobaan ini menunjukkan bahwa Arduino dapat menggunakan ADC eksternal untuk membaca sinyal analog tambahan. Konsep ini sangat berguna ketika jumlah pin analog bawaan Arduino sudah tidak mencukupi.

Bagikan ke

Tutorial Membaca Input Analog Menggunakan ADC MCP3008 pada Arduino Uno

Saat ini belum tersedia komentar.

Silahkan tulis komentar Anda

Tutorial Membaca Input Analog Menggunakan ADC MCP3008 pada Arduino Uno

Produk yang sangat tepat, pilihan bagus..!

Berhasil ditambahkan ke keranjang belanja
Lanjut Belanja
Checkout
Produk Quick Order

Pemesanan dapat langsung menghubungi kontak dibawah: