- Bahan yang diperlukan:
- LDR:
- LED RGB:
- Rajah Litar:
- Penjelasan Pengaturcaraan:
- Kerja Lampu Pencampuran Warna Arduino:
Bagaimana jika kita dapat menghasilkan warna yang berbeza menggunakan satu LED RGB dan menjadikan sudut bilik kita lebih menarik? Jadi, berikut adalah lampu pencampuran warna berasaskan Arduino sederhana yang boleh berubah warna apabila terdapat perubahan cahaya di dalam bilik. Jadi lampu ini secara automatik akan berubah warnanya mengikut keadaan cahaya di dalam bilik.
Setiap warna adalah gabungan warna Merah, Hijau dan Biru. Oleh itu, kita dapat menghasilkan warna apa pun dengan menggunakan warna merah, hijau dan biru. Jadi, di sini kita akan mengubah PWM iaitu intensiti cahaya pada LDR. Itu akan mengubah intensiti warna merah, hijau dan biru pada LED RGB, dan warna yang berbeza akan dihasilkan.
Jadual di bawah menunjukkan kombinasi warna dengan perubahan kitaran tugas masing-masing.
Bahan yang diperlukan:
- 1 x Arduino UNO
- 1 x Papan Roti
- 3 x 220-ohm perintang
- Perintang 3 x 1-kilohm
- Wayar pelompat
- 3 x LDR
- 3 jalur berwarna (merah, hijau, biru)
- 1 x LED RGB
LDR:
Kami akan menggunakan photoresistor (atau perintang bergantung cahaya, LDR, atau sel foto-konduktif) di sini dalam litar ini. LDR dibuat dari bahan semikonduktor untuk membolehkan mereka mempunyai sifat sensitif cahaya. LDR atau FOTO RESISTOR ini berfungsi berdasarkan prinsip "Photo Conductivity". Sekarang apa yang dikatakan oleh prinsip ini adalah, setiap kali cahaya jatuh di permukaan LDR (dalam kes ini) kekonduksian elemen meningkat atau dengan kata lain, rintangan LDR jatuh apabila cahaya jatuh di permukaan LDR. Sifat penurunan rintangan untuk LDR ini dicapai kerana ia adalah sifat bahan semikonduktor yang digunakan di permukaan.
Di sini tiga sensor LDR digunakan untuk mengawal kecerahan LED Merah, Hijau dan Biru individu di dalam RGB Led. Ketahui lebih lanjut mengenai mengawal LDR dengan Arduino di sini.
LED RGB:
Terdapat dua jenis LED RGB, satu adalah jenis katod biasa (negatif biasa) dan yang lain adalah jenis jenis anod biasa (positif biasa). Di CC (Common Cathode atau Common Negative), akan ada tiga terminal positif setiap terminal mewakili warna dan satu terminal negatif mewakili ketiga-tiga warna.
Di litar kami, kami akan menggunakan jenis CA (Common Anode atau Common Positive). Pada jenis Anode Biasa, jika kita mahu LED MERAH menyala, kita perlu membumikan pin LED MERAH dan menghidupkan positif positif. Perkara yang sama berlaku untuk semua LED. Belajar di sini untuk menghubungkan LED RGB dengan Arduino.
Rajah Litar:
Gambarajah litar lengkap projek ini diberikan di atas. Sambungan +5V dan ground yang ditunjukkan dalam rajah litar dapat diperoleh dari pin 5V dan ground Arduino. Arduino itu sendiri boleh dihidupkan dari komputer riba anda atau melalui bicu DC menggunakan penyesuai 12V atau bateri 9V.
Kami akan menggunakan PWM untuk mengubah kecerahan LED RGB. Anda boleh mengetahui lebih lanjut mengenai PWM di sini. Berikut adalah beberapa contoh PWM dengan Arduino:
- Bekalan Kuasa Pembolehubah Oleh Arduino Uno
- DC Motor Control menggunakan Arduino
- Penjana Nada Berasaskan Arduino
Penjelasan Pengaturcaraan:
Pertama, kami menyatakan semua input dan pin output seperti gambar di bawah.
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;
Menyatakan nilai awal sensor dan led sebagai 0.
int tidak bertanda red_led_value = 0; int tidak bertanda blue_led_value = 0; int green_led_value = 0 yang tidak ditandatangani = 0; int red_sensor_value = 0 yang tidak ditandatangani = 0; int blue_sensor_value = 0; int green_sensor_value = 0; batal persediaan () { pinMode (red_led_pin, OUTPUT); pinMode (blue_led_pin, OUTPUT); pinMode (green_led_pin, OUTPUT); Serial.begin (9600); }
Di bahagian gelung, kita akan mengambil output tiga sensor dengan analogRead (); berfungsi dan simpan dalam tiga pemboleh ubah yang berbeza.
gelung kosong () { red_sensor_value = analogRead (red_sensor_pin); kelewatan (50); blue_sensor_value = analogRead (blue_sensor_pin); kelewatan (50); green_sensor_value = analogRead (green_sensor_pin);
Cetak nilai tersebut ke monitor bersiri untuk tujuan penyahpepijatan
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 mendapat nilai 0-1023 dari sensor tetapi pin Arduino PWM kami mempunyai nilai 0-255 sebagai output. Oleh itu, kita harus menukar nilai mentah kita menjadi 0-255. Untuk itu kita harus membahagikan nilai mentah dengan 4 ATAU kita boleh menggunakan fungsi pemetaan Arduino untuk menukar nilai-nilai ini.
red_led_value = red_sensor_value / 4; // tentukan Red LED blue_led_value = blue_sensor_value / 4; // tentukan Blue LED green_led_value = green_sensor_value / 4; // tentukan Green Led
Cetak nilai yang dipetakan ke monitor bersiri
Serial.println ("Nilai Sensor yang Dipetakan:"); Serial.print ("\ t Merah:"); Serial.print (red_led_value); Serial.print ("\ t Biru:"); Cetakan bersiri (blue_led_value); Serial.print ("\ t Hijau:"); Serial.println (green_led_value);
Gunakan analogWrite () untuk menetapkan output untuk LED RGB
analogWrite (red_led_pin, red_led_value); // nyatakan analog LED merah (White_led_pin, blue_led_value); // nyatakan analog LED berwarna biru (green_led_pin, green_led_value); // menunjukkan hijau
Kerja Lampu Pencampuran Warna Arduino:
Oleh kerana kita menggunakan tiga LDR, ketika berlaku cahaya pada sensor ini, rintangannya berubah kerana voltan juga berubah pada pin analog Arduino yang bertindak sebagai pin input untuk sensor.
Apabila intensiti cahaya berubah pada sensor ini, lampu LED masing-masing akan menyala dengan jumlah rintangan yang berubah dan kita mempunyai pencampuran warna yang berbeza pada LED RGB menggunakan PWM.