Penerapan ADC pada Arduino Uno Menggunakan Proteus

1️⃣ Tujuan Praktikum
Setelah praktikum ini, mahasiswa mampu:
- Memahami prinsip kerja ADC pada Arduino Uno
- Menjelaskan hubungan tegangan analog – nilai digital ADC
- Memahami pengaruh resolusi ADC dan sampling
- Mengimplementasikan pembacaan ADC menggunakan Proteus
- 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:
📌 Potensiometer = sumber sinyal analog variabel
5️⃣ Langkah Praktikum
✍️ Langkah 1 — Buat Rangkaian di Proteus
- Buka Proteus
- Buat rangkaian sesuai konfigurasi
- 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
- Apakah nilai ADC sesuai teori?
- Apakah resolusi 10-bit cukup untuk sensor analog?
- Bagaimana pengaruh sampling terhadap respons sistem?
- Mengapa Vref mempengaruhi akurasi?
🔬 TUGAS PRAKTIKUM
📝 Tugas 1 — Analisis Resolusi
- Hitung resolusi ADC Arduino Uno @5V
- Hitung resolusi jika Vref = 3.3V
- Bandingkan hasilnya
📝 Tugas 2 — Simulasi Sensor
Ganti potensiometer dengan:
- Sensor suhu (LM35) (simulasi)
- Hubungkan output sensor ke A0
- Tampilkan suhu dalam °C
- Gunakan rumus konversi
📝 Tugas 3 — Sampling & Noise
- Gunakan delay:
- 1000 ms
- 100 ms
- 10 ms
- Bandingkan fluktuasi data
- Jelaskan hubungan sampling & noise
📝 Tugas 4 — Refleksi
Jawab singkat:
- Apakah resolusi ADC mempengaruhi sampling?
- Mengapa ADC penting dalam IoT dan PLC?
- 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








