RGB LED Menggunakan for()

📄 HANDOUT PRAKTIKUM MIKROKONTROLER

Kontrol Gradasi Warna RGB LED Menggunakan Perulangan for()

📍 Target: Arduino UNO R3 💡 LED: Common Cathode ⚡ Resistor: 220 Ω 💻 Bahasa: C++

🎯 Tujuan Pembelajaran

  1. Memahami karakteristik & pengabelan LED RGB tipe Common Cathode (Katoda Bersama).
  2. Memahami prinsip kerja sinyal Pulse Width Modulation (PWM) pada Arduino.
  3. Mengimplementasikan fungsi perulangan for() dalam C++ untuk efek transisi warna (*fading*).

🛠️ Alat dan Bahan

Komponen Spesifikasi / Keterangan Jumlah
Microcontroller Arduino UNO R3 1 Unit
Output Utama LED RGB Common Cathode 1 Pcs
Komponen Pasif Resistor 220 Ohm (1/4 Watt) 3 Pcs
Penghubung Breadboard MB102 & Kabel Jumper M-M Secukupnya

💡 Konsep Dasar & Pengabelan (Wiring)

Pada tipe Common Cathode (CC), kaki katoda (terpanjang) dihubungkan ke GND. Pin Red, Green, dan Blue dihubungkan ke pin PWM Arduino melalui resistor limitasi 220 Ω.

Kaki LED RGB Komponen Perantara Pin Arduino UNO
Red (R) Resistor 220 Ω Pin 9 (PWM)
Katoda (Terpanjang) Koneksi Langsung GND
Green (G) Resistor 220 Ω Pin 10 (PWM)
Blue (B) Resistor 220 Ω Pin 11 (PWM)
⚠️ Catatan Sinyal PWM:
Fungsi analogWrite(pin, nilai) menerima parameter nilai 0 s.d. 255. Nilai 0 berarti tegangan 0V (mati), dan 255 berarti 5V (terang maksimum).

💻 Kode Program C++

Klik tombol Copy Code untuk menyalin kode ke **Arduino IDE**:

Arduino_RGB_ForLoop.ino
/*
  Handout Praktikum: RGB Fading dengan fungsi for()
  Board: Arduino UNO R3
  Jenis LED: Common Cathode
*/

// Deklarasi pin PWM
const int pinRed   = 9;
const int pinGreen = 10;
const int pinBlue  = 11;

void setup() {
  // Konfigurasi pin sebagai OUTPUT
  pinMode(pinRed, OUTPUT);
  pinMode(pinGreen, OUTPUT);
  pinMode(pinBlue, OUTPUT);
}

void loop() {
  // -------------------------------------------------------------
  // EFEK 1: Redup ke Terang & Terang ke Redup (Merah)
  // -------------------------------------------------------------
  for (int i = 0; i <= 255; i++) {
    analogWrite(pinRed, i);   // Kecerahan bertambah seiring nilai i
    analogWrite(pinGreen, 0); // Warna lain mati
    analogWrite(pinBlue, 0);
    delay(10);                // Kecepatan transisi (10ms)
  }

  for (int i = 255; i >= 0; i--) {
    analogWrite(pinRed, i);
    delay(10);
  }

  // -------------------------------------------------------------
  // EFEK 2: Transisi Halus Warna Merah ke Hijau (Crossfade)
  // -------------------------------------------------------------
  for (int i = 0; i <= 255; i++) {
    analogWrite(pinRed, 255 - i); // Merah perlahan mati (255 -> 0)
    analogWrite(pinGreen, i);     // Hijau perlahan menyala (0 -> 255)
    analogWrite(pinBlue, 0);
    delay(10);
  }

  // -------------------------------------------------------------
  // EFEK 3: Transisi Halus Warna Hijau ke Biru
  // -------------------------------------------------------------
  for (int i = 0; i <= 255; i++) {
    analogWrite(pinRed, 0);
    analogWrite(pinGreen, 255 - i); // Hijau mati
    analogWrite(pinBlue, i);        // Biru menyala
    delay(10);
  }

  // -------------------------------------------------------------
  // EFEK 4: Transisi Halus Warna Biru kembali ke Merah
  // -------------------------------------------------------------
  for (int i = 0; i <= 255; i++) {
    analogWrite(pinRed, i);         // Merah menyala
    analogWrite(pinGreen, 0);
    analogWrite(pinBlue, 255 - i); // Biru mati
    delay(10);
  }
}

🔍 Analisis Logika Perulangan for()

for ( int i = 0 ; i <= 255 ; i++ )
  • int i = 0 : Inisialisasi variabel counter awal (i = 0).
  • i <= 255 : Syarat perulangan tetap berjalan selama nilai i ≤ 255.
  • i++ : Nilai i bertambah 1 setiap kali siklus perulangan selesai.
  • 255 - i : Membalik nilai agar kecerahan meredup secara bertahap dari 255 ke 0.

🎨 Simulasi Interaktif

Klik tombol di bawah untuk melihat simulasi efek perulangan for() pada LED RGB secara *real-time*:

Status: Standby

📝 Tugas & Latihan Mandiri

  1. Uji Kecepatan: Ubah nilai delay(10) menjadi delay(2) dan delay(50). Tuliskan perbedaannya!
  2. Warna Kuning: Buatlah satu blok perulangan for() baru yang memunculkan warna Kuning (kombinasi Merah + Hijau) secara bertahap!
  3. Analisis: Apa yang akan terjadi jika nilai variabel i dinaikkan melebihi batas 255? Jelaskan alasannya!
Share:

0 Comments:

Post a Comment

About

BTemplates.com