Daftar Isi:

HALO: Lampu Arduino Praktis Rev1.0 W/NeoPixels: 9 Langkah (dengan Gambar)
HALO: Lampu Arduino Praktis Rev1.0 W/NeoPixels: 9 Langkah (dengan Gambar)

Video: HALO: Lampu Arduino Praktis Rev1.0 W/NeoPixels: 9 Langkah (dengan Gambar)

Video: HALO: Lampu Arduino Praktis Rev1.0 W/NeoPixels: 9 Langkah (dengan Gambar)
Video: Webinar Outseal #4_Komunikasi Outseal PLC dengan CODESYS dan NODE-RED_01102021 2024, September
Anonim
Image
Image
HALO: Lampu Arduino Praktis Rev1.0 W/NeoPixels
HALO: Lampu Arduino Praktis Rev1.0 W/NeoPixels
HALO: Lampu Arduino Praktis Rev1.0 W/NeoPixels
HALO: Lampu Arduino Praktis Rev1.0 W/NeoPixels

Dalam instruksi ini, saya akan menunjukkan kepada Anda cara membuat HALO, atau Handy Arduino Lamp Rev1.0.

HALO adalah lampu sederhana, ditenagai oleh Arduino Nano. Ini memiliki total tapak sekitar 2 "kali 3", dan dasar kayu berbobot untuk stabilitas ekstrim. Leher fleksibel dan 12 NeoPixels super terang memungkinkannya menerangi setiap detail dengan mudah di permukaan apa pun. HALO memiliki dua tombol tekan untuk beralih melalui mode cahaya yang berbeda, di mana ada 15 yang telah diprogram sebelumnya. Karena penggunaan Arduino Nano sebagai prosesor, Anda dapat memprogram ulang dengan fitur tambahan. Potensiometer tunggal digunakan untuk mengatur kecerahan dan/atau kecepatan di mana mode ditampilkan. Konstruksi logam yang sederhana menjadikan HALO lampu yang sangat tahan lama, cocok untuk digunakan di bengkel mana pun. Kemudahan penggunaan diperparah oleh pengatur daya onboard Nano, sehingga HALO dapat ditenagai melalui USB atau jack barel 5mm standar di bagian belakang.

Saya berharap dapat melihat banyak orang menggunakan lampu ini dalam waktu dekat, karena ada begitu banyak kemungkinan yang terbuka dengan desain ini. Silakan tinggalkan suara di Kontes Mikrokontroler jika Anda suka ini atau merasa berguna dalam beberapa hal, saya akan sangat menghargainya.

Sebelum kita masuk ke Instructable ini, saya ingin mengucapkan terima kasih singkat kepada semua pengikut saya dan siapa saja yang pernah berkomentar, memfavoritkan, atau memilih salah satu proyek saya. Terima kasih kepada kalian, instruksi Cardboard saya menjadi sukses besar, dan saya sekarang, pada saat mengetik ini mencapai hampir 100 pengikut, sebuah tonggak besar menurut saya. Saya sangat menghargai semua dukungan yang saya dapatkan dari kalian ketika saya memasang Ible saya, dan ketika sampai pada itu, saya tidak akan berada di tempat saya hari ini tanpa Anda. Dengan itu, terima kasih, semuanya!

CATATAN: Sepanjang Instructable ini adalah frasa yang dicetak tebal. Ini adalah bagian penting dari setiap langkah, dan tidak boleh diabaikan. Ini bukan saya berteriak atau sengaja bersikap kasar, saya hanya mencoba teknik penulisan baru untuk lebih menekankan apa yang perlu dilakukan. Jika Anda tidak menyukainya dan lebih suka bagaimana saya sebelumnya cenderung menulis langkah saya, beri tahu saya di komentar, dan saya akan kembali ke gaya lama saya.

Langkah 1: Mengumpulkan Bahan

Mengumpulkan Bahan
Mengumpulkan Bahan
Mengumpulkan Bahan
Mengumpulkan Bahan
Mengumpulkan Bahan
Mengumpulkan Bahan
Mengumpulkan Bahan
Mengumpulkan Bahan

Berapa kali saya harus mengatakannya? Selalu miliki apa yang Anda butuhkan, dan Anda dijamin dapat membangun sesuatu hingga selesai.

Catatan: Beberapa di antaranya adalah tautan afiliasi (ditandai "al"), saya akan mendapatkan sedikit imbalan jika Anda membelinya, tanpa biaya tambahan kepada Anda. Terima kasih jika Anda membeli melalui tautan

Bagian:

1x Arduino Nano Nano - semua

Potensiometer Rotary 1x 10k 5 paket Potensiometer 10k - al

1x 5mm barrel jack (milik saya didaur ulang dari Arduino Uno goreng) Female Barrel Jack (5 pack) - al

Tombol tekan sesaat 2x 2-pin 10 paket Sakelar Tombol Tekan SPST - al

12x NeoPixels dari untaian LED/meter 60 (setara apa pun, misalnya WS2812B, akan berfungsi) Adafruit NeoPixels

Selembar Aluminium 0,5 mm

Leher fleksibel dari pemantik flex lama

Cincin penutup atas dari lampu kabinet LED "Stick and Click" Lampu Kabinet LED - al

Lembaran kecil kayu lapis 1/4 inci

Dimensi berat logam datar yang berat (kira-kira) 1,5" kali 2,5" kali 0,25"

Kabel listrik inti terdampar

Peralatan:

Pistol Lem Panas dan Lem

Besi Solder dan Solder

Bor listrik tanpa kabel dan berbagai macam mata bor kecil

Pisau X-acto (atau pisau utilitas)

penari telanjang kawat

Tang

Pemotong kawat/snips

Gunting Tugas Berat

Jika Anda tidak memiliki berat logam datar, Anda juga perlu:

1 gulungan solder murah (bukan barang yang akan Anda gunakan untuk menyolder) Solder Bebas Timah Murah

Lilin Alkohol (atau pembakar Bunsen)

Piring baja keras kecil yang Anda tidak keberatan merusaknya (atau wadah kecil jika Anda memilikinya)

Sebuah tripod untuk piringan/wadah tersebut (saya membuat saya dari kawat baja 12 gauge)

Piring tanaman tanah liat (salah satu benda yang diletakkan di bawah pot)

Beberapa aluminium foil

CATATAN: Jika Anda memiliki kit las atau printer 3D, Anda mungkin tidak memerlukan semua alat yang tercantum di sini.

Langkah 2: Membuat Berat

Membuat Berat
Membuat Berat
Membuat Berat
Membuat Berat
Membuat Berat
Membuat Berat

Ini adalah langkah yang cukup sulit, dan Anda harus sangat berhati-hati melakukannya. Jika Anda memiliki berat logam berat atau magnet neodymium datar sekitar 2,75" kali 1,75" kali 0,25", saya akan merekomendasikan menggunakannya sebagai gantinya (dan magnet bahkan memungkinkan Anda untuk memposisikan lampu menyamping pada permukaan logam!).

Penafian: Saya tidak bertanggung jawab atas cedera apa pun di pihak Anda, jadi harap gunakan akal sehat

Juga, lakukan ini di luar di atas permukaan beton yang Anda tidak akan keberatan jika sedikit hangus (ini hanya tindakan pencegahan). Saya tidak memiliki gambar untuk proses ini karena kamera akan menjadi gangguan ekstra yang tidak saya butuhkan atau inginkan.

Pertama, buat cetakan kecil dari aluminium foil atau tanah liat basah, sekitar 2 3/4 inci kali 1 3/4 inci kali 1/4 inci dalam dimensi interior. Ini bisa menjadi bentuk ovoid seperti milik saya, atau persegi panjang. Gunakan beberapa lapis kertas timah atau lapisan tanah liat yang tebal.

Tempatkan cetakan di piring tanaman keramik, dan isi cetakan dan baki dengan air dingin.

Ambil lilin alkohol/pembakar bunsen Anda yang tidak menyala, dan letakkan piring/wadah baja di atas tripod sehingga api akan memanaskan bagian tengah piring (saat dinyalakan). Sebelum menyalakan kompor, pastikan Anda memiliki setidaknya 1 tang atau penjepit pengerjaan logam, jika tidak 2.

Sebaiknya kenakan sarung tangan kulit, lengan panjang, celana panjang, sepatu tertutup, dan pelindung mata saat melakukan beberapa langkah berikutnya

Gulung dan putuskan banyak solder murah dari gulungan dan letakkan di piring baja, lalu nyalakan kompor. Tunggu sampai koil meleleh sepenuhnya, lalu mulailah memasukkan sisa solder ke piringan dengan kecepatan sedang. Jika solder memiliki rosin di dalamnya, ini dapat secara spontan terbakar dalam panas, menghasilkan nyala kuning pucat dan asap hitam. Jangan khawatir, ini telah terjadi pada saya beberapa kali dan sangat normal.

Lanjutkan memasukkan solder ke piring sampai yang terakhir meleleh.

Biarkan api dari pembakaran damar mati sepenuhnya, dan gunakan tang/penjepit untuk mengambil piring dan dengan lembut putar logam yang meleleh di dalamnya sambil dengan hati-hati menyimpannya di dalam nyala api.

Setelah Anda yakin semua solder benar-benar cair dan pada suhu panas yang baik, keluarkan dengan cepat dan hati-hati dari api dan tuangkan ke dalam cetakan. Akan ada suara mendesis dan uap yang keras karena sebagian air diuapkan dan sisanya dipaksa keluar dari cetakan untuk diganti dengan solder cair.

Biarkan solder dingin, matikan kompor/tiup lilin Anda dan letakkan piring baja di tempat yang aman untuk didinginkan. Anda mungkin ingin menuangkan air dingin ke atas solder pendingin untuk mempercepat pendinginan dan mengeraskannya lebih lanjut. (Air dingin membuat bagian luar lebih cepat dingin daripada bagian dalam, menciptakan tegangan internal yang membuat logam lebih keras dan kaku, mirip dengan Prince Rupert's Drop.) Anda juga dapat mengalirkan air ke piring logam Anda, tetapi ini akan membuatnya menjadi rapuh, apalagi jika dilakukan berkali-kali.

Setelah solder benar-benar dingin (sekitar 20 menit untuk amannya), keluarkan dari cetakan foil.

Milik saya berakhir lebih tebal di satu sisi daripada yang lain, jadi saya menggunakan palu untuk meratakannya dan meratakan tepinya (menghasilkan bentuk yang Anda lihat di gambar). Saya kemudian mengampelasnya dengan ringan di bawah air mengalir untuk memolesnya, dan menyisihkannya untuk nanti.

Langkah 3: Membangun Perumahan Elektronik, Langkah 1

Membangun Perumahan Elektronik, Langkah 1
Membangun Perumahan Elektronik, Langkah 1
Membangun Perumahan Elektronik, Langkah 1
Membangun Perumahan Elektronik, Langkah 1
Membangun Perumahan Elektronik, Langkah 1
Membangun Perumahan Elektronik, Langkah 1
Membangun Perumahan Elektronik, Langkah 1
Membangun Perumahan Elektronik, Langkah 1

Ini adalah bagian untuk cangkang yang akan menampung Nano, memasang antarmuka, dan pada dasarnya yang menyatukan Lampu HALO. Saya membuat milik saya dengan Aluminium 0.5mm dan Lem Panas, tetapi jika Anda memiliki printer 3D (sesuatu yang saya coba dapatkan untuk toko saya untuk sementara waktu) saya membuat versi. STL di Tinkercad yang saya lampirkan di sini untuk Anda unduh. Karena saya sendiri tidak memiliki printer, saya tidak dapat menguji model cetak untuk melihat apakah semuanya tercetak dengan benar, tetapi saya pikir itu akan baik-baik saja jika Anda menambahkan struktur pendukung yang tepat di alat pengiris Anda. Anda juga dapat menyalin dan mengedit file sumber di sini jika Anda membutuhkan atau menginginkan desain atau estetika yang sedikit berbeda.

Dimensi sebenarnya berasal dari berat logam yang saya keluarkan sendiri dari solder, bukan dari ukuran elektronik, tetapi ternyata cukup baik dan dimensinya cukup optimal.

Gambar-gambar tersebut menggambarkan urutan operasi yang sedikit berbeda dengan apa yang akan saya tulis di sini, ini karena saya telah merancang metode yang ditingkatkan berdasarkan hasil metode asli saya.

Jika Anda merakit dari lembaran logam seperti saya, inilah yang perlu Anda lakukan:

Langkah 1: Pelat Wajah

Potong dua bentuk setengah lingkaran identik dengan tinggi sekitar 1,5" dan lebar 3". (Saya menggunakan tangan saya sendiri, jadi mereka terlihat seperti bagian depan kotak juke).

Di salah satu dari dua pelat, bor tiga lubang untuk tombol dan potensiometer. Milik saya masing-masing berdiameter 1/4 inci. Ini bisa dalam tata letak apa pun, tetapi saya lebih suka potensiometer saya sedikit dinaikkan di tengah, dengan tombol di kedua sisi membentuk segitiga sama kaki. Saat mengebor, saya selalu membuat lubang pilot kecil sebelum mencapai ukuran yang diinginkan, ini membantu memusatkan lubang dan membuatnya sedikit lebih bersih.

Langkah 2: Penutup Melengkung

Tekuk sepotong aluminium agar pas di sekitar kurva salah satu pelat muka, dan tandai panjang tepi yang tepat.

Potong strip dengan panjang ini dan lebar sekitar 2 inci, dan bentuk menjadi busur yang sesuai dengan bentuk lekukan pelat muka di kedua sisi.

Temukan titik tengah di bagian atas kurva, dan bor lubang agar sesuai dengan leher fleksibel pemantik. Saya mengimbangi lubang ke arah belakang di tambang saya karena leher lampu saya sebagian besar akan dimiringkan ke depan saat digunakan, jadi saya ingin menambahkan sedikit penyeimbang untuk itu. Leher fleksibel saya hanya berdiameter sedikit di atas 1/4 inci, jadi saya menggunakan bit 1/4 inci (bit twist terbesar yang saya miliki yaitu di bawah 3/4 inci) dan dengan hati-hati memiringkan dan memutar lehernya. bor untuk 'membor' lubang sampai leher pas.

Sekarang kita memiliki bagian-bagian untuk cangkangnya, langkah selanjutnya adalah menambahkan elektronik dan menyatukannya!

Langkah 4: Membangun Perumahan Elektronik, Langkah 2

Membangun Perumahan Elektronik, Langkah 2
Membangun Perumahan Elektronik, Langkah 2
Membangun Perumahan Elektronik, Langkah 2
Membangun Perumahan Elektronik, Langkah 2
Membangun Perumahan Elektronik, Langkah 2
Membangun Perumahan Elektronik, Langkah 2
Membangun Perumahan Elektronik, Langkah 2
Membangun Perumahan Elektronik, Langkah 2

Sekarang kita menambahkan tombol dan potensiometer, dan menggabungkan semuanya.

Langkah 1: Tombol dan Baut

Lepaskan mur hex dari tombol dan potensiometer Anda. Harus ada perangkat cincin pencengkeram di bawah mur, biarkan di tempatnya.

Masukkan masing-masing komponen melalui lubangnya masing-masing, lalu pasang kembali mur untuk mengencangkan masing-masing pada tempatnya. Kencangkan mur ke titik di mana Anda yakin setiap komponen benar-benar aman.

Langkah 2. Leher Fleksibel

Masukkan leher fleksibel melalui lubang di bagian atas potongan melengkung. Lem panas atau las (jika Anda memiliki peralatan) leher dengan aman di tempatnya.

Jika menggunakan lem panas seperti saya, ada baiknya merekatkan dengan banyak lem di kedua sisi yang tersebar di area yang luas untuk mencegah lem terlepas nantinya.

Langkah 3: Perakitan Shell (Tidak berlaku untuk cangkang cetak 3D)

Dengan menggunakan batang las atau lem panas, kencangkan pelat muka depan dan belakang ke tempatnya masing-masing pada penutup lengkung. Butuh beberapa kali percobaan agar lem saya menempel, dan seperti sebelumnya, triknya adalah menggunakan banyak lem di kedua sisi sambungan, seperti lehernya. Semakin besar area yang ditutupi oleh lem, semakin baik perekatnya.

Sekarang setelah kita memiliki shell, kita dapat melanjutkan untuk menambahkan semua bit sirkuit.

Langkah 5: Menambahkan Elektronik

Menambahkan Elektronik
Menambahkan Elektronik
Menambahkan Elektronik
Menambahkan Elektronik
Menambahkan Elektronik
Menambahkan Elektronik

Dan inilah bagian yang menyenangkan: Menyolder! Dalam beberapa minggu terakhir saya sejujurnya agak bosan menyolder, karena saya telah melakukannya akhir-akhir ini untuk mencoba dan menyelesaikan proyek lain yang harus saya lakukan segera (perhatikan versi baru yang radikal dari tampilan robot saya platform), mengakibatkan saya merusak satu besi dan mendapatkan yang lain … Bagaimanapun, tidak banyak yang bisa disolder di sini, jadi ini seharusnya cukup mudah.

Catatan: Jika Nano Anda sudah memiliki pin header, saya akan merekomendasikan pematrian mereka untuk proyek ini, mereka hanya akan menghalangi.

Ada diagram pada gambar di atas, Anda dapat mengikutinya jika Anda mau.

Langkah 1: Antarmuka

Dari masing-masing sakelar, solder kabel dari satu pin ke pin samping potensiometer. Solder kabel dari pin sisi yang sama ini ke pin Ground pada Nano.

Solder kawat dari pin tengah potensiometer ke A0 pada Nano.

Solder kabel dari pin yang tidak terhubung dari salah satu sakelar ke A1 pada Nano.

Solder kabel dari pin yang tidak terhubung di sakelar lain ke A2 di Nano.

Catatan: Tidak masalah sakelar mana yang mana, Anda dapat mengubahnya dengan sangat mudah dalam kode, selain fakta bahwa sakelar yang satu melakukan kebalikan dari sakelar lainnya.

Potong panjang kawat 4 inci lebih panjang dari leher fleksibel, dan lepaskan kedua sisinya. Menggunakan Sharpie, tandai satu sisi dengan satu garis.

Solder kabel ke pin sisi potensiometer terakhir yang tidak terhubung, putar ujung kabel yang tidak terhubung ini bersama dengan ujung kabel yang tidak bertanda dari sublangkah terakhir.

Solder ini menyambung ujung ke 5V pada Nano.

Langkah 2: Tampilan dan Kabel Daya

Potong 2 panjang kawat 4 inci lebih panjang dari leher fleksibel, dan lepaskan kedua ujungnya.

Dengan menggunakan Sharpie, tandai ujung setiap kawat, satu kawat dengan 2 garis, dan satu lagi dengan 3.

Solder kabel dengan 2 jalur ke digital pin 9 pada Nano.

Pada jack barel 5mm Anda, solder kawat dari pin tengah (positif) ke Vin pada Nano.

Solder kabel lain ke pin samping (ground/negatif) dari barrel jack.

Putar kabel panjang dengan 3 garis bersama-sama dengan kawat dari pin samping jack barel.

Solder kabel ini ke pin GND yang terbuka di Nano.

Isolasi sambungan dengan pita listrik atau lem panas jika diperlukan.

Langkah 3: Memotong Lubang (hanya pada versi logam, jika Anda mencetak sampul 3D, Anda akan baik-baik saja)

Menggunakan mata bor dan X-acto atau Pisau Utilitas, buat lubang dengan hati-hati di sisi penutup untuk port USB Nano.

Buat lubang lain seukuran muka laras jack di bagian belakang penutup, sebaiknya lebih dekat ke sisi yang berlawanan dengan lubang untuk port USB.

Langkah 4: Memasang Komponen

Umpankan tiga kabel panjang melalui leher fleksibel dan keluar dari sisi lainnya.

Dengan menggunakan banyak lem panas, pasang jack barel di tempatnya dengan pin menghadap ke atas penutup.

Sekali lagi menggunakan banyak lem panas, pasang Nano di tempatnya, dengan tombol reset menghadap ke bawah dan port USB di slotnya. Saya membuat "jembatan lem panas" antara jack barel dan Nano, yang membuat masing-masing menahan yang lain dengan kuat di tempatnya.

Sekarang kita dapat melanjutkan untuk membuat basis tertimbang!

Langkah 6: Basis Tertimbang

Basis Tertimbang
Basis Tertimbang
Basis Tertimbang
Basis Tertimbang
Basis Tertimbang
Basis Tertimbang

Saya yakin dengan keterampilan menyolder saya dan telah merencanakan ini dengan baik, jadi saya melanjutkan dan menambahkan basis sebelum menguji kode. Jika Anda kurang percaya diri dengan keterampilan Anda, saya sarankan melewatkan langkah ini dan kembali ke sana di akhir ketika Anda tahu semuanya bekerja.

Jika Anda membuat versi cetak 3D, Anda dapat melewati langkah pertama dan melanjutkan ke langkah kedua.

Langkah 1: Kayu

Dari selembar kayu lapis 1/4 inci, potong alas sekitar 3 inci kali 2 inci.

Amplas tepinya untuk menghaluskannya dan menghilangkan bur.

Langkah 2: Berat

Pertama, pastikan berat pilihan Anda, apakah itu magnet, logam, atau solder khusus, pas dengan tepi penutup logam yang kami buat. Milik saya agak besar di satu arah, jadi saya mencukur sedikit dari samping dengan pisau X-acto. Jika milik Anda bukan tipe di mana Anda dapat melakukan ini, Anda mungkin harus bermain-main dengan desain dasar yang berbeda.

Lem panaskan berat badan Anda di tengah potongan kayu lapis, atau dalam kasus desain cetak 3D, di area "baki" tengah yang saya rancang untuk tujuan ini.

Langkah 3: Basis

Pasang penutup logam di atas beban dan pusatkan di dasar kayu. (Dalam hal desain cetak 3D, paskan ke dalam alur yang sudah dibuat sebelumnya.)

Pastikan bobotnya tidak mengganggu elektronik apa pun

Gunakan lem panas untuk mengamankan alas pada tempatnya. Gunakan secukupnya untuk memastikan koneksi yang kuat.

Sekarang setelah kita membuat kotak kontrol kita sepenuhnya, mari beralih ke lampu.

Langkah 7: Cincin Halo NeoPixel

Cincin Halo NeoPixel
Cincin Halo NeoPixel
Cincin Halo NeoPixel
Cincin Halo NeoPixel
Cincin Halo NeoPixel
Cincin Halo NeoPixel
Cincin Halo NeoPixel
Cincin Halo NeoPixel

Inspirasi untuk nama lampu ini, bagian ini adalah cincin halo NeoPixel yang akan kita gunakan sebagai sumber penerangan kita. Bagian khusus ini dapat dimodifikasi atau diganti dengan NeoPixel atau cincin LED yang dapat dialamatkan secara individual, jika diinginkan.

Langkah 1: Menyolder

Potong strip NeoPixels 12 LED panjangnya.

Solder pin GND ke kabel dari leher flex yang memiliki 3 garis.

Solder pin Din ke kawat yang memiliki 2 garis.

Solder pin 5V ke kabel yang memiliki 1 jalur.

Langkah 2: Uji Lampu

Download dan install library Adafruit_NeoPixel, dan buka kode "strandtest".

Ubah PIN konstan menjadi 9.

Ubah garis di mana strip ditentukan sehingga dikonfigurasi untuk 12 LED.

Unggah kode ke Nano, dan pastikan semua LED Anda berfungsi dengan baik.

Ganti LED yang rusak dengan yang berfungsi, sampai seluruh strip berfungsi.

Langkah 3: Cincin

Ambil cincin atas dari lampu "Stick and Click" dan potong semua dudukan sekrup pada pelek interior.

Potong takik kecil di tepi untuk kabel dari strip.

Lepaskan penutup untuk selotip di bagian belakang NeoPixels (jika ada) dan tempelkan di dalam ring, dengan salah satu ujung strip tepat di takik yang kami buat.

Gunakan lem panas untuk mengencangkan tepi strip dengan kuat

Setelah lem benar-benar dingin, uji piksel lagi. Ini untuk memastikan tidak ada yang rewel tentang panas dan keriting (beberapa milik saya).

Langkah 4: Pasang

Potong dua persegi panjang kecil dari kayu berukuran 1/4 inci, kira-kira setinggi cincin dan lebarnya 1 2/3 kali.

Rekatkan ini sejajar satu sama lain di kedua sisi kabel dari cincin, mengisi celah dan menutupi kabel antara seluruhnya dengan lem.

Dorong dengan hati-hati setiap kelebihan panjang kawat kembali ke leher fleksibel, lalu rekatkan potongan kayu ke ujung leher, gunakan banyak lem dan dengan hati-hati mengisi celah (tanpa mengisi leher dengan lem).

Langkah 6: Menyelesaikan

Anda dapat mengecat cincin dan memasang warna apa pun jika Anda suka, saya lebih suka lapisan perak jadi saya hanya menggunakan Sharpie untuk menutupi logo yang (mengganggu) tercetak di atas cincin. Hal yang sama berlaku untuk sisa lampu.

Sekarang kita dapat melanjutkan untuk menyelesaikan dengan kode terakhir!

Langkah 8: Kode dan Tes

Kode dan Tes
Kode dan Tes
Kode dan Tes
Kode dan Tes

Jadi sekarang yang perlu kita lakukan adalah memprogram lampu dan mengujinya. Terlampir adalah versi kode saat ini (rev1.0), saya telah menguji kode ini cukup ekstensif dan bekerja dengan sangat baik. Saya sedang mengerjakan rev2.0 di mana tombol dikonfigurasi sebagai interupsi eksternal sehingga mode dapat lebih mudah dialihkan, tetapi versi ini bermasalah dan belum siap untuk dirilis. Dengan versi saat ini, Anda harus menahan tombol hingga menjalankan loop Debounce dan mengenali perubahan status, yang dapat mengganggu pada loop "Dinamis" yang lebih panjang. Di bawah ini adalah kode dengan beberapa penjelasan tertulis (ada penjelasan yang sama di versi yang dapat diunduh).

#sertakan #ifdef _AVR_ #sertakan #endif

#tentukan PIN 9

#define POT A0 #define BUTTON1 A1 #define BUTTON2 A2

// Parameter 1 = jumlah piksel dalam strip

// Parameter 2 = Nomor pin Arduino (sebagian besar valid) // Parameter 3 = flag tipe piksel, tambahkan sesuai kebutuhan: // NEO_KHZ800 800 KHz bitstream (sebagian besar produk NeoPixel dengan LED WS2812) // NEO_KHZ400 400 KHz (klasik ' v1' (bukan v2) Piksel FLORA, driver WS2811) // Piksel NEO_GRB disambungkan untuk bitstream GRB (sebagian besar produk NeoPixel) // Piksel NEO_RGB disambungkan untuk bitstream RGB (piksel FLORA v1, bukan v2) // Piksel NEO_RGBW disambungkan untuk Bitstream RGBW (produk NeoPixel RGBW) Adafruit_NeoPixel halo = Adafruit_NeoPixel(12, PIN, NEO_GRB + NEO_KHZ800);

// Dan sekarang, pesan keselamatan dari teman-teman kita di Adafruit:

// PENTING: Untuk mengurangi risiko kejenuhan NeoPixel, tambahkan kapasitor 1000 uF secara melintang

// kabel daya piksel, tambahkan resistor 300 - 500 Ohm pada input data piksel pertama // dan minimalkan jarak antara Arduino dan piksel pertama. Hindari menghubungkan // pada sirkuit langsung…jika harus, sambungkan GND terlebih dahulu.

// Variabel

int buttonState1; int buttonState2; // pembacaan saat ini dari pin input int lastButtonState1 = LOW; // pembacaan sebelumnya dari pin input int lastButtonState2 = LOW; modus int; //mode lampu kita, bisa menjadi salah satu dari 16 pengaturan (0 sampai 15) int brightVal = 0; // kecerahan/ kecepatan, seperti yang diatur oleh potensiometer

// variabel berikut panjang karena waktu, diukur dalam milidetik, // akan dengan cepat menjadi angka yang lebih besar daripada yang dapat disimpan dalam int. long lastDebounceTime = 0; // terakhir kali pin output di-toggle long debounceDelay = 50; // waktu debounce; meningkat jika output berkedip

batalkan pantulan (){

// membaca status switch ke variabel lokal: int reading1 = digitalRead(BUTTON1); int membaca2 = digitalBaca(BUTTON2); // Jika salah satu tombol berubah, karena suara atau penekanan: if (reading1 != lastButtonState1 || reading2 != lastButtonState2) { // reset timer debouncing lastDebounceTime = milis(); } if ((millis() - lastDebounceTime) > debounceDelay) { // jika status tombol sudah pasti berubah karena menekan/melepas: if (reading1 != buttonState1) { buttonState1 = reading1; //set sebagai bacaan jika diubah if (buttonState1 == LOW) { //ini diset sebagai active low switch mode ++; if (mode == 16){ mode = 0; } } } if (reading2 != buttonState2){ buttonState2 = reading2; if (buttonState2 == RENDAH){ mode = mode - 1; if (mode == -1){ mode = 15; } } } } // menyimpan bacaan untuk waktu berikutnya melalui loop lastButtonState1 = reading1; lastButtonState2 = membaca2; }

void getBright(){ //kode kita untuk membaca potensiometer, menghasilkan nilai antara 0 dan 255. Digunakan untuk mengatur kecerahan di beberapa mode dan kecepatan di mode lainnya.

int potVal = analogRead(POT); brightVal = peta(potVal, 0, 1023, 0, 255); }

// Berikut adalah mode warna kami. Beberapa di antaranya berasal dari contoh strandtest, yang lain asli.

// Isi titik-titik satu demi satu dengan warna (colorwipe, berasal dari strandtest)

void colorWipe(uint32_t c, uint8_t tunggu) { for(uint16_t i=0; i

//fungsi pelangi (juga diturunkan dari strandtest)

void pelangi(uint8_t tunggu) {

uint16_t i, j;

untuk(j=0; j<256; j++) { untuk(i=0; i

// Sedikit berbeda, ini membuat pelangi merata di seluruh

void rainbowCycle(uint8_t tunggu) { uint16_t i, j;

for(j=0; j<256*5; j++) { // 5 siklus semua warna pada roda for(i=0; i< halo.numPixels(); i++) { halo.setPixelColor(i, Wheel(((i * 256 / halo.numPixels()) + j) & 255); } halo.tampilkan(); tunda (tunggu); } }

// Masukkan nilai 0 hingga 255 untuk mendapatkan nilai warna.

// Warna adalah transisi r - g - b - kembali ke r. uint32_t Wheel(byte WheelPos) { WheelPos = 255 - WheelPos; if(WheelPos < 85) { return halo. Color(255 - WheelPos * 3, 0, WheelPos * 3); } if(WheelPos < 170) { WheelPos -= 85; kembali halo. Color(0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; return halo. Color(WheelPos * 3, 255 - WheelPos * 3, 0); }

batalkan pengaturan() {

// Ini untuk Trinket 5V 16MHz, Anda dapat menghapus tiga baris ini jika Anda tidak menggunakan Trinket #jika ditentukan (_AVR_ATtiny85_) if (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif // Akhir kode khusus perhiasan pinMode(POT, INPUT); pinMode(BUTTON1, INPUT_PULLUP); pinMode(BUTTON2, INPUT_PULLUP); pinMode(PIN, OUTPUT); Serial.begin(9600); //debugging halo.begin(); halo.tampilkan(); // Inisialisasi semua piksel ke 'off' }

lingkaran kosong() {

memantul();

//Serial.println(mode); //debug lebih lanjut //Serial.println(lastButtonState1); //Serial.println(lastButtonState2);

jika (modus == 0){

getBright(); for (int i = 0; i < halo.numPixels(); i++){ halo.setPixelColor(i, halo. Color(brightVal, brightVal, brightVal)); //set semua piksel menjadi putih } halo.show(); }; if (mode == 1){ getBright(); for (int i = 0; i < halo.numPixels(); i++){ halo.setPixelColor(i, halo. Color(brightVal, 0, 0)); // atur semua piksel menjadi merah } halo.show(); }; if (mode == 2){ getBright(); for (int i = 0; i < halo.numPixels(); i++){ halo.setPixelColor(i, halo. Color(0, brightVal, 0)); // atur semua piksel menjadi hijau } halo.show(); }; if (mode == 3){ getBright(); for (int i = 0; i < halo.numPixels(); i++){ halo.setPixelColor(i, halo. Color(0, 0, brightVal)); // set semua piksel menjadi biru } halo.show(); }; if (mode == 4){ getBright(); for (int i = 0; i < halo.numPixels(); i++){ halo.setPixelColor(i, halo. Color(0, brightVal, brightVal)); // setel semua piksel ke cyan } halo.show(); }; if (mode == 5){ getBright(); for (int i = 0; i < halo.numPixels(); i++){ halo.setPixelColor(i, halo. Color(brightVal, 0, brightVal)); // atur semua piksel menjadi ungu/magenta } halo.show(); }; if (mode == 6){ getBright(); for (int i = 0; i < halo.numPixels(); i++){ halo.setPixelColor(i, halo. Color(brightVal, brightVal, 0)); // atur semua piksel menjadi oranye/kuning } halo.show(); }; if (mode == 7){ //sekarang mode dinamis getBright(); colorWipe(halo. Color(brightVal, 0, 0), 50); // Merah }; if (mode == 8){ getBright(); colorWipe(halo. Color(0, brightVal, 0), 50); // Hijau }; if (mode == 9){ getBright(); colorWipe(halo. Color(0, 0, brightVal), 50); // Biru }; if (mode == 10){ getBright(); colorWipe(halo. Color(brightVal, brightVal, brightVal), 50); // putih }; if (mode == 11){ getBright(); colorWipe(halo. Color(brightVal, brightVal, 0), 50); //oranye/kuning }; if (mode == 12){ getBright(); colorWipe(halo. Color(0, brightVal, brightVal), 50); // sian }; if (mode == 13){ getBright(); colorWipe(halo. Color(brightVal, 0, brightVal), 50); // ungu/magenta }; if (mode == 14){ // dua yang terakhir adalah kontrol kecepatan, karena kecerahannya dinamis getBright(); pelangi(brightVal); }; if (mode == 15){ getBright(); rainbowCycle(brightVal); }; penundaan (10); // biarkan prosesor sedikit istirahat }

Langkah 9: Grand Final

Grand Final
Grand Final

Dan sekarang kami memiliki lampu kecil yang fantastis dan sangat terang!

Anda dapat memodifikasinya lebih jauh dari sini, atau membiarkannya apa adanya. Anda dapat mengubah kode, atau bahkan menulis yang baru sama sekali. Anda dapat memperbesar alas dan menambahkan baterai. Anda bisa menambahkan kipas. Anda dapat menambahkan lebih banyak NeoPixels. Daftar semua yang dapat Anda lakukan dengan ini hampir tak terbatas. Saya katakan "hampir" karena saya cukup yakin kita masih belum memiliki teknologi untuk mengubahnya menjadi generator portal mini (sayangnya), tetapi selain dari hal-hal seperti itu, satu-satunya batasan adalah imajinasi Anda (dan sampai batas tertentu, seperti yang saya temukan baru-baru ini, alat di bengkel Anda). Tetapi jika Anda tidak memiliki alat, jangan biarkan itu menghentikan Anda, jika Anda benar-benar ingin melakukan sesuatu selalu ada jalan.

Itulah bagian dari inti proyek ini, untuk membuktikan kepada diri saya sendiri (dan pada tingkat yang lebih rendah, dunia) bahwa saya dapat membuat barang-barang berguna yang juga disukai orang lain, bahkan jika yang saya miliki hanyalah tumpukan barang bekas dan bekas. komponen dan bin persediaan Arduino.

Saya akan pergi dari sini, karena saya pikir yang ini ternyata cukup baik. Jika Anda memiliki saran untuk perbaikan, atau pertanyaan tentang metode saya, silakan tinggalkan komentar di bawah. Jika Anda membuat ini, ambil gambarnya, kita semua ingin melihatnya!

Tolong jangan lupa Vote jika Anda suka ini!

Seperti biasa, ini adalah proyek Dangerously Explosive, misi seumur hidupnya, "Untuk dengan berani membangun apa yang ingin Anda bangun, dan banyak lagi!"

Anda dapat menemukan sisa proyek saya di sini.

Terima kasih telah membaca, dan Selamat Membuat!

Direkomendasikan: