Pada pembelajaran sebelumnya, kita membuat lampu otomatis dengan LDR yang lampu akan menyala apabila suasana sekitar gelap. Dalam pembelajaran kali ini kita juga masih membuat lampu otomatis dengan LDR, namun menggunakan lampu LED RGB yang bisa kita atur warnanya dengan potensiometer
LED RGB merupakan gabungan tiga LED kecil dengan warna berbeda, yaitu merah, hijau dan biru menjadi satu. Kaki negatif/katoda dari masing-masing warna LED terhubung sehingga hanya memiliki 4 kaki. Untuk menyalakan LED ini dengan cara menghubungkan kaki katoda dengan tegangan ground/negatif dan kaki masing-masing warna LED dengan tegangan positif, namun jangan lupa memasang resistor untuk membatasi arus..
Kebutuhan Komponen :
- Arduino = 1 Pcs
- Breadboard = 1 Pcs
- LDR/Photoresistor = 1 Pcs
- Resistor 330 Ω = 3 Pcs
- Resistor 10KΩ = 1 Pcs
- Lampu LED RGB = 1 Pcs
- Potensiometer = 1 Pcs
- Kabel Jumper secukupnya
Skema :

Rangkaian :

Source Code :
/*
Menyalakan dan mematikan sebuah LED RGB berdasarkan intensitas cahaya yang diterima oleh photoresistor.
Putar potensiometer untuk merubah warna nyala LED.
*/
int photoresistor; //variabel untuk menyimpan nilai photoresistor
int potentiometer; //variabel untuk menyimpan nilai potensiometer
int threshold = 700; //jika photoresistor membaca dibawah nilai ini maka LED akan menyala
//LED RGB dihubungkan dengan tiga pin digital
int RedPin = 9;
int GreenPin = 10;
int BluePin = 11;
int photoPin = A0; //pin yang terhubung dengan photoresistor
int potPin = A1; //pin yang terhubung dengan potensiometer
void setup() {
Serial.begin(115200); //memulai komunikasi dengan serial monitor
//set pin digital LED sebagai output
pinMode(RedPin,OUTPUT);
pinMode(GreenPin,OUTPUT);
pinMode(BluePin,OUTPUT);
}
void loop() {
photoresistor = analogRead(photoPin); //membaca nilai dari photoresistor
potentiometer = analogRead(potPin); //membaca nilai dari potensiometer
Serial.print("Photoresistor value:");
Serial.print(photoresistor); //menampilkan nilai photoresistor ke serial monitor
Serial.print(" Potentiometer value:");
Serial.println(potentiometer); //menampilkan nilai photoresistor ke serial monitor
if(photoresistor < threshold){ //jika kondisi gelap (nilai photoresistor dibawah nilai threshold) maka LED menyala
//jika kondisi gelap maka akan menjalankan fungsi-fungsi warana
//yang berbeda disesuaikan dengan nilai dari pembacaan potensiometer.
if(potentiometer > 0 && potentiometer <= 150)
red();
if(potentiometer > 150 && potentiometer <= 300)
orange();
if(potentiometer > 300 && potentiometer <= 450)
yellow();
if(potentiometer > 450 && potentiometer <= 600)
green();
if(potentiometer > 600 && potentiometer <= 750)
cyan();
if(potentiometer > 750 && potentiometer <= 900)
blue();
if(potentiometer > 900)
magenta();
}
else { //jika kondisi terang maka akan mematikan LED
turnOff(); //memanggil fungsi untuk mematikan LED
}
delay(100); //jeda untuk membuat penampilan data mudah dibaca
}
void red() {
//set pin LED dengan nilai untuk membuat nyala LED menjadi merah
analogWrite(RedPin, 100);
analogWrite(GreenPin, 0);
analogWrite(BluePin, 0);
}
void orange() {
//set pin LED dengan nilai untuk membuat nyala orange
analogWrite(RedPin, 100);
analogWrite(GreenPin, 50);
analogWrite(BluePin, 0);
}
void yellow() {
//set pin LED dengan nilai untuk membuat nyala kuning
analogWrite(RedPin, 100);
analogWrite(GreenPin, 100);
analogWrite(BluePin, 0);
}
void green() {
//set pin LED dengan nilai untuk membuat nyala hijau
analogWrite(RedPin, 0);
analogWrite(GreenPin, 100);
analogWrite(BluePin, 0);
}
void cyan() {
//set pin LED dengan nilai untuk membuat nyala cyan
analogWrite(RedPin, 0);
analogWrite(GreenPin, 100);
analogWrite(BluePin, 100);
}
void blue() {
//set pin LED dengan nilai untuk membuat nyala biru
analogWrite(RedPin, 0);
analogWrite(GreenPin, 0);
analogWrite(BluePin, 100);
}
void magenta() {
//set pin LED dengan nilai untuk membuat nyala magenta
analogWrite(RedPin, 100);
analogWrite(GreenPin, 0);
analogWrite(BluePin, 100);
}
void turnOff() {
//set semua pin LED ke 0 atau mati
analogWrite(RedPin, 0);
analogWrite(GreenPin, 0);
analogWrite(BluePin, 0);
}
Kesimpulan
Sama seperti pada latihan lampu otomatis, apabila kondisi ruangan terang atau sensor photoresistor tidak tertutup maka LED RGB akan mati, tapi apabila kondisi ruangan gelap atau sensor ditutup maka LED RGB akan nyala. Nyala warna LED RGB tidak sama, tetapi dapat dirubah dengan memutar knob potensiometer. Warna LED RGB dapat berubah-ubah tergantung posisi knob potensiometer.