Skip to main content

4. ADC pada ATmega328p

4.1 Spesifikasi ADC ATmega328p

ATmega328p (yang digunakan pada Arduino Uno) memiliki ADC terintegrasi (built-in) dengan spesifikasi sebagai berikut:

Spesifikasi Nilai
Resolusi 10-bit (menghasilkan nilai 0 – 1023)
Metode konversi Successive Approximation
Jumlah channel input 8 channel analog (A0 – A7), dimultipleks
Tegangan referensi AVcc, Internal 2.56V, atau pin AREF eksternal
Kecepatan konversi 50 kHz – 200 kHz (tergantung prescaler)
Register hasil ADCL (low-byte) + ADCH (high-byte)

4.2 Metode Successive Approximation

image

ATmega328p menggunakan metode Successive Approximation Register (SAR). Pada metode ini, ADC bekerja dengan cara melakukan pencarian biner (binary search) terhadap nilai Vin.

Pada setiap langkah:

  • SAR menetapkan bit percobaan
  • DAC menghasilkan tegangan Vdac
  • Comparator membandingkan Vin dengan Vdac
  • Bit dipertahankan atau diubah berdasarkan hasil perbandingan

Proses ini diulang sebanyak N kali (N = resolusi ADC, yaitu 10-bit untuk Atmega328p).

Contoh dari implementasi SAR dapat dilihat di gambar ini :

image

  1. Dimulai dari nilai tengah (1000)
    Ini adalah representasi ½ dari Vref (MSB = 1).
  2. Perbandingan pertama (Comparator)
    • Jika Vdac > Vin → bergerak ke bawah (panah merah)
    • Jika Vdac < Vin → bergerak ke atas (panah hijau)
  3. Penentuan bit berikutnya
    Setiap langkah menentukan 1 bit tambahan.
    Contoh:
    • 1000 → 1100 (jika Vin lebih besar)
    • 1000 → 0100 (jika Vin lebih kecil)
  4. Proses berulang (Binary Search)
    Range nilai terus dipersempit hingga semua bit (MSB → LSB) ditentukan.
  5. Hasil akhir
    Node paling kanan menunjukkan kode biner final.
    Contoh hasil: 1011, 0110, dll.