Lampu Meja RGB Kendali Gerak – Pencahayaan Interaktif Tanpa Tangan
Komponen dan Perlengkapan
Arduino UNO
×
1
SmartElex RLS-08 Analog & Digital Line Sensor Array
×
1
Kabel Jumper (umum)
×
1
Strip LED NeoPixel Digital RGB
×
1
Alat dan Mesin yang Diperlukan
Pistol Lem Panas (umum)
Aplikasi dan Layanan Online
Arduino IDE
Tentang Proyek Ini
Kita semua telah melihat berbagai macam lampu suasana dan lampu RGB, sebagian besar memiliki tombol atau remote untuk berinteraksi, namun kami berpihak untuk membuat Lampu Meja RGB Kendali Gerak yang dapat mengubah warna hanya menggunakan gerakan sapuan sederhana sebagai pemicu. Ini adalah proyek seni interaktif yang dibuat menggunakan papan Arduino Uno dan sensor array IR. Proyek ini menyenangkan dan mudah, sehingga dapat diajarkan kepada siswa dan anak-anak.
Mari kita masuk ke bagian pembuatan.
Ikuti kami di Instagram: Random stuff We Make! untuk proyek keren lainnya.
Langkah 1: Siapkan Bahan-bahan
Semua bahan yang disebutkan di sini mudah didapat di pasar lokal maupun toko online.
Arduino Uno
Array sensor IR (8 sensor)
WS2812b LED RGB Addressable
Adaptor daya 5V, 2A
Langkah 2: Pengantar
Sensor ini adalah array sederhana dari beberapa sensor IR (sensor dekat). Array ini terdiri dari 8 sensor yang dapat memberikan 8 output analog dan digital berbeda. Dalam proyek ini, kita akan menggunakan sensor ini untuk mengidentifikasi arah gerakan tangan kita dan mengubah warna LED sesuai dengan gerakan. Papan Arduino akan mengambil input dari sensor dan mengubah warna LED.
Berikut adalah gambar array sensor IR dan gerakan yang terkait dengan kode. Dua gerakan sederhana adalah:
Sapuan ke Kiri
Sapuan ke Kanan
Perhatikan cara kerja gerakan ini di sini:
Langkah 3: Membuat Koneksi
Hanya ada beberapa koneksi, yaitu; (Lihat koneksi dari gambar rangkaian)
Koneksi Sensor IR:
Hubungkan GND sensor line follower IR ke GND Arduino.
Hubungkan VCC sensor line follower IR ke 5V Arduino.
Hubungkan Output Digital sensor A ke pin Digital 4 Arduino.
Hubungkan Output Digital sensor B ke pin Digital 5 Arduino.
Hubungkan Output Digital sensor C ke pin Digital 6 Arduino.
Hubungkan Output Digital sensor D ke pin Digital 7 Arduino.
Hubungkan Output Digital sensor E ke pin Digital 8 Arduino.
Hubungkan Output Digital sensor F ke pin Digital 9 Arduino.
Hubungkan Output Digital sensor G ke pin Digital 10 Arduino.
Hubungkan Output Digital sensor H ke pin Digital 11 Arduino.
Koneksi Strip LED:
Hubungkan GND strip LED ke GND Arduino.
Hubungkan 5V strip LED ke Vin Arduino.
Hubungkan Data In strip LED ke pin Digital 3 Arduino.
Itu saja!
Langkah 4: Mari Kode-nya
Kode yang dilampirkan di sini lengkap.
Penjelasan:
Kodenya sederhana. Kami menggunakan satu library bernama FAST LED untuk mengontrol LED dan memberikan efeknya. Kemudian 8 variabel dideklarasikan menggunakan huruf untuk menyimpan data yang datang dari sensor. Jumlah LED dalam strip pixel didefinisikan sebagai 90(Anda dapat mengubahnya sesuai pengaturan Anda) & pin data didefinisikan sebagai pin 3 Arduino.
Void loop terdiri dari 2 nested if loop yang akan memeriksa sensor mana yang menyala & kemudian menyala/mengubah warna LED.
Satu fungsi Void Fadeall dibuat untuk memberikan efek perubahan Hue(Warna).
Unduh kode dari sini & nikmati.
Ikuti kami di Instagram: Random stuff We Make! untuk proyek keren lainnya.
Langkah 5: Beberapa Gambar
Kode
Lampu Meja Kendali Gerak
Lampu Meja Kendali GerakArduino
Kode ini lengkap, Anda dapat mengubah jumlah LED & nomor pin sesuai pengaturan Anda. Untuk penjelasan kode, lihat bagian cerita artikel.
#include <FastLED.h> //Inisialisasi library LED int a,b,c,d,e,f,g,h,j=0; //Variabel untuk menyimpan data sensor #define NUM_LEDS 90 // Berapa banyak LED dalam strip Anda? #define DATA_PIN 3 // Pin data LED akan terhubung di sini pada arduino // Definisikan array LED CRGB leds[NUM_LEDS]; void setup() { pinMode(4,INPUT); //Pin Input Digital untuk sensor IR pinMode(5,INPUT); //Pin Input Digital untuk sensor IR pinMode(6,INPUT); //Pin Input Digital untuk sensor IR pinMode(7,INPUT); //Pin Input Digital untuk sensor IR pinMode(8,INPUT); //Pin Input Digital untuk sensor IR pinMode(9,INPUT); //Pin Input Digital untuk sensor IR pinMode(10,INPUT);//Pin Input Digital untuk sensor IR pinMode(11,INPUT);//Pin Input Digital untuk sensor IR LEDS.addLeds<WS2812,DATA_PIN,RGB>(leds,NUM_LEDS); //Inisialisasi LED LEDS.setBrightness(84); // Kecerahan LED (rentang 0-255) } void fadeall() { for(int i = 0; i < NUM_LEDS; i++) { leds[i].nscale8(250); } } //Fungsi untuk Efek Fade void loop() { a=digitalRead(4); //Baca input dari sensor A b=digitalRead(5); //Baca input dari sensor B c=digitalRead(6); //Baca input dari sensor C d=digitalRead(7); //Baca input dari sensor D e=digitalRead(8); //Baca input dari sensor E f=digitalRead(9); //Baca input dari sensor F g=digitalRead(10);//Baca input dari sensor G h=digitalRead(11);//Baca input dari sensor H static uint8_t hue = 0; // Variabel 8 bit // Geser LED ke satu arah terlebih dahulu if(a==1) { if(b==1) { for(int i = 4; i < 55; i++) { // Setel i'th LED ke merah leds[i] = CHSV(hue++, 255, 255); // Tampilkan LED FastLED.show(); // sekarang setelah kita menampilkan LED, atur ulang i'th LED ke hitam // leds[i] = CRGB::Black; fadeall(); // Tunggu sebentar sebelum kita mengulang dan melakukannya lagi delay(10); } } } if(g==1) { if(f==1) { // Sekarang pergi ke arah lain. for(int i = (56)-1; i >= 4; i--) { // Setel i'th LED ke merah leds[i] = CHSV(hue++, 255, 255); // Tampilkan LED FastLED.show(); // sekarang setelah kita menampilkan LED, atur ulang i'th LED ke hitam // leds[i] = CRGB::Black; fadeall(); // Tunggu sebentar sebelum kita mengulang dan melakukannya lagi delay(10); } } } }
Skema
Rangkaian dalam fritzing dibuat dengan 8 sensor IR yang berbeda, Anda dapat menggunakan 8 sensor berbeda atau satu array sensor.