● online
- 10X RESISTOR 1K 1KOHM 1/4W 1% METAL FILM....
- USB To RS485 High Speed Converter RS-485 RS 485 Ad....
- LM35DZ Sensor Suhu - LM35....
- TP5100 4.2v 8.4v 1S 2S Single / Double Cell Lithiu....
- Raspberry Pi 4 Model B - 2GB RAM Raspberry Pi 4B....
- MP3 TF 16P Alternatif DFPlayer mini MP3 Player Ard....
- Max7219 Led Dot Matrix 32x8 Display Module For Ard....
- Modul Sensor Tegangan AC Bolak balik 220V Listrik ....
- 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.
Tutorial Membaca Input Analog Menggunakan ADC MCP3008 pada Arduino Uno
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.
Tutorial Membaca Input Analog Menggunakan ADC MCP3008 pada Arduino Uno
MPU6050 merupakan sebuah sensor yang berfungsi untuk mengukur percepatan suatu benda yang bergerak. Nah kali ini kita akan belajar... selengkapnya
Sensor DS18b20 merupakan sebuah sensor untuk mendeteksi suhu ruangan, namun bisa juga untuk suhu air tergantung dari jenis... selengkapnya
Pada artikel sebelumnya kita sudah belajar untuk mendaftar ke thingspeak, jika belum silahkan bisa di lihat DISINI. Oke sip... selengkapnya
SW-420 adalah sensor untuk mendeteksi getaran, cara kerja sensor ini adalah dengan menggunakan 1 buah pelampung logam yang berisi 2... selengkapnya
Sensor Ultrasonik adalah sensor yang bekerja berdasarkan pantulan gelombang suara untuk mendeteksi keberadaan sebuah objek. Sensor ultrasonik terdapat dua bagian... selengkapnya
Sensor sentuh merupakan sebuah saklar yang cara penggunaanya dengan cara disentuh menggunakan jari. Ketika sensor ini disentuh maka sensor... selengkapnya
Sensor PIR (Passive Infrared) berfungsi sebagai pendeteksi gerakan berbasis suhu tubuh, khususnya radiasi inframerah yang dipancarkan oleh manusia dan hewan... selengkapnya
Panel P10 LED Matrix merupakan sebuah display berisi kumpulan led-led yang disusun secara matrix. Fungsinya untuk menampilkan informasi berupa... selengkapnya
IC AtMega328p pada Arduino Uno anda rusak? panas? atau anda ingin membuat sistem minimum sendiri? tenang solusinya adalah dengan... selengkapnya
SIM800C adalah modul GSM / GPRS yang bekerja di frekuensi 850 – 1900 MHz, modul ini dapat membaca SMS... selengkapnya
Spesifikasi : – 16×2 – Warna Biru – Tegangan kerja : 5v Digunakan untuk keperluan display project seperti Arduino, Raspberry,… selengkapnya
Rp 17.00012A 300W DC Buck Step Down Converter CC CV Driver LED charge Battery Spesifikasi: Input Voltage: 5-40V Output Voltage: 1.2-35V… selengkapnya
Rp 39.400Specifications: 1. supports sampling costs (KHz): 8/11.025/12/16/22.05/24/32/44.1/48 2. 24-bit DAC output, dynamic range aid: 90dB, SNR aid: 85dB 3. fully… selengkapnya
Rp 17.800MERK : TOWER PRO MG995 180 derajat Specifications Weight: 55 g Dimension: 40.7 x 19.7 x 42.9 mm approx. Stall… selengkapnya
Rp 36.300Kabel jumper 20 cm merk Dupont untuk Arduino Female to male 1 lembar = 40 kabel
Rp 11.300Kabel Jumper Dupont Pelangi 10 cm male to male 1 lembar = 40 kabel
Rp 13.000Spesifikasi : – 16×2 – Warna Biru – Tegangan kerja : 5v – Sudah include module I2C Backpack dan tersolder… selengkapnya
Rp 30.000Warna : biru dan merah Bahan Alumunium 25T include baut 2 pcs
Rp 8.750ESR meter/LCR meter dengan layar lebar lebih jelas dan mantap dan dengan tempat batre jd lebih rapih batre lebih aman… selengkapnya
Rp 131.000 Rp 134.000Compatibility: USB v2.0 standard Interface: Network: USB Series: RS-485 Port: an independent RS-485 Connector: Network: USB type A connector Series:… selengkapnya
Rp 38.800

Saat ini belum tersedia komentar.