Blog Archive

Arduino Indonesia. Gambar tema oleh Storman. Diberdayakan oleh Blogger.

Supported by Electronics 3 in 1

1. Jasa pencetakan PCB single layer dengan harga paling murah.

(Metode Pembuatan dengan Transfer Toner)
>PCB design sendiri (siap cetak) : Rp.150,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

(Metode Sablon Full Masking dan Silk Screen minimal pemesanan 100 Pcs)
>PCB design sendiri (siap cetak) : Rp.200,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

2. Jasa perancangan, perakitan, dan pembuatan trainer pembelajaran elektronika untuk SMK dan Mahasiswa.

3. Jasa perancangan, perakitan, dan pembuatan berbagai macam kontroller, sensor, aktuator, dan tranduser.
>Design Rangkaian / Sistem Elektronika
>Design Rangkaian / Sistem Instrumentasi
>Design Rangkaian / Sistem Kendali
>Kerjasama Riset (data atau peralatan)
>Kerjasama Produksi Produk-Produk KIT Elektronika
>Produksi Instrumentasi Elektronika

4. Jasa Pembuatan Proyek, Tugas Akhir, Tugas Laboratorium, PKM, Karya Ilmiah, SKRIPSI, dll

Like My Facebook

Popular Posts

Selasa, 19 Agustus 2025

Teori Analog Input dan ADC (Analog to Digital Converter) pada Raspberry Pi Pico

Raspberry Pi Pico berbasis chip RP2040 hadir sebagai mikrokontroler keluaran Raspberry Pi Foundation. Salah satu fitur penting yang dimilikinya adalah kemampuan untuk membaca sinyal analog melalui Analog-to-Digital Converter (ADC). Dalam dunia elektronik dan embedded systems, ADC memegang peranan krusial karena banyak sensor menghasilkan output analog, seperti sensor suhu, cahaya, tekanan, dan lainnya. Artikel ini akan membahas secara mendalam tentang teori analog input, prinsip kerja ADC, implementasi ADC pada Raspberry Pi Pico, serta optimasi pembacaan sinyal analog. Pembahasan akan mencakup dasar-dasar elektronika analog, resolusi ADC, sampling rate, noise reduction, dan contoh kode pemrograman menggunakan MicroPython.  


Dasar-dasar Sinyal Analog

1. Pengertian Sinyal Analog

Sinyal analog adalah sinyal kontinu yang nilainya berubah seiring waktu dan dapat memiliki rentang nilai tak terbatas. Contohnya adalah tegangan output dari sensor LM35 (sensor suhu) atau LDR (Light Dependent Resistor). Berbeda dengan sinyal digital yang hanya memiliki dua keadaan (HIGH/LOW), sinyal analog bervariasi secara halus. Oleh karena itu, mikrokontroler seperti Raspberry Pi Pico memerlukan ADC untuk mengubah sinyal analog menjadi nilai digital yang dapat diproses.  

2. Karakteristik Sinyal Analog  

- Amplitudo: Besarnya tegangan sinyal (misalnya 0V - 3.3V).  

- Frekuensi: Kecepatan perubahan sinyal (Hz).  

- Noise: Gangguan yang mempengaruhi akurasi pembacaan.  


Analog-to-Digital Converter (ADC)

 

1. Pengertian ADC

ADC adalah komponen elektronik yang mengubah sinyal analog (seperti tegangan) menjadi nilai digital (bilangan biner) sehingga dapat diproses oleh mikrokontroler.  

2. Prinsip Kerja ADC 

Proses konversi analog ke digital melibatkan beberapa tahap:  

- Sampling: Mengambil sampel sinyal analog pada interval waktu tertentu.  

- Quantization: Membulatkan nilai sampel ke level terdekat berdasarkan resolusi ADC.  

- Encoding: Mengubah nilai kuantisasi menjadi bilangan biner.  

3. Resolusi ADC

Resolusi ADC menentukan tingkat detail hasil konversi. Raspberry Pi Pico memiliki ADC 12-bit, artinya dapat membagi tegangan referensi (3.3V) menjadi 2^12 = 4096 level.  

Contoh Perhitungan:  

- Jika tegangan input = 1.65V, maka nilai digital = (1.65V / 3.3V) × 4095 = 2047.  

4. Tegangan Referensi (Vref)

Tegangan referensi ADC pada Pico default-nya adalah 3.3V. Namun, RP2040 mendukung pengubahan Vref internal untuk meningkatkan akurasi.  

5. Sampling Rate  

Sampling rate adalah kecepatan ADC dalam mengambil sampel per detik. Pada Pico, kecepatan maksimum ADC sekitar 500 kS/s (kilo-samples per second), tetapi nilai praktisnya lebih rendah karena overhead pemrosesan.  

Catatan: Dalam praktik dengan MicroPython, kecepatan sampling nyata jauh lebih rendah karena overload interpreter. Jika butuh kecepatan tinggi, gunakan C/C++ SDK. 

 

ADC pada Raspberry Pi Pico

 

1. Pin ADC pada Raspberry Pi Pico

Raspberry Pi Pico memiliki 3 pin ADC yang dapat digunakan:  

- GP26 (ADC0)

- GP27 (ADC1)

- GP28 (ADC2)

- VSYS (ADC3, untuk monitoring tegangan supply)

Pin ini dapat membaca tegangan antara 0V - 3.3V. Jika melebihi 3.3V, diperlukan voltage divider.  

2. Spesifikasi ADC Raspberry Pi Pico

- Resolusi: 12-bit (0 - 4095)  

- Tegangan Input: 0V - 3.3V  

- Sampling Rate: Hingga 500 kS/s  

- Non-linearitas: ±2 LSB (Least Significant Bit)  

3. Noise dan Akurasi ADC

ADC pada Pico rentan terhadap noise karena:  

- Noise internal dari RP2040.  

- Impedansi sumber tinggi yang menyebabkan voltage drop.  

Solusi untuk meningkatkan akurasi:  

- Gunakan filter RC (low-pass filter).  

- Lakukan oversampling dan averaging.  

- Gunakan tegangan referensi eksternal jika diperlukan.  

 

Implementasi ADC dengan MicroPython

 

1. Membaca Nilai ADC Sederhana

Berikut contoh kode untuk membaca nilai ADC dari sensor potensiometer:  

 

from machine import ADC, Pin

import time


# Inisialisasi ADC pada GP26 (ADC0)

adc = ADC(Pin(26))


while True:

    nilai_adc = adc.read_u16()  # Membaca nilai 16-bit (0-65535)

    nilai_tegangan = (nilai_adc / 65535) * 3.3  # Konversi ke tegangan

    print("Nilai ADC:", nilai_adc, "Tegangan:", nilai_tegangan, "V")

    time.sleep(1)

 

Penjelasan:  

- adc.read_u16() mengembalikan nilai 16-bit (meskipun ADC 12-bit, nilai di-scale ke 16-bit).  

- Konversi ke tegangan dilakukan dengan rumus:   

tegangan = (nilai_adc / 65535) × 3.3V 

Catatan: Meskipun hardware ADC hanya 12-bit, MicroPython menskalakan hasilnya ke 16-bit. Jadi resolusi asli tetap 12-bit, tetapi nilai output berada di rentang 0-65535.

2. Meningkatkan Akurasi dengan Oversampling

Teknik oversampling mengambil banyak sampel dan merata-ratakannya untuk mengurangi noise.  


from machine import ADC, Pin

import time


adc = ADC(Pin(26))

samples = 100  # Jumlah sampel untuk averaging


while True:

    total = 0

    for _ in range(samples):

        total += adc.read_u16()

    rata_rata = total / samples

    tegangan = (rata_rata / 65535) * 3.3

    print("Tegangan rata-rata:", tegangan, "V")

    time.sleep(1)


3. Kalibrasi ADC

Karena ADC Pico memiliki offset, kalibrasi dapat dilakukan dengan mengukur nilai known voltage (misalnya 1.8V dari referensi eksternal) dan melakukan koreksi.  

Contoh rumus koreksi offset:

 

nilai_koreksi = (nilai_adc / 65535) * 3.3 * faktor_kalibrasi


Catatan: faktor_kalibrasi didapat dari pengukuran tegangan referensi eksternal.


Aplikasi Praktis ADC pada Raspberry Pi Pico

 

1. Membaca Sensor Suara (Microphone)

Sensor suara analog seperti electret microphone menghasilkan sinyal AC kecil. Dengan ADC, kita bisa membaca amplitudo suara.  

2. Monitoring Sensor Cahaya (LDR)

LDR berubah resistansinya berdasarkan intensitas cahaya. Dengan voltage divider, kita bisa mengukur perubahan tegangan.  

3. Pengukuran Suhu (LM35)

LM35 menghasilkan tegangan linear terhadap suhu (10mV/°C). ADC dapat mengonversinya menjadi nilai digital.  

 

Optimasi dan Troubleshooting ADC

 

1. Mengurangi Noise dengan Filter RC

Pasang kapasitor (100nF) antara pin ADC dan ground untuk memfilter noise frekuensi tinggi.  

2. Menggunakan External Voltage Reference

Jika akurasi sangat penting, gunakan referensi eksternal seperti REF3033 (3.3V precision reference).  

3. Menghindari Ground Noise

Pastikan ground sensor dan Pico terhubung dengan baik untuk menghindari perbedaan potensial.  


ADC pada Raspberry Pi Pico memungkinkan pembacaan sinyal analog dengan resolusi 12-bit. Dengan pemahaman yang baik tentang sampling rate, noise reduction, dan kalibrasi, kita dapat mengoptimalkan pembacaan sensor analog untuk berbagai aplikasi IoT, robotika, dan sistem kontrol.  

Dengan teknik seperti oversampling, filtering, dan penggunaan referensi tegangan eksternal, akurasi ADC dapat ditingkatkan secara signifikan. Implementasi menggunakan MicroPython juga memudahkan prototyping tanpa perlu pemrograman tingkat rendah yang rumit.  

 

Baca juga: Pengenalan Fungsi LED Onboard di Raspberry Pi Pico

 

 

 

 

 

 

 

 

 

Siap Untuk Membuat Proyek Impianmu Menjadi Kenyataan?

Klik di sini untuk chat langsung via WhatsApp dan dapatkan dukungan langsung dari tim ahli kami! 

 

0 on: "Teori Analog Input dan ADC (Analog to Digital Converter) pada Raspberry Pi Pico"