Tutorial Mengendalikan Warna LED RGB Menggunakan Potensiometer

Indobot Update

Halo Fanbot!

Sedang ada project apa hari ini?

Teman-teman sudah pernah menggunakan LED?

Kali ini, kita akan membuat kendali LED RGB dengan menggunakan potensiometer.

LED RGB merupakan salah satu jenis LED yang dapat mengeluarkan sinar berwarna. Seperti namanya, warna utama yang dapat dipancarkan untuk LED RGB adalah Red, Green, Blue (RGB) atau merah, hijau, dan biru. LED RGB memiliki 3 lampu LED dengan warna tersebut. Kombinasi dari ketiga warna ini tidak hanya dilakukan dengan menyalakan salah satu, salah dua, atau tiga-tiganya. Namun kita juga dapat mengatur intensitasnya untuk menghasilkan warna yang berbeda.

Nah. pada project kali ini, kita akan membuat pengatur warna LED dengan menggunakan potensio. Potensio ini berfungsi sebagai pengatur nilai analog untuk intensitas cahaya dari tiap-tiap LED. Sehingga akan menghasilkan warna yang berbeda ketika kita memutar potensio tersebut. Penasaran bagaimana membuatnya? yuk kita simak.

 

Table of Contents

Alat dan Bahan

Alat dan bahan untuk project ini adalah sebagai berikut.

  1. Software Arduino ID
  2. NodeMCU ESP8266 1
  3. LED RGB KY-016 1
  4. Potensiometer 3
  5. Projectboard 1
  6. Kabel jumper Secukupnya

 

Rangkaian

Susun device di atas menjadi rangkaian seperti berikut. Pastikan semua terhubung dengan baik.

baca juga: Mengakses 6 Sensor Warna TCS34725 dengan Multiplexer TCA9548A

 

Program

Tahap selanjutnya adalah penulisan program pada Arduino IDE. Buatlah program seperti berikut. Perhatikan keterangan (comment) untuk memahami program dengan baik.

 
//Mengendalikan warna LED RGB dengan Potensiometer oleh indobot.co.id

//Deklarasi variabel untuk LED
int LED_R = D1; //Pin Red (Merah) ke D1
int LED_G = D2; //Pin Green (Hijau) ke D2
int LED_B = D3; //Pin Blue (Biru) ke D3

//Deklarasi variabel untuk potensio
int POT_R = D6;   //Pin Output Potensio untuk Red ke D6
int POT_G = D7;   //Pin Output Potensio untuk Green ke D7
int POT_B = D8;   //Pin Output Potensio untuk Blue ke D8
 
void setup() {
  //Inisialisasi LED Sebagai output
  pinMode(LED_R, OUTPUT); 
  pinMode(LED_G, OUTPUT); 
  pinMode(LED_B, OUTPUT);

  //Inisialisasi Potensio Sebagai input
  pinMode(POT_R, INPUT); 
  pinMode(POT_G, INPUT); 
  pinMode(POT_B, INPUT); 
}
void loop() {
  //Pembacaan putaran dari potensio
  int NPOT_R = analogRead(POT_R);
  int NPOT_G = analogRead(POT_G);
  int NPOT_B = analogRead(POT_B);

  //Pengubahan nilai baca potensio dengan range 0-1023
  //menjadi 0-255
  int newNPOT_R = map(NPOT_R, 0,1023, 0,255);
  int newNPOT_G = map(NPOT_G, 0,1023, 0,255);
  int newNPOT_B = map(NPOT_B, 0,1023, 0,255);

  //Menampilkan LED RGB sesuai besaran nilai dari potensio
  analogWrite (LED_R, newNPOT_R);
  analogWrite (LED_G, newNPOT_G);
  analogWrite (LED_B, newNPOT_B);

}


baca juga: Cara Menyalakan LED RGB KY-016 dan Variasinya

 

Hasil dari project di atas adalah kita dapat mengubah nilai PWM seperti kita menggunakan pewarnaan dengan RGB. Setiap potensio mewakili satu warna RGB, yaitu merah, hijau, dan biru. Untuk menghasilkan warna yang sesuai, kita perlu menaikkan dan menurunkan masing-masing potensio. Dengan cara ini, kita bisa menemukan berbagai variasi warna dengan putaran potensio yang berbeda.

Nah, jika teman-teman ingin membuat pengaturan LED RGB yang hanya perlu menggunakan satu potensio, bisa menggunakan cara berikut ini.

Alat dan juga Bahan

Alat dan bahan untuk project ini adalah sebagai berikut.

  1. Software Arduino ID
  2. NodeMCU ESP8266 1
  3. LED RGB KY-016 1
  4. Potensiometer 1
  5. Projectboard 1
  6. Kabel jumper Secukupnya

 

Rangkaian

Susun device di atas menjadi rangkaian seperti berikut. Pastikan semua terhubung dengan baik.

Belajar Elektronika, Arduino, dan IoT step by step dengan bantuan tangga belajar? Daftar sekarang dan dapatkan PROMO

Program

Tahap selanjutnya adalah penulisan program pada Arduino IDE. Buatlah program seperti berikut. Perhatikan keterangan (comment) untuk memahami program dengan baik.

 
//Mengendalikan warna LED RGB dengan Potensiometer oleh indobot.co.id

//Deklarasi variabel untuk LED
int LED_R = D1; //Pin Red (Merah) ke D1
int LED_G = D2; //Pin Green (Hijau) ke D2
int LED_B = D3; //Pin Blue (Biru) ke D3

//Deklarasi variabel untuk potensio
int POT = D4;   //Pin Output Potensio untuk Red ke D4

 

void setup() {
  //Inisialisasi LED Sebagai output
  pinMode(LED_R, OUTPUT); 
  pinMode(LED_G, OUTPUT); 
  pinMode(LED_B, OUTPUT);

  //Inisialisasi Potensio Sebagai input
  pinMode(POT, INPUT); 
}
void loop() {
  //Pembacaan putaran dari potensio
  int NPOT = analogRead(POT);

  //Pengubahan nilai baca potensio dengan range 0-1023
  //menjadi 0-510
  int newNPOT = map(NPOT, 0,1023, 0,510);

  //Program untuk memasukkan nilai PWM ke tiap pin RGB
  if(newNPOT <=255){
     analogWrite (LED_B, newNPOT);
     analogWrite (LED_G, 255-newNPOT);
     analogWrite (LED_R, 128-newNPOT);
  }
  else if(newNPOT >255){
     int newNPOT2 = 510 - newNPOT;
     analogWrite (LED_B, newNPOT2);
     analogWrite (LED_G, 255-newNPOT2);
     analogWrite (LED_R, 128-newNPOT2);
  }
}


baca juga: Akses Sensor Warna TCS 3200 dengan Indikator Output LED RGB

Project di atas, hanya perlu menggunakan satu potensio. Potensio digunakan untuk mengubah nilai PWM dari tiap-tiap kaki pin RGB sekaligus. Setiap putaran, akan menghasilkan warna yang berbeda sesuai dengan nilai pin yang dihasilkan. Hal ini dapat dilakukan dengan program berikut.

 

   //Program untuk memasukkan nilai PWM ke tiap pin RGB
  if(newNPOT <=255){
     analogWrite (LED_B, newNPOT);
     analogWrite (LED_G, 255-newNPOT);
     analogWrite (LED_R, 128-newNPOT);
  }
  else if(newNPOT >255){
     int newNPOT2 = 510 - newNPOT;
     analogWrite (LED_B, newNPOT2);
     analogWrite (LED_G, 255-newNPOT2);
     analogWrite (LED_R, 128-newNPOT2);
  }

Pada program di atas, dapat dijelaskan jika nilai kurang dari 255, maka pin LED RGB bagian blue, green, dan red akan mengikuti nilai pengiriman dari hasil baca potensio yaitu dari 0 – 255. Sedangkan jika nilai sudah melebihi 255, pin LED RGB akan mengikuti nilai sebaliknya, dengan menggunakan rumus 510 – nilai, maka akan menghasilkan nilai dari 255 hingga 0. Hal inilah yang membuat pengaturan perubahan nilai di bagian int newNPOT = map(NPOT, 0,1023, 0,510); menggunakan nilai 510 (program sebelumnya menggunakan 255).

Bagaimana? sudah paham? silakan bisa dicoba ya gaes. Buat nambah referensi dan pengalaman teman-teman ya. Semangat!

Mau belajar elektronika dasar? Arduino? atau bahkan Internet of Things? Ikuti kursus online Indobot Academy!

Ingin Tahu Program Kami Lebih Lanjut?

Silahkan isi Formulir Dibawah Ini untuk Diskusi dengan Tim Indobot Academy.

Baca Juga

Bagikan:

Tinggalkan komentar

whatsapp whatsapp