Home » Blog » Tutorial Arduino RGB LED (Anode, Cathode, SMD, potensiometer) – Bahasa Indonesia

Tutorial Arduino RGB LED (Anode, Cathode, SMD, potensiometer) – Bahasa Indonesia

Tutorial ini menjelaskan bagaimana kita bisa menggunakan LED RGB (Red, Green dan Blue). LED jenis ini bisa menghasilkan lebih dari 16 juta warna, kombinasi yang tidak bisa didapatkan hanya dengan menggunakan LED biasa yang memiliki satu warna seperti merah, biru, hijau dan sebagainya. Penggunaan LED RGB juga menghemat penggunaan LED karena berbagai macam warna bisa dihasilkan hanya dari satu LED.

Dalam video ini, dijelaskan secara detil mengenai jenis LED RGB, yaitu jenis Anode, jenis Cathode dan jenis Standard Mounted Device (SMD).

Video juga menjelaskan bagaimana kita bisa mendapatkan kode warna berdasarkan kombinasi warna dasar dan intensitas warnanya.

Dalam video ini terdapat dua eksperimen. Bagian pertama hanya menggunakan LED RGB, baik jenis Anode, Cathode maupun SMD. Bagian kedua menggunakan potensiometer untuk mengendalikan intensitas cahaya yang dipancarkan oleh masing-masing LED dalam LED RGB.

Kode Program (Warna Dasar Merah, Hijau. Biru)

// Protus Tanuhandaru
// www.progresstech.co.id

int pinLampuMerah = 11; //Membuat variabel untuk PIN LED Merah
int pinLampuHijau = 10; //Membuat variabel untuk PIN LED Hijau
int pinLampuBiru = 9; //Membuat variabel untuk PIN LED Biru
void setup() {
  pinMode(pinLampuMerah, OUTPUT); // PIN LED merah sebagai output
  pinMode(pinLampuHijau, OUTPUT); // PIN LED hijau sebagai output
  pinMode(pinLampuBiru, OUTPUT); // PIN LED biru sebagai output
}
void loop() {
  warnaRGB(255, 0, 0); // Warna merah
  delay(1000);
  warnaRGB(0, 255, 0); // Warna hijau
  delay(1000);
  warnaRGB(0, 0, 255); // Warna biru
  delay(1000);
}

// Fungsi untuk mengkombinasikan warna LED
void warnaRGB(int nilaiLampuMerah, int nilaiLampuHijau, int nilaiLampuBiru)
 {
  analogWrite(pinLampuMerah, nilaiLampuMerah);
  analogWrite(pinLampuHijau, nilaiLampuHijau);
  analogWrite(pinLampuBiru, nilaiLampuBiru);
}

Kode Program (Warna Lain)

// Protus Tanuhandaru
// www.progresstech.co.id

int pinLampuMerah = 11; //Membuat variabel untuk PIN LED Merah
int pinLampuHijau = 10; //Membuat variabel untuk PIN LED Hijau
int pinLampuBiru = 9; //Membuat variabel untuk PIN LED Biru
void setup() {
  pinMode(pinLampuMerah, OUTPUT); // PIN LED merah sebagai output
  pinMode(pinLampuHijau, OUTPUT); // PIN LED hijau sebagai output
  pinMode(pinLampuBiru, OUTPUT); // PIN LED biru sebagai output
}
void loop() {
  warnaRGB(255, 0, 0); // Warna merah
  delay(1000);
  warnaRGB(0, 255, 0); // Warna hijau
  delay(1000);
  warnaRGB(0, 0, 255); // Warna biru
  delay(1000);
  warnaRGB(255, 255, 0); // Warna kuning
  delay(1000);
  warnaRGB(255, 0, 255); // Warna magenta
  delay(1000);
  warnaRGB(0, 255, 255); // Warna sian (cyan)
  delay(1000);
  warnaRGB(255, 128, 0); // Warna oranye
  delay(1000);
}

// Fungsi untuk mengkombinasikan warna LED
void warnaRGB(int nilaiLampuMerah, int nilaiLampuHijau, int nilaiLampuBiru)
 {
  analogWrite(pinLampuMerah, nilaiLampuMerah);
  analogWrite(pinLampuHijau, nilaiLampuHijau);
  analogWrite(pinLampuBiru, nilaiLampuBiru);
}

Kode Progam (dengan potensiometer)

// Protus Tanuhandaru
// www.progresstech.co.id

int pinLampuMerah = 11; //Membuat variabel untuk PIN LED Merah
int pinLampuHijau = 10; //Membuat variabel untuk PIN LED Hijau
int pinLampuBiru = 9; //Membuat variabel untuk PIN LED Biru

int potMerah = A0; // Membuat variable data untuk potensiometer LED merah
int potHijau = A1; // Membuat variable data untuk potensiometer LED hijau
int potBiru = A2; // Membuat variable data untuk potensiometer LED biru

int nilaiPotMerah = 0; // Membuat variable untuk menyimpan hasil konversi PWM ke LED merah
int nilaiPotHijau = 0; // Membuat variable untuk menyimpan hasil konversi PWM ke LED hijau
int nilaiPotBiru = 0; // Membuat variable untuk menyimpan hasil konversi PWM ke LED biru

void setup() {
  Serial.begin(9600);
  pinMode(pinLampuMerah, OUTPUT); // PIN LED merah sebagai output
  pinMode(pinLampuHijau, OUTPUT); // PIN LED hijau sebagai output
  pinMode(pinLampuBiru, OUTPUT); // PIN LED biru sebagai output

  pinMode(potMerah, INPUT); // Nilai yang dibaca dari potensiometer untuk LED merah
  pinMode(potHijau, INPUT); // Nilai yang dibaca dari potensiometer untuk LED hijau
  pinMode(potBiru, INPUT); // Nilai yang dibaca dari potensiometer untuk LED biru

}
void loop() {
  // Memetakan kisaran nilai potensiometer ke kisaran nilai Anode 
  nilaiPotMerah = map(analogRead(potMerah), 0, 1023, 255, 0);
  nilaiPotHijau = map(analogRead(potHijau), 0, 1023, 255, 0);
  nilaiPotBiru = map(analogRead(potBiru), 0, 1023, 255, 0);

  // Memetakan kisaran nilai potensiometer ke kisaran nilai Cathode
  //nilaiPotMerah = map(analogRead(potMerah), 0, 1023, 0, 255);
  //nilaiPotHijau = map(analogRead(potHijau), 0, 1023, 0, 255);
  //nilaiPotBiru = map(analogRead(potBiru), 0, 1023, 0, 255);
  
  analogWrite(pinLampuMerah, nilaiPotMerah);
  analogWrite(pinLampuHijau, nilaiPotHijau);
  analogWrite(pinLampuBiru, nilaiPotBiru);

  Serial.print("Potensiometer merah : ");
  Serial.print(analogRead(potMerah));
  Serial.print(" | Potensiometer hijau : ");
  Serial.print(analogRead(potHijau));
  Serial.print(" | Potensiometer biru : ");
  Serial.println(analogRead(potBiru));
  
  delay(10);
}

Leave a Reply

Your email address will not be published.