LAPORAN
Implementasi
Analog to Digital Converter (ADC) dan Sistem Peringatan Ambang Batas
Menggunakan Potensiometer, Display 7-Segment, serta Indikator LED Berbasis
Arduino Uno
Disusun oleh:
Georvin Octianno 24051204185
Ali Syava Ramadhan 24051204121
Adie Tirta Satria 24051204108
Ubaidillah Maulidul
Ula 24051204115
BAB I
PENDAHULUAN
1.1 Latar Belakang
Perkembangan teknologi elektronika saat ini semakin mengarah
pada sistem yang mampu menjembatani dunia analog dan digital secara efisien.
Banyak besaran fisik di sekitar kita seperti suhu, cahaya, tekanan, maupun
tegangan bersifat analog, sedangkan sistem pemrosesan modern seperti
mikrokontroler bekerja secara digital. Oleh karena itu, dibutuhkan sebuah
komponen yang dapat mengubah sinyal analog menjadi data digital agar dapat
diolah lebih lanjut, yaitu Analog to Digital Converter (ADC). Arduino Uno, misalnya,
memiliki ADC internal 10-bit yang memetakan tegangan masukan 0–5V ke dalam
nilai integer 0–1023 (Arduino Documentation, 2024). Kemampuan inilah yang
membuat Arduino Uno banyak digunakan sebagai media pembelajaran maupun
implementasi sistem berbasis konversi sinyal analog ke digital (Budiharto,
2021).
Salah satu penerapan sederhana dari konsep ADC adalah
pembacaan nilai tegangan dari potensiometer, yang kemudian dapat
direpresentasikan dalam bentuk digital dan ditampilkan kepada pengguna.
Potensiometer sendiri banyak digunakan sebagai perangkat masukan analog karena
kemampuannya mengubah perubahan fisik (putaran atau pergeseran) menjadi sinyal
listrik yang dapat diukur oleh mikrokontroler (Mangkunegara, Ariyanto, &
Triwibowo, 2024). Namun, sekadar menampilkan nilai saja seringkali belum cukup
dalam konteks sistem monitoring, karena diperlukan pula suatu bentuk umpan
balik atau peringatan ketika nilai yang terbaca melewati ambang batas tertentu.
Sistem peringatan berbasis ambang batas (threshold) memiliki peran penting
dalam berbagai aplikasi nyata, misalnya sistem monitoring suhu, level
ketinggian air, maupun tegangan baterai, di mana pengguna perlu segera
mengetahui kondisi abnormal agar dapat mengambil tindakan yang tepat
(Budiharto, 2005).
Berdasarkan latar belakang tersebut, penelitian ini
mengimplementasikan sebuah sistem berbasis Arduino Uno yang memanfaatkan
potensiometer sebagai sumber sinyal analog, proses ADC untuk konversi sinyal,
display 7-segment sebagai media penampil nilai digital, serta indikator LED
sebagai sistem peringatan ketika nilai terbaca melewati ambang batas yang telah
ditentukan. Implementasi ini diharapkan dapat memberikan pemahaman yang lebih
konkret mengenai prinsip kerja ADC sekaligus penerapannya dalam sistem monitoring
dan peringatan sederhana berbasis mikrokontroler.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah diuraikan, maka
rumusan masalah dalam laporan ini adalah sebagai berikut:
- Bagaimana
prinsip kerja Analog to Digital Converter (ADC) pada Arduino Uno dalam
mengonversi sinyal analog dari potensiometer menjadi data digital?
- Bagaimana
cara menampilkan hasil pembacaan nilai ADC tersebut pada display 7-segment
secara akurat dan real-time?
- Bagaimana
merancang sistem peringatan berbasis ambang batas (threshold) menggunakan
indikator LED sehingga dapat memberikan tanda ketika nilai yang terbaca
melewati batas yang ditentukan?
- Apa saja faktor yang memengaruhi akurasi pembacaan nilai ADC pada sistem yang diimplementasikan?
BAB II
TINJAUAN PUSTAKA
2.1 Arduino Uno
Arduino Uno adalah papan mikrokontroler yang berperan
sebagai otak rangkaian, yaitu menjalankan program yang telah diunggah dari
komputer. Pada kedua sisi papan terdapat deretan pin sebagai tempat
menyambungkan komponen, terdiri atas pin digital yang hanya mengenal keadaan
menyala atau padam, pin analog yang mampu membaca perubahan secara bertingkat,
serta pin daya dan ground. Jumlah pin yang tersedia terbatas, sehingga
pemilihannya menjadi pertimbangan penting dalam merancang rangkaian.
Pemrogramannya dilakukan melalui perangkat lunak Arduino IDE dengan bahasa yang
mirip bahasa C.
2.2 Potensiometer
Potensiometer adalah komponen berbentuk tombol putar yang
keluarannya berubah mengikuti posisi putaran, serupa dengan pengatur volume
pada radio. Karena mikrokontroler hanya dapat mengolah data berupa angka,
keluaran tersebut lebih dahulu diterjemahkan melalui proses konversi analog ke
digital yang telah tersedia di dalam Arduino, sehingga posisi putaran dapat
dibaca oleh program sebagai sebuah angka. Angka hasil pembacaan kemudian
disesuaikan skalanya melalui proses pemetaan, serupa dengan mengubah nilai ujian
berskala nol sampai seratus menjadi berskala nol sampai empat.
2.3 Seven Segment Empat Digit
Seven segment adalah penampil angka yang biasa dijumpai pada
jam digital, timbangan, maupun mesin nomor antrian. Setiap digit tersusun atas
tujuh lampu berbentuk batang ditambah satu lampu titik, dan angka dibentuk
dengan menyalakan sebagian batang serta memadamkan sisanya. Berdasarkan cara
penyambungan kaki bersamanya, seven segment dibedakan menjadi tipe common
cathode dan common anode yang cara menyalakan segmennya saling berkebalikan,
dan rangkaian ini menggunakan tipe common anode. Pada modul empat digit, jalur
segmen dipakai bersama oleh seluruh digit dan ditambah beberapa jalur lain yang
berfungsi memilih digit mana yang sedang aktif.
2.4 LED
LED adalah lampu kecil yang menyala ketika dialiri arus
listrik. Bentuknya sederhana, tidak mudah panas, dan hanya membutuhkan daya
yang kecil sehingga cocok dipakai sebagai lampu penanda.
Dalam sebuah alat, LED umumnya berperan sebagai penunjuk
keadaan. Warna yang dipilih biasanya mengikuti kebiasaan yang sudah umum
dipahami orang, yaitu hijau untuk keadaan aman atau normal dan merah untuk
keadaan yang memerlukan perhatian. Pada proyek ini digunakan dua buah LED
dengan kedua warna tersebut.
2.5 Resistor
Resistor adalah komponen yang berfungsi menahan sebagian
aliran listrik yang melewatinya. Pada rangkaian ini resistor dipasang
berpasangan dengan LED agar aliran listrik yang masuk ke LED tidak berlebihan,
sehingga lampu tetap awet dan tidak cepat rusak.
2.6 Simulator Wokwi
Wokwi adalah aplikasi berbasis peramban yang digunakan untuk
merangkai dan menguji rangkaian elektronika secara virtual, mulai dari menyusun
komponen, menyambungkan kabel, hingga menjalankan programnya. Seluruh susunan
rangkaian tersimpan dalam berkas bernama diagram.json yang memuat daftar
komponen beserta sambungannya, sehingga mudah dibagikan kepada orang lain.
Simulator ini memudahkan kegiatan pembelajaran karena tidak memerlukan komponen
fisik, namun tidak menirukan seluruh keadaan rangkaian nyata sehingga hasilnya
tetap perlu ditinjau ulang sebelum diwujudkan menjadi perangkat keras.
BAB III
PEMBAHASAN
3.1 Gambaran Sistem
Sistem yang dirancang pada praktikum ini merupakan bentuk
implementasi dari pengolahan sinyal Analog to Digital Converter (ADC) dan
sistem peringatan ambang batas (threshold alert system). Sistem menerima
masukan analog berupa tegangan variabel dari potensiometer, mengkonversinya
menjadi data digital di mikrokontroler Arduino Uno, lalu menghasilkan dua
bentuk luaran (output):
- Output
Tampilan Presisi: Menampilkan nilai hasil pemetaan angka (0 - 9999) secara
real-time pada display 7-segment 4-digit.
- Output
Peringatan Status: Menyala-mati-kan LED Hijau (kondisi normal <= 8000)
dan LED Merah (kondisi peringatan > 8000) berdasarkan ambang batas yang
ditentukan.
3.2 Komponen yang Digunakan
|
No. |
Nama Komponen Perangkat |
Spesifikasi/Keterangan |
Fungsi Utama |
|
1 |
Arduino Uno R3 |
Mikrokontroler ATmega328P |
Otak pemroses utama dan pengolah ADC 10-bit |
|
2 |
Potensiometer Rotary |
10 Kilo ohm (Resistor Variabel) |
Masukan sinyal tegangan analog variabel (0 - 5 V) |
|
3 |
Display 7-Segment 4-Digit |
Tipe Common Anode |
Indikator visual status kondisi normal (<=3,5V) |
|
4 |
LED Hijau |
5 mm Standard LED |
Indikator visual status kondisi peringatan (>3,5V) |
|
5 |
LED Merah |
5 mm Standard LED |
Pembatas arus listrik pelindung LED Merah & HIjau |
|
6 |
Resistor |
220 Ohm (2 buah) |
Pembatas arus listrik pelindung LED Merah &
Hijau |
|
7 |
Simulasi Wokwi |
Platform berbasis web |
Pengujian dan simulasi rangkaian berbasis cloud |
3.3 Konfigurasi PIN
|
No. |
Nama Kaki/Terminal |
Pin Arduino Uno |
Tipe/Mode Pin |
Keterangan Fungsi |
|
Potensiometer |
VCC |
5V |
Power |
Suplai tegangan utama 5v |
|
GND |
GND |
Power |
Jalur ground/acuan 0v |
|
|
SIG |
A0 |
Analog Input |
Jalur masukan sinyal tegangan ADC |
|
|
LED Hijau |
Anoda (+) |
Pin 12 |
Digital Output |
Kontrol nyala LED Hijau |
|
Katoda (-) |
GND |
Power |
Jalur ground LED Hijau |
|
|
LED Hijau |
Anoda (+) |
Pin 13 |
Digital Output |
Kontrol nyala LED Merah |
|
Katoda (-) |
GND |
Power |
Jalur ground LED Merah |
|
|
Display 7-Segment |
DIG 1 |
Pin 11 |
Digital Output |
Kontrol pengaktifan Digit 1 (Ribuan) |
|
DIG 2 |
Pin 10 |
Digital Output |
Kontrol pengaktifan Digit 2 (Ratusan) |
|
|
DIG 3 |
Pin 9 |
Digital Output |
Kontrol pengaktifan Digit 3 (Puluhan) |
|
|
DIG 4 |
Pin 8 |
Digital Output |
Kontrol pengaktifan Digit 4 (Satuan) |
|
|
Segment a,b,c,d,e,f,g,dp |
Pin 1, 2, 3 ,4, 5, 6, 7, 0 |
Digital Output |
Jalur penggerak pembentuk garis angka |
3.4 Alur Kerja Program
Alur kerja logika utama dari sistem yang dijalankan di dalam
program mikrokontroler secara siklus (loop) adalah sebagai berikut:
- Pembacaan
Input ADC: Mikrokontroler membaca tegangan masukan analog pada pin A0
melalui fungsi analogRead() yang menghasilkan nilai integer 0 - 1023
(Resolusi ADC 10-bit).
- Pemetaan
Skala (Mapping): Nilai ADC mentah (0 - 1023) dikonversi secara linier
menggunakan fungsi map() ke skala angka tegangan 0 - 5000 (mewakili
rentang 0.000 V hingga 5.000 V).
- Evaluasi
Ambang Batas (Thresholding): Program mengevaluasi nilai hasil pemetaan
dengan logika if-else terhadap ambang batas 3.5 Volt (nilai 3500):
- a.
Jika nilai >= 3500 (tegangan ≥ 3.5 V), pin 13
(HIGH) mengaktifkan LED Merah dan pin 12 (LOW) memadamkan LED Hijau.
- b.
Jika nilai < 3500 (tegangan < 3.5 V), pin 12 (HIGH) mengaktifkan LED
Hijau dan pin 13 (LOW) memadamkan LED Merah.
- Pemisahan
Digit & Multiplexing Display (dengan Titik Desimal): Nilai dipisah
menjadi 4 digit secara matematis, dipadukan dengan pengaktifan titik
desimal (Decimal Point / DP) pada digit pertama untuk membentuk format
bacaan tegangan (X.XXX Volt), lalu dikirimkan ke layar 7-segment secara
sekuensial bergantian dengan delay 5ms agar keempat digit tampak menyala
bersamaan.
3.5 Implementasi Program
Implementasi perangkat lunak ditulis dalam bahasa
pemrograman C/C++ menggunakan Arduino IDE. Program menggunakan array biner
8-bit untuk menentukan kombinasi segment Common Anode dan fungsi bantuan
displayNumber() untuk menangani proses multiplexing tampilan.
Berikut adalah source code lengkap yang diimplementasikan
pada sistem:
|
// ===== PROJECT:
Potentiometer to 7-Segment (0-5 Volt) ===== // Pin kontrol
digit (Common Anode) const int
digit1Pin = 11; const int
digit2Pin = 10; const int
digit3Pin = 9; const int
digit4Pin = 8; const int ledHijau
= 12; const int ledMerah
= 13; // Batas 0.35 Volt
(Karena skala kita 0-5000, 0.35V = 350) const int batas =
3500; // Pin kontrol
segmen (a, b, c, d, e, f, g, dp) const int
segmentPins[] = {1, 2, 3, 4, 5, 6, 7, 0}; // Pin Analog
Input const int potensio
= A0; int adc_read = 0; int angka = 0; // Definisi angka
0-9 dalam bentuk bit untuk display 7-segment const byte
digits[] = { B11000000,
// 0 B11111001,
// 1 B10100100,
// 2 B10110000,
// 3 B10011001,
// 4 B10010010,
// 5 B10000010,
// 6 B11111000,
// 7 B10000000,
// 8 B10010000
// 9 }; void setup() { pinMode(digit1Pin,
OUTPUT); pinMode(digit2Pin,
OUTPUT); pinMode(digit3Pin,
OUTPUT); pinMode(digit4Pin,
OUTPUT); pinMode(ledHijau,
OUTPUT); pinMode(ledMerah,
OUTPUT); for
(int i = 0; i < 8; i++) { pinMode(segmentPins[i],
OUTPUT); } } void loop() { //
Membaca nilai ADC dari Potensiometer (0 - 1023) adc_read
= analogRead(potensio); //
Pemetaan nilai ADC ke skala 0 - 5000 (Mewakili 0.000V hingga 5.000V) angka
= map(adc_read, 0, 1023, 0, 5000); //
Kontrol Indikator LED (Menyala merah jika >= 0.35 Volt) if
(angka >= batas) { digitalWrite(ledMerah,
HIGH); digitalWrite(ledHijau,
LOW); } else
{ digitalWrite(ledMerah,
LOW); digitalWrite(ledHijau,
HIGH); } //
Tampilkan tiap digit dengan parameter tambahan untuk Titik Desimal (DP) displayNumber(digit1Pin,
angka / 1000, true); // Digit 1 + Titik Desimal
(e.g. "5.") delay(5); displayNumber(digit2Pin,
(angka / 100) % 10, false); // Digit 2 delay(5); displayNumber(digit3Pin,
(angka / 10) % 10, false); // Digit 3 delay(5); displayNumber(digit4Pin,
angka % 10, false); // Digit 4 delay(5); } // Fungsi
menampilkan angka dengan tambahan parameter "showDP" void
displayNumber(int digitPin, int number, bool showDP) { //
Matikan semua digit terlebih dahulu digitalWrite(digit1Pin,
LOW); digitalWrite(digit2Pin,
LOW); digitalWrite(digit3Pin,
LOW); digitalWrite(digit4Pin,
LOW); //
Tampilkan segmen sesuai logika bit for
(int i = 0; i < 8; i++) { if
(bitRead(digits[number], i)) { digitalWrite(segmentPins[i],
HIGH); }
else { digitalWrite(segmentPins[i],
LOW); } } //
Menyalakan titik desimal (Pin ke-8 pada array / index 7) //
Pada Common Anode, logika LOW akan menyalakan segmen. if
(showDP == true) { digitalWrite(segmentPins[7],
LOW); } //
Aktifkan digit aktif digitalWrite(digitPin,
HIGH); } |
BAB IV
PENUTUP
4.1 Kesimpulan
- Praktikum
ini berhasil mensimulasikan pembacaan Analog Input menggunakan
potensiometer dan fitur ADC 10-bit pada Arduino Uno.
- Nilai
ADC (0-1023) berhasil dikonversi menjadi nilai yang dapat ditampilkan pada
seven-segment display 4 digit menggunakan fungsi map().
- Sistem
indikator menggunakan LED telah berfungsi dengan baik, di mana LED Merah
menyala ketika nilai melewati batas 8000.
- Konfigurasi
Common Anode pada seven-segment display berhasil diimplementasikan dengan
memberikan logika LOW untuk menyalakan segment dan HIGH untuk mengaktifkan
digit.
- Simulator
Wokwi terbukti efektif sebagai media pembelajaran dan pengujian rangkaian
elektronika tanpa memerlukan perangkat keras fisik.
4.2 Saran
- Untuk
pengembangan lebih lanjut, dapat ditambahkan buzzer sebagai alarm ketika
nilai ADC melewati batas 3,5V.
- Dapat
dikembangkan menjadi sistem monitoring suhu dengan mengganti potensiometer
dengan sensor suhu LM35.
- Perlu
dilakukan pengujian pada perangkat keras nyata untuk membandingkan hasil
simulasi dengan implementasi fisik.
DAFTAR PUSTAKA
Budiharto, Widodo. (2021). Menguasai Pemrograman Arduino dan
Robotik. Yogyakarta: Andi Offset.
Budiharto, Widodo. (2005). Panduan Lengkap Belajar
Mikrokontroler: Perancangan Sistem dan Aplikasi Mikrokontroler. Jakarta: Elex
Media Komputindo.
Mangkunegara, I. S., Ariyanto, A. S. S., & Triwibowo, D.
N. (2024). "Implementasi Arduino IoT Cloud: Potensiometer Sebagai Pengatur
Intensitas Cahaya LED". JSAI: Journal Scientific and Applied Informatics,
7(1), 65–72.
Arduino Documentation. (2024). analogRead(). Diakses dari
https://docs.arduino.cc/language-reference/en/functions/analog-io/analogRead/
pada 13 September 2026.
Tidak ada komentar:
Posting Komentar