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.
Alat dan Bahan
Alat dan bahan untuk project ini adalah sebagai berikut.
- Software Arduino ID
- NodeMCU ESP8266 1
- LED RGB KY-016 1
- Potensiometer 3
- Projectboard 1
- 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); } |
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.
- Software Arduino ID
- NodeMCU ESP8266 1
- LED RGB KY-016 1
- Potensiometer 1
- Projectboard 1
- 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!