Arduino RGB Night Light



Mungkin semua orang di masa kecil memiliki mimpi (dan bukan mimpi). Anda bahkan dapat mencoba untuk mengingat perasaan yang membanjiri jiwa seorang anak dalam memenuhi mimpinya atau sinar yang dikenalnya yang jauh di matanya ... Sebagai seorang anak, saya bermimpi memiliki cahaya malam.

Sekarang saya sedang belajar di tahun ke-4 BSUIR dan ketika kami diberi tahu bahwa proyek kursus tentang desain sirkuit tidak dapat dilakukan di atas kertas tetapi pada sepotong besi, saya sadar: lampu malam, yang sangat saya inginkan pada masa kanak-kanak, dapat dilakukan sendiri. Dan untuk membuat bukan hanya objek yang akan menerangi ruangan dalam gelap, tetapi sebuah perangkat yang dapat dengan mudah dikendalikan untuk suasana hati apa pun. Kenapa tidak Saya memutuskan untuk menambahkan kemampuan untuk mengubah warna menggunakan tangan saya: semakin dekat tangan dibawa ke cahaya malam, semakin terang salah satu warna (RGB) menyala. Dan saya juga ingin mengontrol lampu malam menggunakan remote control.

Saya langsung mengakui bahwa saya memata-matai ide tersebut di cxem.net . Singkatnya, contoh ini menggunakan matriks RGB yang dikendalikan menggunakan register geser dan sensor jarak ultrasonik. Tetapi saya berpikir bahwa matriks bersinar secara eksklusif dalam satu arah, tetapi saya ingin lampu malam bersinar di kedua sisi.

Substantiasi elemen rangkaian


Arduino unoSaya mengalihkan perhatian saya ke mikrokontroler Arduino. UNO adalah opsi yang cukup cocok untuk ide saya, pertama karena ini adalah platform paling populer dan jumlah pin tidak terlalu besar, tidak seperti Mega, kedua, Anda dapat menghubungkan sumber daya eksternal ke dalamnya, dalam kasus saya adalah 12V, tidak seperti Nano ketiga ... well, saya pikir Anda bisa fokus pada dua poin ini. Platform ini sangat populer di seluruh dunia karena kenyamanan dan kesederhanaan bahasa pemrograman, serta arsitektur terbuka dan kode programnya.

Informasi lebih lanjut tentang forum ini dapat dengan mudah ditemukan di Internet, jadi saya tidak akan membebani artikel ini.

Jadi, persyaratan dasar untuk sistem. Wajib:
- sensor yang akan melacak jarak ke penghalang untuk mengontrol sistem;
- sensor untuk membaca sinyal dari remote control;
- LED, yang akan menyediakan fungsionalitas pencahayaan yang diperlukan;
- unit kontrol yang akan mengendalikan seluruh sistem.

Diagram sirkuit

Sensor jarak diperlukan sebagai sensor jarak untuk proyek, yang masing-masing akan sesuai dengan warna tertentu: merah, hijau, biru. Sensor jarak akan memonitor jarak tangan ke lampu malam dan semakin dekat tangan dibawa ke sensor tertentu, semakin banyak warna yang sesuai dengan range finder ini akan terbakar. Sebaliknya, semakin jauh tangan, semakin sedikit tegangan diterapkan pada warna yang sesuai dengan sensor.

Rangefinders paling populer saat ini adalah Sharp GP2Y0A21YK dan HC-SR04. Sharp GP2Y0A21YK adalah pengintai inframerah. Ini dilengkapi dengan pemancar inframerah dan penerima inframerah: yang pertama berfungsi sebagai sumber sinar, pantulan yang menangkap yang kedua. Pada saat yang sama, sinar inframerah sensor untuk mata manusia tidak terlihat dan tidak berbahaya pada intensitas ini.

Dibandingkan dengan sensor ultrasonik HC-SR04, sensor ini memiliki kelebihan dan kekurangan. Keuntungannya termasuk netralitas dan tidak berbahaya. Dan kerugiannya adalah jangkauan yang lebih pendek dan ketergantungan pada kebisingan eksternal, termasuk beberapa jenis pencahayaan.

HC-SR04Pencari jarak ultrasonik HC-SR04 digunakan sebagai sensor jarak untuk proyek.
Prinsip kerja HC-SR04 didasarkan pada fenomena ekolokasi yang terkenal. Saat menggunakannya, emitor menghasilkan sinyal akustik, yang, tercermin dari hambatan, kembali ke sensor dan direkam oleh penerima. Mengetahui kecepatan perambatan ultrasound di udara (sekitar 340 m / s) dan waktu tunda antara sinyal yang dipancarkan dan diterima, mudah untuk menghitung jarak ke penghalang akustik.

Input TRIG terhubung ke pin mikrokontroler. Output ini membutuhkan sinyal digital berdenyut dengan durasi 10 μs. Sinyal pada sensor TRIG input mengirimkan paket pulsa ultrasonik. Setelah menerima sinyal yang dipantulkan, sensor menghasilkan sinyal pulsa pada output ECHO, durasinya sebanding dengan jarak ke penghalang.

Sensor IRSensor IR. Tentu saja, sinyal yang diperlukan untuk kendali jarak jauh akan dibaca dan didekodekan dari sensor ini. TSOP18 berbeda hanya dalam frekuensi. Sensor VS1838B TSOP1838 dipilih untuk proyek ini.

Proyek ini didasarkan pada ide pencahayaan ruangan dengan warna apa pun, ini menunjukkan bahwa 3 warna primer akan dibutuhkan dari mana pencahayaan akan diperoleh: merah, hijau, biru. Oleh karena itu, model LED 5050RGB SMD dipilih, yang akan dengan sempurna mengatasi tugas.

Tergantung pada jumlah tegangan yang diberikan ke setiap LED, mereka akan mengubah intensitas pencahayaan ini. LED harus dihubungkan melalui resistor, jika tidak kita berisiko merusak tidak hanya itu, tetapi juga Arduino. Sebuah resistor diperlukan untuk membatasi arus pada LED ke nilai yang dapat diterima. Faktanya adalah resistansi internal LED sangat rendah dan, jika Anda tidak menggunakan resistor, arus akan melewati LED yang hanya membakar baik LED maupun pengontrolnya.

Strip LEDStrip dengan LED yang digunakan dalam proyek ini didukung oleh 12V.

Karena kenyataan bahwa tegangan pada LED dalam keadaan "mati" adalah 6V dan perlu untuk mengatur catu daya yang melebihi 5V, perlu untuk menambahkan transistor ke sirkuit dalam mode kunci. Pilihan saya jatuh pada BC547c.

Pertimbangkan secara singkat, bagi mereka yang telah lupa, prinsip pengoperasian transistor npn. Jika tegangan tidak diterapkan sama sekali, tetapi cukup mengambil dan menutup kesimpulan dari basis dan emitor, bahkan jika tidak pendek, tetapi melalui resistor beberapa ohm, ternyata tegangan basis-emitor adalah nol. Akibatnya, tidak ada arus basis. Transistor ditutup, arus kolektor diabaikan, hanya arus awal yang sama. Dalam hal ini, dikatakan bahwa transistor dalam keadaan terputus. Keadaan sebaliknya disebut saturasi: ketika transistor terbuka penuh, sehingga tidak ada tempat untuk membuka lebih lanjut. Dengan tingkat pembukaan yang demikian, resistansi dari bagian pengumpul-kolektor sangat kecil sehingga tidak mungkin untuk menghidupkan transistor tanpa beban dalam rangkaian kolektor, ia akan terbakar secara instan. Dalam hal ini, tegangan sisa pada kolektor hanya 0,3 ... 0,5V.

Kedua status ini - saturasi dan cutoff - digunakan ketika transistor dalam mode kunci seperti kontak relay normal. Poin utama dari mode ini adalah bahwa arus basis kecil mengontrol arus kolektor besar, yang beberapa puluh kali lebih besar dari arus basis. Arus kolektor besar diperoleh karena sumber energi eksternal, tetapi semua sama, kenaikan arus, seperti yang mereka katakan, jelas. Dalam kasus kami, sirkuit mikro, yang tegangan operasinya 5V, mencakup 3 strip dengan LED yang beroperasi dari 12V.

Kami menghitung mode operasi kaskade kunci. Diperlukan untuk menghitung nilai resistor di sirkuit dasar sehingga LED menyala dengan daya penuh. Suatu kondisi yang diperlukan dalam perhitungan adalah bahwa gain arus lebih besar dari atau sama dengan hasil bagi membagi arus kolektor maksimum yang mungkin dengan arus basis minimum yang mungkin:
Keuntungan
Oleh karena itu, strip dapat menjadi tegangan operasi 220 V, dan sirkuit dasar dapat dikontrol dari mikrokircuit 5 V. Jika transistor dirancang untuk bekerja dengan tegangan pada kolektor, maka LED akan menyala tanpa masalah.
Penurunan tegangan pada sambungan basis-emitor adalah 0,77V, asalkan arus basis 5mA dan arus kolektor adalah 0,1A.
Tegangan pada resistor dasar adalah:

Menurut Hukum Ohm:

Dari serangkaian resistansi standar, kami memilih resistor 8,2 kOhm. Perhitungannya sekarang selesai.

Saya ingin menarik perhatian Anda ke satu masalah yang saya temui. Saat menggunakan perpustakaan IRremote, Arduino terhempas saat menyesuaikan warna biru. Setelah pencarian yang panjang dan menyeluruh di Internet, ternyata perpustakaan ini menggunakan timer 2 default untuk model Arduino ini. Pengatur waktu digunakan untuk mengontrol output PWM.

Timer 0 (Waktu sistem, PWM 5 dan 6);
Timer 1 (PWM 9 dan 10);
Timer 2 (PWM 3 dan 11).

Awalnya, saya menggunakan PWM 11 untuk mengatur warna biru. Oleh karena itu, berhati-hatilah saat bekerja dengan PWM, pengatur waktu dan perpustakaan pihak ketiga yang dapat menggunakannya. Sungguh aneh bahwa tidak ada yang dikatakan tentang nuansa ini di halaman utama di github. Jika mau, Anda dapat menghilangkan tanda komentar pada baris dengan timer 1 dan komentar 2.

Elemen penghubung pada papan tempat memotong roti terlihat seperti ini:



Setelah pengujian di papan tempat memotong roti, fase "Penempatan elemen di papan" dan "Bekerja dengan besi solder" dimulai. Setelah ujian pertama dari papan yang sudah selesai, pikiran itu merayap ke dalam kepalaku: ada yang tidak beres. Dan kemudian fase akrab "Bekerja dengan penguji" dimulai. Namun, malfungsi (beberapa kontak tetangga secara tidak sengaja disolder) dengan cepat diperbaiki dan di sini dia adalah lampu nakal yang telah lama dinanti.



Selanjutnya, hanya itu yang terjadi. Untuk alasan ini, kayu lapis dengan lubang untuk sensor kami dipotong. Penutup belakang dibuat khusus dilepas sehingga Anda dapat menikmati pemandangan dari dalam dan, jika diinginkan, untuk menyelesaikan atau membuat kembali sesuatu. Ini juga memiliki 2 lubang untuk memprogram ulang papan dan daya.

Tubuh terpaku pada perekat dua komponen epoksi. Perlu dicatat keanehan lem ini, bagi mereka yang belum pernah bertemu dengannya. Pendamping ini dikirim dalam dua wadah terpisah, ketika isinya tercampur, terjadi reaksi kimia instan. Setelah pencampuran, Anda harus bertindak cepat, dalam 3-4 menit. Untuk penggunaan lebih lanjut, Anda perlu mencampur porsi baru. Jadi jika Anda mencoba mengulanginya, saran saya kepada Anda adalah mencampur dalam porsi kecil dan bertindak sangat cepat, tidak akan ada banyak waktu untuk berpikir. Karena itu, ada baiknya mempertimbangkan terlebih dahulu bagaimana dan di mana harus merekatkan case. Dan dalam satu duduk ini tidak akan berhasil.

Untuk memperbaiki strip dengan LED, tabung dimasukkan ke penutup atas di mana semua kabel berjalan dengan sempurna.



Ketika pertanyaan muncul dengan kap lampu, saya ingat bagaimana di masa kanak-kanak saya membuat kerajinan dari benang sederhana, lem, dan balon, yang dijadikan dasar. Prinsip untuk kap lampu adalah sama, tetapi membungkus polyhedron lebih sulit daripada bola. Karena tekanan yang diberikan oleh benang pada struktur, itu mulai meruncing ke atas dan benang mulai jatuh. Darurat, dengan tangan di lem, diputuskan untuk memperkuat struktur dari atas. Dan kemudian CD datang untuk menyelamatkan. Akibatnya, kami mendapat lampu malam seperti itu:



Apa yang ingin Anda katakan sebagai hasilnya


Apa yang harus saya ubah dalam proyek? Untuk memberi sinyal sensor jarak TRIG, satu output Arduino dapat digunakan alih-alih tiga. Juga, saya akan menyediakan lubang untuk sensor IR (yang saya lupa), yang, sayangnya, tersembunyi dalam kasus yang darinya, tentu saja, tidak dapat membaca sinyal dari remote control. Namun, siapa bilang Anda tidak bisa menyolder dan mengebor apa pun?



Saya ingin mencatat bahwa itu adalah semester yang menarik, dan peluang bagus untuk mencoba melakukan sesuatu yang tidak tertulis, sehingga saya dapat memberi tanda centang lain di sebelah item "mimpi masa kecil". Dan jika Anda merasa mencoba sesuatu yang baru itu sulit, dan Anda tidak tahu apa yang harus dilakukan terlebih dahulu, jangan khawatir. Pikiran itu terbang di benak banyak orang: dari mana harus memulai dan bagaimana ini bisa dilakukan? Dalam hidup, ada banyak tugas yang bisa membuat Anda bingung, tetapi jika Anda hanya mencoba, Anda akan melihat bahwa dengan binar di mata Anda, Anda dapat mengubah gunung, bahkan jika Anda harus mencoba sedikit untuk itu.

Tautan ke kode sumber .

Penulis artikel: Anastasia Kovsh

Source: https://habr.com/ru/post/id388573/


All Articles