Minggu, 27 September 2026

LAPORAN PRAKTIKUM SIMULASI SISTEM SMART DIMMER LED DAN INDIKATOR LEVEL 7-SEGMENT BERBASIS ARDUINO UNO PADA SIMULATOR WOKWI

 

LAPORAN PRAKTIKUM

LAPORAN PRAKTIKUM SIMULASI SISTEM SMART DIMMER LED DAN INDIKATOR LEVEL 7-SEGMENT BERBASIS ARDUINO UNO PADA SIMULATOR WOKWI

 

 

Disusun Oleh :

Ahmad Aura Syahrul Muharrom        24051204203

Jeehan Kamila Muzaky                      24051204122

Yudhi D Bakkara                                24051204174

Miuvanida Klandistin                         24051204208

 

 

BAB I
PENDAHULUAN

1.1 Latar Belakang

Mikrokontroler merupakan komponen inti dalam berbagai sistem elektronika modern, mulai dari perangkat rumah tangga sederhana hingga sistem otomasi industri. Salah satu kemampuan dasar yang wajib dikuasai dalam mempelajari mikrokontroler adalah kemampuan mengolah sinyal Input/Output (I/O), baik yang bersifat digital maupun analog. Sinyal digital hanya mengenal dua kondisi logika, yaitu logika tinggi (1) dan logika rendah (0), yang secara fisik direpresentasikan oleh level tegangan tertentu, misalnya 5 volt untuk logika 1 dan 0 volt untuk logika 0.

Dalam penerapannya, pembacaan sinyal digital pada pin input mikrokontroler memerlukan kepastian kondisi logika agar tidak berada pada kondisi mengambang (floating). Oleh karena itu dikenal konsep resistor pull-up dan pull-down yang berfungsi memastikan pin input berada pada kondisi logika tertentu ketika saklar tidak sedang ditekan. Selain sinyal digital, mikrokontroler seperti Arduino Uno juga dilengkapi dengan fitur Analog to Digital Converter (ADC) untuk membaca sinyal analog dari sensor atau potensiometer, serta fitur Pulse Width Modulation (PWM) yang memungkinkan mikrokontroler menghasilkan keluaran yang menyerupai sinyal analog dari pin digital.

Untuk memahami konsep-konsep tersebut secara komprehensif, dilakukan serangkaian praktikum yang meliputi pengendalian LED (Knight Rider LED), penggunaan input tombol untuk mengendalikan output counter pada 7-segment, pembacaan input analog menggunakan potensiometer, serta penerapan PWM sebagai keluaran analog. Praktikum ini disimulasikan menggunakan platform Wokwi sebagai simulator Arduino berbasis web, sehingga rangkaian dapat diuji tanpa memerlukan perangkat keras secara langsung.

1.2 Rumusan Masalah

1.      Bagaimana konsep tegangan digital direpresentasikan melalui rangkaian pull-up dan pull-down resistor pada mikrokontroler?

2.      Bagaimana prinsip kerja LED sebagai output digital dan bagaimana penerapannya pada rangkaian Knight Rider LED?

3.      Bagaimana cara mengintegrasikan input tombol dengan output berupa counter pada tampilan 7-segment?

4.      Bagaimana proses pembacaan sinyal analog menggunakan ADC 10-bit pada Arduino Uno melalui potensiometer?

5.      Bagaimana prinsip kerja PWM dalam menghasilkan keluaran analog dari pin digital mikrokontroler?

1.3 Tujuan Praktikum

1.      Memahami konsep dasar tegangan digital, logika 1 dan 0, serta fungsi resistor pull-up dan pull-down.

2.      Mampu merancang dan mensimulasikan rangkaian Knight Rider LED menggunakan Arduino Uno pada platform Wokwi.

3.      Mampu membuat program input tombol yang menghasilkan output counter pada 7-segment display.

4.      Mampu membaca dan mengolah data analog dari potensiometer menggunakan fitur ADC 10-bit Arduino Uno.

5.      Mampu menerapkan konsep PWM sebagai metode konversi sinyal digital menjadi analog pada output mikrokontroler.

 

1.4 Manfaat Praktikum

•        Mahasiswa memperoleh pemahaman praktis mengenai perbedaan dan hubungan antara sinyal digital dan analog pada sistem mikrokontroler.

•        Mahasiswa mampu mengaplikasikan konsep input dan output digital maupun analog pada studi kasus nyata seperti pengendalian LED, tampilan 7-segment, dan pembacaan sensor analog.

•        Hasil praktikum dapat menjadi dasar pengembangan proyek elektronika dan sistem tertanam (embedded system) yang lebih kompleks.

•        Meningkatkan kemampuan mahasiswa dalam menggunakan tools simulasi seperti Wokwi sebagai media pembelajaran sebelum implementasi pada perangkat keras sesungguhnya.

 

BAB II
TINJAUAN PUSTAKA

2.1 Konsep Digital dan Tegangan

Dalam sistem digital, terdapat dua kondisi tegangan acuan, yaitu VCC yang merupakan tegangan catu daya positif (umumnya bernilai 5 volt pada Arduino Uno, namun dapat pula berupa 3,3 volt atau 1,8 volt pada mikrokontroler tertentu untuk menyesuaikan level tegangan baterai isi ulang) dan GND (Ground) yang bernilai 0 volt. Kombinasi kedua tegangan acuan ini digunakan untuk merepresentasikan dua kondisi logika biner, yaitu logika 1 (tinggi) dan logika 0 (rendah).

2.2. Pull-Up dan Pull-Down Resisor

Pull-up resistor adalah rangkaian yang menghubungkan pin input dengan tegangan positif (VCC) melalui resistor pembatas, umumnya bernilai 10 kΩ, sehingga ketika saklar dalam kondisi terbuka pin akan terbaca logika 1. Sebaliknya, pull-down resistor menghubungkan pin input dengan ground melalui resistor pembatas yang sama, sehingga ketika saklar terbuka pin akan terbaca logika 0. Kedua konfigurasi ini penting untuk mencegah kondisi floating pada pin input digital, yaitu kondisi ketika nilai logika pin tidak dapat dipastikan karena tidak terhubung secara pasti ke VCC maupun GND.

2.3 Transistor Sebagai Saklar Digital

Transistor dapat difungsikan sebagai saklar elektronik (digital switch) yang bekerja pada dua kondisi, yaitu saturasi (menghantar penuh, dianggap sebagai saklar tertutup) dan cut-off (tidak menghantar, dianggap sebagai saklar terbuka). Konsep ini menjadi dasar dari gerbang logika elektronik, misalnya rangkaian dua transistor yang disusun seri dapat membentuk fungsi logika AND, di mana keluaran (Q) akan bernilai 1 hanya jika kedua input A dan B bernilai 1.

2.4 LED sebagai Representasi Biner

Light Emitting Diode (LED) dapat dianalogikan sebagai representasi satu bit data biner, yaitu kondisi menyala (ON, logika 1) dan padam (OFF, logika 0). Dalam rangkaian sederhana, LED dihubungkan dengan resistor pembatas arus untuk mencegah arus berlebih yang dapat merusak komponen, kemudian dikendalikan melalui pin output digital mikrokontroler atau dibaca statusnya melalui pin input yang terhubung dengan tombol (button).

2.5 Seven Segment Display

Tampilan seven segment (7-segment) tersusun atas tujuh buah LED segmen (a sampai g) ditambah satu titik desimal (dot point/dp), sehingga total membentuk 8 bit atau 1 byte data untuk merepresentasikan satu karakter angka. Terdapat dua jenis konfigurasi seven segment, yaitu common cathode (katoda bersama terhubung ke ground) dan common anode (anoda bersama terhubung ke VCC), yang menentukan logika pengendalian tiap segmennya.

2.6 LED Matrix

LED matrix merupakan susunan LED dalam bentuk baris (row) dan kolom (column) yang dikendalikan secara scanning untuk membentuk pola atau karakter tertentu. Setiap karakter dapat direpresentasikan dalam bentuk data biner untuk setiap barisnya, misalnya karakter tertentu pada matrix 5x7 dapat dikodekan menjadi array data seperti 0b1111110, 0b0001001, dan seterusnya, yang kemudian diproses oleh mikrokontroler untuk ditampilkan pada LED matrix.

2.7 Arsitektur I/O Arduino Uno

Arduino Uno menggunakan mikrokontroler ATmega328 dan memiliki beberapa jalur I/O utama, yaitu:

•        Power input, yaitu jalur masukan daya melalui port DC (7-12V) atau kabel USB.

•        USB to PC IDE, digunakan untuk komunikasi dan pemrograman melalui Arduino IDE.

•        Digital I/O, pin-pin yang dapat difungsikan sebagai input maupun output digital.

•        Analog Input, dengan resolusi ADC 10-bit (nilai 0-1023).

•        Analog Output berbasis PWM dengan resolusi 8-bit (nilai 0-255).

Selain itu, Arduino Uno juga mendukung beberapa protokol komunikasi seperti Serial UART (pin TX RX), I2C (pin SCL SDA), dan SPI (pin SCK, MOSI, MISO, SS) yang memungkinkan mikrokontroler berkomunikasi dengan perangkat eksternal lainnya.

2.8 Analog to Digital Converter (ADC)

ADC merupakan fitur yang mengubah sinyal analog (tegangan kontinu) menjadi nilai digital yang dapat diproses oleh mikrokontroler. Pada Arduino Uno, ADC memiliki resolusi 10-bit, sehingga mampu merepresentasikan tegangan input dalam rentang nilai 0 hingga 1023 (2^10 - 1). Semakin tinggi resolusi ADC, semakin presisi pula nilai tegangan analog yang dapat dibaca oleh mikrokontroler.

2.9 Pulse Width Modulation (PWM)

ADC merupakan fitur yang mengubah sinyal analog (tegangan kontinu) menjadi nilai digital yang dapat diproses oleh mikrokontroler. Pada Arduino Uno, ADC memiliki resolusi 10-bit, sehingga mampu merepresentasikan tegangan input dalam rentang nilai 0 hingga 1023 (2^10 - 1). Semakin tinggi resolusi ADC, semakin presisi pula nilai tegangan analog yang dapat dibaca oleh mikrokontroler.

2.9 Pulse Width Modulation (PWM)

PWM merupakan teknik untuk menghasilkan sinyal yang menyerupai keluaran analog menggunakan sinyal digital, dengan cara mengatur lebar pulsa (duty cycle) dari sinyal tersebut dalam satu periode. Sebagai contoh, duty cycle 0% (analogWrite(0)) menghasilkan tegangan rata-rata 0 volt, duty cycle 50% (analogWrite(127)) menghasilkan tegangan rata-rata setengah dari VCC, dan duty cycle 100% (analogWrite(255)) menghasilkan tegangan rata-rata mendekati VCC penuh. Teknik ini banyak digunakan untuk mengatur kecerahan LED, kecepatan motor DC, maupun aplikasi breathing LED.



BAB III

METODOLOGI PRAKTIKUM

3.1 Alat dan Bahan

Rincian komponen hardware virtual dan software yang digunakan dalam praktikum ini ditunjukkan pada Tabel 3.1: 

Tabel 3.1 Alat dan Bahan Praktikum

No

Komponen / Software

Spesifikasi

Jumlah

1

Arduino Uno R3

ATmega328P, 16 MHz, 5V

1 Unit

2

Push Button

Tactile Switch 2-Pin (Digital Input)

1 Unit

3

Resistor Pull-Down

10 k$\Omega$, 1/4 Watt

1 Unit

4

Potensiometer

10 k$\Omega$ Linear (Analog Input)

1 Unit

5

LED Merah

Standard 5mm Red LED (PWM Output)

1 Unit

6

Resistor Pembatas LED

220 , 1/4 Watt

1 Unit

7

7-Segment Display

1-Digit Common Cathode

1 Unit

8

Simulator Wokwi

Cloud-based Embedded Simulator

1 Environment

3.2 Rangkaian dan Perkabelan (Pin Mapping)

Pemetaan koneksi fisik antar komponen dengan papan Arduino Uno disajikan dalam Tabel 3.2: 

Tabel 3.2 Pemetaan Pin Rangkaian (Pin Mapping)

Komponen

Pin Komponen

Pin Arduino Uno

Keterangan Fungsi

Push Button

Pin 1.A

5V

Jalur Catu Daya Positif

Push Button

Pin 2.A

Pin Digital 10

Sinyal Masukan Saklar Digital

Resistor 10 k$\Omega$

Kaki 1 & Kaki 2

Pin Digital 10 & GND

Resistor Pull-Down Masukan Tombol

Potensiometer

Terminal VCC & GND

5V & GND

Jalur Daya Potensiometer

Potensiometer

Terminal SIG (Wiper)

Pin Analog A0

Sinyal Masukan Analog (ADC 10-bit)

LED Merah

Anoda (+ via Resistor 220$\Omega$)

Pin Digital 9 (PWM)

Sinyal Keluaran Analog PWM

LED Merah

Katoda (-)

GND

Ground Reference

7-Segment Display

Segmen a, b, c, d, e, f, g

Pin Digital 2, 3, 4, 5, 6, 7, 8

Sinyal Keluaran Digital Indikator Level

7-Segment Display

Pin COM (Katoda Bersama)

GND

Ground Reference

 

Gambar 3.1 Skematik Rangkaian Sistem Kendali Dimmer LED dan 7-Segment pada Wokwi 

3.3 Kode Program Arduino

Berikut adalah listing kode program C/C++ yang digunakan untuk simulasi kendali terintegrasi: 

const int SEG_A = 2;

const int SEG_B = 3;

const int SEG_C = 4;

const int SEG_D = 5;

const int SEG_E = 6;

const int SEG_F = 7;

const int SEG_G = 8;

 

const int LED_PWM = 9;

const int BUTTON_PIN = 10;

const int POT_PIN = A0;

 

// Pola angka 0-9 untuk 7-Segment Common Cathode

const byte numPatterns[10][7] = {

  {1, 1, 1, 1, 1, 1, 0}, // 0

  {0, 1, 1, 0, 0, 0, 0}, // 1

  {1, 1, 0, 1, 1, 0, 1}, // 2

  {1, 1, 1, 1, 0, 0, 1}, // 3

  {0, 1, 1, 0, 0, 1, 1}, // 4

  {1, 0, 1, 1, 0, 1, 1}, // 5

  {1, 0, 1, 1, 1, 1, 1}, // 6

  {1, 1, 1, 0, 0, 0, 0}, // 7

  {1, 1, 1, 1, 1, 1, 1}, // 8

  {1, 1, 1, 1, 0, 1, 1}  // 9

};

 

bool systemActive = false;

int lastButton = LOW;

 

void setup() {

  for (int i = 2; i <= 8; i++) {

    pinMode(i, OUTPUT);

  }

  pinMode(LED_PWM, OUTPUT);

  pinMode(BUTTON_PIN, INPUT);

}

 

void loop() {

  int currentButton = digitalRead(BUTTON_PIN);

 

  // Toggle ON/OFF saat tombol ditekan

  if (currentButton == HIGH && lastButton == LOW) {

    systemActive = !systemActive;

    delay(50);

  }

  lastButton = currentButton;

 

  if (systemActive) {

    int potValue = analogRead(POT_PIN);

    int pwmValue = map(potValue, 0, 1023, 0, 255);

    int level = map(potValue, 0, 1023, 0, 9);

 

    analogWrite(LED_PWM, pwmValue);

 

    digitalWrite(SEG_A, numPatterns[level][0]);

    digitalWrite(SEG_B, numPatterns[level][1]);

    digitalWrite(SEG_C, numPatterns[level][2]);

    digitalWrite(SEG_D, numPatterns[level][3]);

    digitalWrite(SEG_E, numPatterns[level][4]);

    digitalWrite(SEG_F, numPatterns[level][5]);

    digitalWrite(SEG_G, numPatterns[level][6]);

  } else {

    analogWrite(LED_PWM, 0);

    for (int i = 2; i <= 8; i++) {

      digitalWrite(i, LOW);

    }

  }

}

3.4 Cara Kerja Sistem dan Alur Eksekusi

Alur eksekusi logika sistem dijelaskan dalam tahapan sebagai berikut: 

  1. Inisialisasi Mode Pin (setup()): Perulangan for mengonfigurasi Pin Digital 2 hingga 8 sebagai OUTPUT untuk mengendalikan segmen a–g 7-segment. Pin D9 dikonfigurasi sebagai OUTPUT PWM, dan Pin D10 dikonfigurasi sebagai INPUT digital tombol. 
  2. Deteksi Transisi Sinyal Masukan Digital (loop()): Fungsi digitalRead(10) membaca kondisi saklar. Kombinasi kondisi if (currentButton == HIGH && lastButton == LOW) mendeteksi penekanan tombol (edge detection) serta memberikan jeda debouncing 50 ms untuk mengubah status variabel systemActive (ON/OFF). 
  3. Pembacaan Masukan Analog (ADC 10-bit): Saat systemActive bernilai true, fungsi analogRead(A0) menyampling tegangan potensiometer (0--5 V) menjadi nilai digital biner 0 hingga 1023. 
  4. Pengolahan Keluaran Analog PWM (8-bit): Fungsi map(potValue, 0, 1023, 0, 255) mengubah skala data ADC menjadi sinyal PWM 8-bit. Nilai ini dikirim ke Pin D9 melalui analogWrite() untuk memodulasi duty cycle daya LED secara linier. 
  5. Pengolahan Keluaran Digital 7-Segment: Nilai ADC dipetakan kembali ke skala 0 hingga 9 menggunakan map(potValue, 0, 1023, 0, 9). Nilai level tersebut digunakan sebagai indeks matriks numPatterns untuk mengirimkan sinyal HIGH atau LOW ke Pin D2–D8 via digitalWrite(). 
  6. Kondisi Sistem Mati (OFF): Jika systemActive bernilai false, program mengeksekusi analogWrite(LED_PWM, 0) dan memadamkan seluruh pin segmen menggunakan perulangan digitalWrite(i, LOW).

 

BAB IV

HASIL DAN PEMBAHASAN

4.1 Pengujian Sistem Kondisi OFF (Standby)

Pada kondisi awal sebelum push button ditekan, Pin Digital 10 menerima sinyal LOW dari resistor pull-down. Variabel systemActive bernilai false, sehingga Pin D9 (PWM) bertegangan 0 V dan Pin D2–D8 berlogika LOW. LED merah dan peraga 7-segment berada pada kondisi padam penuh. 

Gambar 4.1 Hasil Simulasi Pengujian Sistem pada Kondisi Mati / Standby 

4.2 Pengujian Sistem Kondisi ON (Level Minimum)

Saat tombol ditekan satu kali, sistem aktif. Ketika potensiometer diputar pada posisi minimum (0 V), ADC membaca nilai 0. Fungsi map() menghasilkan keluaran PWM bernilai 0 (duty cycle 0%) yang menyebabkan LED padam, serta menampilkan karakter angka 0 pada 7-segment. 

Gambar 4.2 Hasil Simulasi Sistem Kondisi ON pada Level Minimum (Angka 0) 

4.3 Pengujian Sistem Kondisi ON (Level Sedang)

Gambar 4.3 Hasil Simulasi Sistem Kondisi ON pada Level Sedang (Angka 5) 

4.4 Pengujian Sistem Kondisi ON (Level Maksimum)

Saat potensiometer diputar penuh ke posisi maksimum (5 V), ADC membaca nilai 1023. Konversi PWM menghasilkan nilai 255 (duty cycle 100%) sehingga LED menyala terang maksimal, dan peraga 7-segment menampilkan angka 9. 

Gambar 4.4 Hasil Simulasi Sistem Kondisi ON pada Level Maksimum (Angka 9) 

4.5 Analisis Sistem dan Pewaktuan (Timing Analysis)

Rincian alokasi data masukan, konversi sinyal, dan luaran sistem untuk tiap skenario pengujian disajikan pada Tabel 4.1: 

Tabel 4.1 Data Hasil Pengujian dan Analisis Sistem Terintegrasi

Skenario Pengujian

Status Button (D10)

Tegangan Input Potensio

Nilai ADC (A0)

Nilai PWM (D9)

Duty Cycle PWM

Tampilan 7-Segment (D2–D8)

Status Operasi LED

Sistem OFF

LOW (0V)

0 V – 5 V

Unprocessed

0

0%

Matikan Semua Pin (LOW)

Padam

Level Minimum

HIGH (5V)

0 V

0

0

0%

Pola Angka 0 (1111110)

Padam

Level Sedang

HIGH (5V)

2,5 V

512

127

50%

Pola Angka 5 (1011011)

Nyala Sedang

Level Maksimum

HIGH (5V)

5 V

1023

255

100%

Pola Angka 9 (1111011)

Nyala Maksimal

Berdasarkan data pada Tabel 4.1, analisis kerja sistem dapat diuraikan sebagai berikut: 

  1. Peran Resistor Pull-Down: Penggunaan resistor 10 k$\Omega$ terbukti efektif mengikat sinyal masukan Pin D10 pada logika LOW saat saklar terbuka, sehingga berhasil menghilangkan potensi kebisingan induksi (floating). 
  2. Presisi Konversi ADC ke PWM: Fitur ADC 10-bit (0--1023) mampu dipetakan secara linier ke sinyal PWM 8-bit (0--255) via perintah map(). Hal ini menghasilkan perubahan intensitas cahaya LED yang konsisten terhadap sudut putar potensiometer. 
  3. Representasi Biner 7-Segment: Pengiriman array matriks logika 1 dan 0 ke Pin D2–D8 mampu mengendalikan segmen Common Cathode secara akurat sesuai angka level yang dihitung oleh mikrokontroler.

 

BAB V
KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan hasil perancangan, pengkodean, dan simulasi sistem Smart Dimmer LED & Display Level berbasis Arduino Uno pada platform Wokwi, dapat ditarik kesimpulan sebagai berikut: 

  1. Rangkaian terintegrasi yang menggabungkan masukan digital (push button), masukan analog (potensiometer), keluaran analog berbasis Pulse Width Modulation / PWM (LED), dan keluaran digital (7-segment display) berhasil dirancang dan dapat berfungsi dengan sempurna pada simulator Wokwi. 
  2. Penggunaan masukan digital pada Pin D10 dengan konfigurasi resistor pull-down 10 k$\Omega$ terbukti efektif mencegah fenomena floating pin serta mampu berfungsi sebagai saklar toggle untuk mengontrol status aktif atau matinya sistem secara stabil. 
  3. Fitur Analog to Digital Converter (ADC) 10-bit pada Pin Analog A0 mampu mengonversi masukan tegangan linier potensiometer (0--5 V) menjadi rentang data digital biner 0 hingga 1023 secara presisi. 
  4. Konversi nilai ADC menggunakan fungsi map() berhasil memetakan data masukan menjadi dua jalur keluaran, yaitu sinyal PWM 8-bit (0--255) pada Pin D9 untuk memodulasi duty cycle kecerahan LED, serta pemetaan skala numerik 0 hingga 9 untuk dikirimkan ke peraga 7-segment. 
  5. Peraga 7-segment tipe Common Cathode pada Pin D2 hingga D8 mampu menampilkan indikator visual level angka 0 hingga 9 secara akurat berdasarkan pengolahan matriks data biner segmen a hingga g. 

5.2 Saran

Beberapa saran yang dapat diberikan untuk pengembangan praktikum ini di masa mendatang meliputi: 

  1. Implementasi Perangkat Keras Fisik: Mengimplementasikan hasil simulasi ini pada papan rangkaian (hardware) riil menggunakan breadboard dan komponen fisik guna mengamati toleransi komponen serta pengaruh gangguan (noise) sinyal pada dunia nyata. 
  2. Optimasi Pemrograman Non-Blocking: Mengganti fungsi pewaktuan tunda delay(50) pada proses debouncing tombol dengan fungsi non-blocking millis() agar mikrokontroler dapat melakukan tugas komputasi (multitasking) tanpa mengalami kondisi terhenti sementara (blocking). 
  3. Pengembangan Fitur Sistem: Menambahkan indikator suara berupa buzzer atau antarmuka komunikasi Serial Monitor untuk memantau nilai persentase duty cycle PWM dan tegangan ADC secara real-time. 

 

DAFTAR PUSTAKA

·  Arduino. (2023). Arduino Uno Rev3 hardware documentation and pinout guide. Arduino Reference Manual. https://docs.arduino.cc/hardware/uno-rev3

·  Kadry, S. (2018). Microcontroller programming and interfacing with Texas Instruments MSP430FR2433 & Arduino. Springer Publishing. 

·  Kurniawan, N. Y. (2024). Modul 2: Digital & analog input output (Mengenal proses I/O pada mikrokontroler). Unesa IF Training. 

·  Wokwi. (2024). Wokwi simulator documentation: Arduino Uno & peripherals. Wokwi Documentation Center. https://docs.wokwi.com

 

Tidak ada komentar:

Posting Komentar