- Bahan yang dibutuhkan:
- LDR:
- LED RGB:
- Diagram Sirkuit:
- Penjelasan Pemrograman:
- Cara Kerja Lampu Pencampur Warna Arduino:
Bagaimana jika kita dapat menghasilkan warna yang berbeda menggunakan satu RGB led dan membuat sudut ruangan kita lebih menarik? Berikut ini adalah lampu mixing warna sederhana berbahan dasar arduino yang dapat berubah warna saat ada perubahan cahaya di dalam ruangan. Jadi lampu ini otomatis akan berubah warna sesuai dengan kondisi cahaya di dalam ruangan.
Setiap warna merupakan kombinasi dari warna Merah, Hijau dan Biru. Jadi kita bisa menghasilkan warna apapun dengan menggunakan warna merah, hijau dan biru. Jadi, disini kita akan memvariasikan PWM yaitu intensitas cahaya pada LDR. Itu selanjutnya akan mengubah intensitas warna merah, hijau dan biru pada RGB LED, dan warna berbeda akan dihasilkan.
Tabel di bawah ini menunjukkan kombinasi warna dengan perubahan masing-masing dalam duty cycle.
Bahan yang dibutuhkan:
- 1 x Arduino UNO
- 1 x Papan tempat memotong roti
- Resistor 3 x 220-ohm
- Resistor 3 x 1-kilohm
- Kabel jumper
- 3 x LDR
- 3 x strip berwarna (merah, hijau, biru)
- 1 x LED RGB
LDR:
Kami akan menggunakan fotoresistor (atau resistor bergantung cahaya, LDR, atau sel konduktif foto) di sini, di sirkuit ini. LDR dibuat dari bahan semikonduktor untuk memungkinkan LDR memiliki sifat peka cahaya. LDR atau RESISTOR FOTO ini bekerja berdasarkan prinsip "Konduktivitas Foto". Sekarang prinsip ini mengatakan, setiap kali cahaya jatuh ke permukaan LDR (dalam hal ini) konduktansi elemen meningkat atau dengan kata lain, resistansi LDR turun ketika cahaya jatuh ke permukaan LDR. Properti penurunan resistansi untuk LDR ini dicapai karena ini adalah properti material semikonduktor yang digunakan di permukaan.
Di sini tiga sensor LDR digunakan untuk mengontrol kecerahan masing-masing LED Merah, Hijau dan Biru di dalam RGB Led. Pelajari lebih lanjut tentang mengontrol LDR dengan Arduino di sini.
LED RGB:
Ada dua jenis LED RGB, satu adalah jenis katoda umum (negatif umum) dan jenis lainnya adalah jenis anoda umum (positif umum). Dalam CC (Common Cathode atau Common Negative), akan ada tiga terminal positif, setiap terminal mewakili warna dan satu terminal negatif mewakili ketiga warna.
Di sirkuit kami, kami akan menggunakan tipe CA (Common Anode atau Common Positive). Pada tipe Common Anode, jika kita ingin LED MERAH menyala, kita perlu membumikan pin LED MERAH dan memberi daya pada common positive. Hal yang sama berlaku untuk semua LED. Pelajari di sini untuk menghubungkan LED RGB dengan Arduino.
Diagram Sirkuit:
Diagram rangkaian lengkap dari proyek ini diberikan di atas. + 5V dan koneksi ground yang ditunjukkan pada diagram sirkuit dapat diperoleh dari pin 5V dan ground Arduino. Arduino sendiri dapat diberi daya dari laptop Anda atau melalui jack DC menggunakan adaptor 12V atau baterai 9V.
Kami akan menggunakan PWM untuk mengubah kecerahan led RGB. Anda dapat mempelajari lebih lanjut tentang PWM di sini. Berikut beberapa contoh PWM dengan Arduino:
- Variabel Power Supply Oleh Arduino Uno
- Kontrol Motor DC menggunakan Arduino
- Penghasil Nada Berbasis Arduino
Penjelasan Pemrograman:
Pertama, kami mendeklarasikan semua pin input dan output seperti yang ditunjukkan di bawah ini.
const byte red_sensor_pin = A0; const byte green_sensor_pin = A1; const byte blue_sensor_pin = A2; const byte green_led_pin = 9; const byte blue_led_pin = 10; const byte red_led_pin = 11;
Nyatakan nilai awal sensor dan led sebagai 0.
unsigned int red_led_value = 0; unsigned int blue_led_value = 0; unsigned int green_led_value = 0; unsigned int red_sensor_value = 0; unsigned int blue_sensor_value = 0; unsigned int green_sensor_value = 0; batal penyiapan () { pinMode (red_led_pin, OUTPUT); pinMode (blue_led_pin, OUTPUT); pinMode (green_led_pin, OUTPUT); Serial.begin (9600); }
Pada bagian loop, kita akan mengambil output dari tiga sensor dengan analogRead (); berfungsi dan menyimpan dalam tiga variabel berbeda.
void loop () { red_sensor_value = analogRead (red_sensor_pin); penundaan (50); blue_sensor_value = analogRead (blue_sensor_pin); penundaan (50); green_sensor_value = analogRead (green_sensor_pin);
Cetak nilai tersebut ke monitor serial untuk tujuan debugging
Serial.println ("Nilai Sensor Mentah:"); Serial.print ("\ t Merah:"); Serial.print (red_sensor_value); Serial.print ("\ t Biru:"); Serial.print (blue_sensor_value); Serial.print ("\ t Hijau:"); Serial.println (green_sensor_value);
Kami akan mendapatkan nilai 0-1023 dari sensor tetapi pin Arduino PWM kami memiliki nilai 0-255 sebagai output. Jadi kita harus mengubah nilai mentah kita menjadi 0-255. Untuk itu kita harus membagi nilai mentah dengan 4 ATAU cukup kita bisa menggunakan fungsi pemetaan Arduino untuk mengubah nilai-nilai ini.
red_led_value = red_sensor_value / 4; // tentukan LED Merah blue_led_value = blue_sensor_value / 4; // tentukan LED Biru green_led_value = green_sensor_value / 4; // definisikan Green Led
Cetak nilai yang dipetakan ke monitor serial
Serial.println ("Nilai Sensor yang Dipetakan:"); Serial.print ("\ t Merah:"); Serial.print (nilai_ led_ merah); Serial.print ("\ t Biru:"); Serial.print (nilai_biru_biru); Serial.print ("\ t Hijau:"); Serial.println (green_led_value);
Gunakan analogWrite () untuk mengatur keluaran untuk LED RGB
analogWrite (red_led_pin, red_led_value); // tunjukkan analogWrite LED merah (blue_led_pin, blue_led_value); // tunjukkan analogWrite LED biru (green_led_pin, green_led_value); // menunjukkan hijau
Cara Kerja Lampu Pencampur Warna Arduino:
Karena kami menggunakan tiga LDR jadi, ketika terjadi cahaya pada sensor ini, resistansinya berubah sebagai akibatnya tegangan juga berubah pada pin analog Arduino yang bertindak sebagai pin input untuk sensor.
Ketika intensitas cahaya berubah pada sensor ini, led masing-masing dalam RGB akan menyala dengan jumlah resistansi yang berubah dan kami memiliki pencampuran warna yang berbeda dalam led RGB menggunakan PWM.