Minggu, 27 September 2026

Implementasi Analog to Digital Converter (ADC) dan Sistem Peringatan Ambang Batas Menggunakan Potensiometer, Display 7-Segment, serta Indikator LED Berbasis Arduino Uno

 

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:

  1. Bagaimana prinsip kerja Analog to Digital Converter (ADC) pada Arduino Uno dalam mengonversi sinyal analog dari potensiometer menjadi data digital?
  2. Bagaimana cara menampilkan hasil pembacaan nilai ADC tersebut pada display 7-segment secara akurat dan real-time?
  3. Bagaimana merancang sistem peringatan berbasis ambang batas (threshold) menggunakan indikator LED sehingga dapat memberikan tanda ketika nilai yang terbaca melewati batas yang ditentukan?
  4. 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): 

  1. Output Tampilan Presisi: Menampilkan nilai hasil pemetaan angka (0 - 9999) secara real-time pada display 7-segment 4-digit.
  2. 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: 

  1. Pembacaan Input ADC: Mikrokontroler membaca tegangan masukan analog pada pin A0 melalui fungsi analogRead() yang menghasilkan nilai integer 0 - 1023 (Resolusi ADC 10-bit).
  2. 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).
  3. Evaluasi Ambang Batas (Thresholding): Program mengevaluasi nilai hasil pemetaan dengan logika if-else terhadap ambang batas 3.5 Volt (nilai 3500):
  4. a. Jika nilai >= 3500 (tegangan ≥ 3.5 V), pin 13 (HIGH) mengaktifkan LED Merah dan pin 12 (LOW) memadamkan LED Hijau.
  5. b. Jika nilai < 3500 (tegangan < 3.5 V), pin 12 (HIGH) mengaktifkan LED Hijau dan pin 13 (LOW) memadamkan LED Merah.
  6. 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

  1. Praktikum ini berhasil mensimulasikan pembacaan Analog Input menggunakan potensiometer dan fitur ADC 10-bit pada Arduino Uno.
  2. Nilai ADC (0-1023) berhasil dikonversi menjadi nilai yang dapat ditampilkan pada seven-segment display 4 digit menggunakan fungsi map().
  3. Sistem indikator menggunakan LED telah berfungsi dengan baik, di mana LED Merah menyala ketika nilai melewati batas 8000.
  4. Konfigurasi Common Anode pada seven-segment display berhasil diimplementasikan dengan memberikan logika LOW untuk menyalakan segment dan HIGH untuk mengaktifkan digit.
  5. Simulator Wokwi terbukti efektif sebagai media pembelajaran dan pengujian rangkaian elektronika tanpa memerlukan perangkat keras fisik.

4.2  Saran

  1. Untuk pengembangan lebih lanjut, dapat ditambahkan buzzer sebagai alarm ketika nilai ADC melewati batas 3,5V.
  2. Dapat dikembangkan menjadi sistem monitoring suhu dengan mengganti potensiometer dengan sensor suhu LM35.
  3. 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