Penerapan ADC pada Arduino Uno Menggunakan Proteus

1️ Tujuan Praktikum

Setelah praktikum ini, mahasiswa mampu:

  1. Memahami prinsip kerja ADC pada Arduino Uno
  2. Menjelaskan hubungan tegangan analog – nilai digital ADC
  3. Memahami pengaruh resolusi ADC dan sampling
  4. Mengimplementasikan pembacaan ADC menggunakan Proteus
  5. Mengonversi nilai ADC menjadi tegangan aktual

2️ Dasar Teori Singkat (Ringkas & Relevan)

    • Arduino Uno memiliki ADC 10-bit
    • Jumlah level digital:

210=1024⇒(0–1023)

    • Resolusi ADC @ 5V:

Rumus Konversi:

3️ Alat dan Bahan (Proteus)

🧰 Software:

        • Proteus ISIS

🔌 Komponen:

        • Arduino Uno
        • Potentiometer (10kΩ)
        • Voltmeter (Proteus)
        • Resistor (opsional)
        • Virtual Terminal (Serial Monitor)
        • Power & Ground

4️ Rangkaian Praktikum di Proteus

🔧 Konfigurasi Rangkaian:

    • Potensiometer:
      • Pin 1 → 5V
      • Pin 2 (wiper) → A0 Arduino
      • Pin 3 → GND
    • Virtual Terminal:
      • RX → TX Arduino
    • Voltmeter:
      • Dipasang di wiper potensiometer

📌 Potensiometer = sumber sinyal analog variabel

5️ Langkah Praktikum

✍️ Langkah 1 — Buat Rangkaian di Proteus

  1. Buka Proteus
  2. Buat rangkaian sesuai konfigurasi
  3. Pastikan koneksi A0, 5V, dan GND benar

✍️ Langkah 2 — Program Pembacaan ADC (Dasar)

void setup() {

  Serial.begin(9600);

}




void loop() {

  int adcValue = analogRead(A0);

  Serial.println(adcValue);

  delay(500);

}

▶ Jalankan simulasi
▶ Putar potensiometer
▶ Amati nilai 0–1023

✍️ Langkah 3 — Konversi ADC ke Tegangan

void setup() {

  Serial.begin(9600);

}




void loop() {

  int adcValue = analogRead(A0);

  float voltage = adcValue * (5.0 / 1023.0);




  Serial.print("ADC = ");

  Serial.print(adcValue);

  Serial.print(" | Tegangan = ");

  Serial.print(voltage);

  Serial.println(" V");




  delay(500);

}

📌 Bandingkan:

  • Tegangan di Serial Monitor
  • Tegangan di Voltmeter Proteus

6️ Percobaan Sampling ADC

✍️ Langkah 4 — Pengaruh Sampling Rate

Ubah delay:

delay(1000); // sampling lambat

Lalu:

delay(50); // sampling cepat

Amati:

  • Respons perubahan nilai
  • Kehalusan pembacaan

📌 Kesimpulan:

  • Sampling cepat → respons lebih halus
  • Sampling lambat → perubahan terasa patah

7️ Percobaan Tegangan Referensi ADC

✍️ Langkah 5 — ADC dengan Internal Reference (1.1V)

void setup() {

  Serial.begin(9600);

  analogReference(INTERNAL);

}




void loop() {

  int adcValue = analogRead(A0);

  float voltage = adcValue * (1.1 / 1023.0);

  Serial.println(voltage);

  delay(500);

}

📌 Bandingkan:

  • Range pembacaan
  • Resolusi lebih tinggi untuk tegangan kecil

8️ Tabel Pengamatan

Tegangan Voltmeter (V) Nilai ADC Tegangan Terhitung (V)

9️ Analisis Hasil

  1. Apakah nilai ADC sesuai teori?
  2. Apakah resolusi 10-bit cukup untuk sensor analog?
  3. Bagaimana pengaruh sampling terhadap respons sistem?
  4. Mengapa Vref mempengaruhi akurasi?

🔬 TUGAS PRAKTIKUM

📝 Tugas 1 — Analisis Resolusi

  1. Hitung resolusi ADC Arduino Uno @5V
  2. Hitung resolusi jika Vref = 3.3V
  3. Bandingkan hasilnya

📝 Tugas 2 — Simulasi Sensor

Ganti potensiometer dengan:

  • Sensor suhu (LM35) (simulasi)
  1. Hubungkan output sensor ke A0
  2. Tampilkan suhu dalam °C
  3. Gunakan rumus konversi

📝 Tugas 3 — Sampling & Noise

  1. Gunakan delay:
    • 1000 ms
    • 100 ms
    • 10 ms
  2. Bandingkan fluktuasi data
  3. Jelaskan hubungan sampling & noise

📝 Tugas 4 — Refleksi

Jawab singkat:

  1. Apakah resolusi ADC mempengaruhi sampling?
  2. Mengapa ADC penting dalam IoT dan PLC?
  3. Kapan Vref internal lebih baik digunakan?

10️ Kesimpulan Praktikum

  • ADC mengubah tegangan analog → data digital
  • Resolusi ADC menentukan ketelitian
  • Sampling menentukan respons waktu
  • Proteus membantu memahami ADC tanpa hardware fisik
  • Konsep ADC sangat penting pada IoT, PLC, dan sistem kontrol

🔁 Pengembangan Lanjutan

  • ADC ESP32 (12-bit)
  • ADC PLC Analog Input
  • Filtering digital (moving average)
  • Interrupt-based ADC

 

Related Articles