Isi kandungan:

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

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

Video: HALO: Lampu Arduino Berguna Rev1.0 W / NeoPixels: 9 Langkah (dengan Gambar)
Video: Контрольная лампа переменного тока с диммером Arduino AC 2024, Jun
Anonim
Image
Image
HALO: Lampu Arduino Berguna Rev1.0 W / NeoPixels
HALO: Lampu Arduino Berguna Rev1.0 W / NeoPixels
HALO: Lampu Arduino Berguna Rev1.0 W / NeoPixels
HALO: Lampu Arduino Berguna Rev1.0 W / NeoPixels

Dalam arahan ini, saya akan menunjukkan kepada anda cara membina HALO, atau Handy Arduino Lamp Rev1.0.

HALO adalah lampu sederhana, dikuasakan oleh Arduino Nano. Ini memiliki jejak total sekitar 2 "x 3", dan dasar kayu berwajaran untuk kestabilan yang melampau. Leher fleksibel dan 12 NeoPixels yang sangat terang membolehkannya menerangi setiap perincian dengan mudah di permukaan mana pun. HALO mempunyai dua butang tekan untuk menelusuri mod cahaya yang berbeza, di mana terdapat 15 program yang diprogramkan. Oleh kerana penggunaan Arduino Nano sebagai pemproses, ada kemampuan untuk anda memprogramnya semula dengan ciri tambahan. Potensiometer tunggal digunakan untuk menyesuaikan kecerahan dan / atau kelajuan ketika mod ditampilkan. Pembinaan logam yang sederhana menjadikan HALO lampu yang sangat tahan lama, sesuai digunakan di mana-mana bengkel. Kemudahan penggunaannya digabungkan oleh pengatur daya onboard Nano, jadi HALO dapat digerakkan melalui USB atau jack laras 5mm standard di belakang.

Saya berharap dapat melihat banyak orang menggunakan lampu ini dalam masa terdekat, kerana terdapat banyak kemungkinan yang dapat dibuka dengan reka bentuk ini. Tinggalkan suara dalam Peraduan Mikrokontroler jika anda suka ini atau menganggapnya berguna dalam beberapa cara, saya sangat menghargainya.

Sebelum kita masuk ke Instructable ini, saya ingin mengucapkan Terima Kasih ringkas kepada semua pengikut saya dan sesiapa sahaja yang pernah memberi komen, kegemaran, atau memilih mana-mana projek saya. Terima kasih kepada anda semua, kadbod saya yang diarahkan menjadi kejayaan besar, dan saya sekarang, dengan menaip ini mencapai hampir 100 pengikut, tonggak besar pada pendapat saya. Saya sangat menghargai semua sokongan yang saya dapat daripada anda ketika saya menggunakan Ible saya, dan ketika ia datang, saya tidak akan berada di tempat saya hari ini tanpa anda. Dengan ucapan itu, terima kasih, semua!

CATATAN: Sepanjang Arahan ini terdapat frasa dengan huruf tebal. Ini adalah bahagian penting dari setiap langkah, dan tidak boleh diabaikan. Ini bukan saya berteriak atau sengaja bersikap kasar, saya hanya mencuba teknik penulisan baru untuk lebih menekankan apa yang perlu dilakukan. Sekiranya anda tidak menyukainya dan lebih suka bagaimana saya sebelumnya cenderung menulis langkah saya, beritahu saya dalam komen, dan saya akan kembali kepada gaya lama saya.

Langkah 1: Mengumpulkan Bahan

Bahan Berkumpul
Bahan Berkumpul
Bahan Berkumpul
Bahan Berkumpul
Bahan Berkumpul
Bahan Berkumpul
Bahan Berkumpul
Bahan Berkumpul

Berapa kali saya perlu mengatakannya? Sentiasa mempunyai apa yang anda perlukan, dan anda dijamin dapat membina sesuatu hingga akhir.

Catatan: Sebilangan daripadanya adalah pautan afiliasi (ditandai "al"), saya akan mendapat sogokan kecil jika anda membelinya, tanpa kos tambahan kepada anda. Terima kasih jika anda membeli melalui pautan

Bahagian:

1x Arduino Nano Nano - al

1x 10k Rotary Potentiometer 5 pack 10k Potentiometers - al

Jack laras 1x 5mm (tambang dikitar semula dari Arduino Uno goreng) Jack Barel Wanita (5 pek) - al

Tombol tekan sesaat 2-pin 2-pin 10 pek SPST Pushbutton Switch - al

12x NeoPixels dari helai 60 LED / meter (yang setara, mis. WS2812B, akan berfungsi) Adafruit NeoPixels

Kepingan 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 Papan lapis 1/4 inci

Berat logam berat yang rata dimensi (kira-kira) 1.5 "x 2.5" x.25"

Wayar elektrik teras terkandas

Alat:

Hot Glue Gun dan Gam

Pateri dan Pateri

Bor kuasa tanpa wayar dan pelbagai kepingan kecil

Pisau X-acto (atau pisau utiliti)

Pelucut wayar

Tang

Pemotong / pemotong wayar

Gunting Tugas Berat

Sekiranya anda tidak mempunyai berat logam rata, anda juga memerlukan:

1 gulungan solder murah (bukan barang yang akan anda gunakan untuk pematerian) Solder Bebas plumbum murah

Lilin Alkohol (atau pembakar Bunsen)

Pinggan besi kecil yang dikeraskan dan anda tidak keberatan untuk merosakkan (atau wadah kecil jika anda mempunyai)

Tripod untuk pinggan / wadah tersebut (saya membuat tambang dari wayar keluli 12 gauge)

Hidangan tanaman tanah liat (salah satu benda yang berada di bawah periuk)

Sebilangan kerajang aluminium

CATATAN: Sekiranya anda mempunyai kit kimpalan atau pencetak 3D, anda mungkin tidak memerlukan semua alat yang disenaraikan di sini.

Langkah 2: Membuat Berat

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

Ini adalah langkah yang agak sukar, dan anda mesti berhati-hati melakukannya. Sekiranya anda mempunyai berat logam berat atau magnet neodymium rata kira-kira 2,75 "dengan 1,75" hingga 0,25 ", saya akan mengesyorkan menggunakannya (dan magnet itu juga membolehkan anda meletakkan lampu di sisi logam pada permukaan!).

Penafian: Saya tidak bertanggungjawab ke atas kecederaan anda, jadi sila gunakan akal

Juga, lakukan ini di luar permukaan konkrit yang anda tidak akan keberatan jika ia sedikit hangus (ini hanya langkah berjaga-jaga). Saya tidak mempunyai gambar untuk proses ini kerana kamera akan menjadi gangguan tambahan yang saya tidak perlukan atau mahukan.

Pertama, buat acuan kecil dari aluminium foil atau tanah liat basah, sekitar 2 3/4 inci dengan 1 3/4 inci dengan 1/4 inci dalam dimensi dalaman. Bentuknya berbentuk ovoid seperti saya, atau segi empat tepat. Gunakan pelbagai lapisan kerajang atau lapisan tanah liat tebal.

Letakkan acuan ke dalam pinggan mangkuk seramik, dan isi cetakan dan dulang dengan air sejuk.

Ambil pembakar lilin alkohol / bunsen yang tidak menyala, dan letakkan pinggan besi / wadah pada tripod sehingga api akan memanaskan bahagian tengah pinggan (apabila menyala). Sebelum menyalakan pembakar, pastikan anda mempunyai sekurang-kurangnya 1 pasang tang atau penjepit logam, jika tidak 2.

Adalah idea yang baik untuk memakai sarung tangan kulit, lengan panjang, seluar panjang, kasut kaki tertutup, dan pelindung mata sambil melakukan beberapa langkah berikutnya

Gulung dan lepaskan sekumpulan pateri murah dari kili dan letakkan di dalam pinggan keluli, kemudian nyalakan pembakar. Tunggu sehingga gegelung meleleh sepenuhnya, kemudian mulailah memasukkan sisa pateri ke dalam piring dengan kadar sederhana. Sekiranya pateri mempunyai rosin di dalamnya, ini akan terbakar secara spontan dalam panas, menghasilkan api kuning pucat dan asap hitam. Jangan bimbang, ini telah berlaku kepada saya berkali-kali dan adalah perkara biasa.

Terus masukkan pateri ke dalam pinggan sehingga yang terakhir cair.

Biarkan api dari pembakaran rosin mati sepenuhnya, dan gunakan tang / tong untuk mengambil pinggan dan perlahan-lahan putar logam cair di dalamnya sambil menyimpannya dengan hati-hati.

Setelah anda yakin semua pateri benar-benar cair dan pada suhu panas yang baik, cepat-cepat keluarkan dari api dan tuangkan ke dalam acuan. Akan ada suara mendesis dan bunyi yang kuat kerana sebahagian airnya diuap dan selebihnya dipaksa keluar dari acuan untuk diganti dengan solder lebur.

Biarkan pateri sejuk, matikan pembakar / letakkan lilin anda dan letakkan pinggan besi di tempat yang selamat untuk disejukkan. Anda mungkin ingin menuangkan air sejuk ke atas penyejuk penyejuk untuk mempercepat penyejukan dan mengeraskannya lebih jauh. (Air sejuk menjadikan bahagian luar lebih cepat sejuk dari dalam, menciptakan ketegangan dalaman yang menjadikan logam lebih keras dan kaku, mirip dengan Putera Rupert's Drop.) Anda juga dapat mengalirkan air di atas pinggan logam anda, tetapi ini akan mengakibatkannya menjadi rapuh, terutamanya jika dilakukan berkali-kali.

Setelah pateri sejuk sepenuhnya (kira-kira 20 minit untuk selamat), keluarkan dari acuan kerajang.

Tambang saya lebih tebal di satu sisi daripada yang lain, jadi saya menggunakan tukul untuk meratakannya dan meratakan tepi (menghasilkan bentuk yang anda lihat dalam gambar). Saya kemudian mengolesnya dengan ringan di bawah air mengalir untuk menggilapnya, dan menyisihkannya kemudian.

Langkah 3: Membina Perumahan Elektronik, Langkah 1

Membina Perumahan Elektronik, Langkah 1
Membina Perumahan Elektronik, Langkah 1
Membina Perumahan Elektronik, Langkah 1
Membina Perumahan Elektronik, Langkah 1
Membina Perumahan Elektronik, Langkah 1
Membina Perumahan Elektronik, Langkah 1
Membina Perumahan Elektronik, Langkah 1
Membina Perumahan Elektronik, Langkah 1

Ini adalah bahagian untuk shell yang akan menempatkan Nano, memasang antara muka, dan pada dasarnya inilah yang menyatukan Lampu HALO. Saya membuat saya dengan Aluminium 0.5mm dan Hot Glue saya, tetapi jika anda mempunyai pencetak 3D (sesuatu yang telah lama saya cuba dapatkan di kedai saya) saya membuat versi. STL di Tinkercad yang saya lampirkan di sini untuk anda muat turun. Oleh kerana saya tidak mempunyai pencetak sendiri, saya tidak dapat menguji mencetak model untuk melihat apakah semuanya dicetak dengan betul, tetapi saya rasa tidak mengapa jika anda menambah struktur sokongan yang sesuai di alat pemotong anda. Anda juga boleh menyalin dan mengedit fail sumber di sini jika anda memerlukan atau menginginkan reka bentuk atau estetika yang sedikit berbeza.

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

Gambar menggambarkan susunan operasi yang sedikit berbeza dengan apa yang akan saya tulis di sini, ini kerana saya telah membuat kaedah yang lebih baik berdasarkan hasil kaedah asal saya.

Sekiranya anda memasang dari logam lembaran seperti saya, inilah yang perlu anda lakukan:

Langkah 1: Pinggan Muka

Potong dua bentuk setengah bulatan yang sama dengan tinggi 1.5 "dan lebar 3". (Saya bebas tangan, jadi mereka kelihatan seperti bahagian depan kotak juke).

Di salah satu daripada dua plat, gerudi tiga lubang untuk butang dan potensiometer. Tambang masing-masing berdiameter 1/4 inci. Ini boleh dalam susun atur apa pun, tetapi saya lebih suka potensiometer saya sedikit diangkat di tengah, dengan butang di kedua sisi membentuk segitiga isoseles. Semasa menggerudi, saya selalu membuat lubang perintis kecil sebelum pergi ke ukuran bit yang diperlukan, ia membantu memusatkan lubang dan menjadikannya sedikit lebih bersih.

Langkah 2: Penutup Melengkung

Bengkokkan sekeping aluminium agar sesuai di lengkung salah satu pelat muka, dan tandakan panjang tepi yang betul.

Potong sehelai selebar ini dan selebar kira-kira 2 inci, dan bentuknya menjadi busur yang sesuai dengan bentuk lengkung pelat muka di kedua sisi.

Cari titik tengah di bahagian atas lengkung, dan gerudi lubang agar sesuai dengan leher lentur yang lebih ringan. Saya mengimbangi lubang belakang di belakang saya kerana lampu saya kebanyakannya leher akan condong ke depan semasa digunakan, jadi saya ingin menambahkan sedikit keseimbangan pada itu. Leher fleksibel saya berdiameter lebih sedikit 1/4 inci, jadi saya menggunakan bit 1/4 inci (bit putaran terbesar yang saya miliki yang berada di bawah 3/4 inci) dan hanya dengan bersudut dan memutar gerudi untuk 'mengorek' lubang sehingga lehernya pas.

Sekarang kita mempunyai bahagian untuk shell, langkah seterusnya adalah menambahkan elektronik dan menyatukannya!

Langkah 4: Membina Perumahan Elektronik, Langkah 2

Membina Perumahan Elektronik, Langkah 2
Membina Perumahan Elektronik, Langkah 2
Membina Perumahan Elektronik, Langkah 2
Membina Perumahan Elektronik, Langkah 2
Membina Perumahan Elektronik, Langkah 2
Membina Perumahan Elektronik, Langkah 2
Membina Perumahan Elektronik, Langkah 2
Membina Perumahan Elektronik, Langkah 2

Sekarang kita menambah butang dan potensiometer, dan menyatukan semuanya.

Langkah 1: Butang dan Selak

Lepaskan mur hex dari butang dan potensiometer anda. Harus ada alat cincin yang mencengkam di bawah mur, biarkan ini di tempatnya.

Masukkan setiap komponen melalui lubang masing-masing, kemudian pasangkan kembali kacang untuk menahan masing-masing di tempatnya. Kencangkan kacang ke titik di mana anda pasti setiap komponen betul-betul selamat.

Langkah 2. Flex Neck

Masukkan leher lentur melalui lubang di bahagian atas bahagian melengkung. Lem panas atau kimpal (jika anda mempunyai peralatan) leher dengan betul di tempatnya.

Sekiranya menggunakan gam panas seperti saya, ada baiknya merekatkannya dengan banyak gam di kedua belah bahagian yang tersebar di kawasan yang luas untuk mengelakkan gam tidak tersekat kemudian.

Langkah 3: Pemasangan Shell (Tidak berlaku untuk cetakan 3D)

Dengan menggunakan rod kimpalan atau gam panas, pasangkan plat muka depan dan belakang ke tempat masing-masing pada penutup melengkung. Saya memerlukan beberapa pasangan agar lem saya melekat, dan seperti sebelumnya, caranya adalah dengan menggunakan banyak gam di kedua sisi sendi, sama seperti leher. Semakin besar kawasan yang diliputi oleh gam, semakin baik ia akan melekat.

Sekarang kita mempunyai cengkerang, kita dapat terus menambahkan semua bit litar.

Langkah 5: Menambah Elektronik

Menambah Elektronik
Menambah Elektronik
Menambah Elektronik
Menambah Elektronik
Menambah Elektronik
Menambah Elektronik

Dan inilah bahagian yang menyeronokkan: Memateri! Dalam beberapa minggu kebelakangan ini, saya dengan jujurnya sedikit bosan dengan pematerian, kerana saya telah melakukannya sejak akhir-akhir ini untuk mencuba dan menyelesaikan projek lain yang akan saya siapkan tidak lama lagi (perhatikan versi baru dari paparan robotik saya yang radikal platform), mengakibatkan saya merosakkan satu besi dan mendapatkan yang lain … Bagaimanapun, tidak banyak yang perlu disolder di sini, jadi ini semestinya cukup mudah.

Nota: Sekiranya Nano anda sudah mempunyai header pin, saya akan mengesyorkan agar mereka tidak disiapkan untuk projek ini, mereka hanya akan menghalangnya.

Terdapat gambar rajah dalam gambar di atas, anda boleh mengikutinya jika anda mahu.

Langkah 1: Antara muka

Dari setiap suis, pateri wayar dari satu pin ke pin sisi potensiometer. Pateri wayar dari pin sisi yang sama ini ke pin Ground di Nano.

Pateri wayar dari pin tengah potensiometer ke A0 di Nano.

Pateri wayar dari pin yang tidak bersambung sama ada beralih ke A1 di Nano.

Pateri wayar dari pin yang tidak bersambung pada suis lain ke A2 di Nano.

Catatan: Tidak kira suis mana yang mana, anda boleh menukarnya dengan sangat mudah dalam kod, selain hakikat bahawa satu suis hanya berlawanan dengan yang lain.

Potong panjang dawai 4 inci lebih panjang daripada leher lentur, dan jalur kedua-dua belah pihak. Dengan menggunakan Sharpie, tandakan satu sisi dengan satu baris.

Pateri wayar ke pin sisi terakhir potensiometer yang tidak bersambung, putar hujung wayar ini yang tidak bersambung dengan hujung wayar yang tidak bertanda dari bahagian bawah terakhir.

Solder ini bergabung hujung ke 5V di Nano.

Langkah 2: Wayar Paparan dan Kuasa

Potong wayar 2 panjang 4 inci lebih panjang daripada leher lentur, dan jalur kedua hujungnya.

Dengan menggunakan Sharpie, tandakan hujung setiap wayar, satu wayar dengan 2 baris, dan satu lagi dengan 3.

Pateri wayar dengan 2 baris ke pin digital 9 di Nano.

Pada bicu tong 5mm anda, pasangkan wayar dari pin tengah (positif) ke Vin di Nano.

Pateri wayar lain ke pin sisi (tanah / negatif) bicu tong.

Putar wayar panjang dengan 3 linestogether dengan wayar dari pin sisi jack laras.

Solder wayar ke pin GND terbuka di Nano.

Pisahkan sambungan dengan pita elektrik atau gam panas jika diperlukan.

Langkah 3: Memotong Lubang (hanya pada versi logam, jika 3D mencetak penutup, anda pasti baik)

Dengan menggunakan bit gerudi dan X-acto atau Utility Knife, buat lubang di sisi penutup dengan berhati-hati untuk port USB Nano.

Buat lubang lain mengenai ukuran muka soket tong di bahagian belakang penutup, lebih baik dekat dengan sisi yang berlawanan dengan lubang untuk port USB.

Langkah 4: Memasang Komponen

Masukkan tiga wayar panjang melalui leher lentur dan keluar dari sisi lain.

Dengan menggunakan gam panas yang banyak, pasang soket tong di tempatnya dengan pin menghadap ke bahagian atas penutup.

Sekali lagi menggunakan banyak gam panas, pasang Nano di tempatnya, dengan butang reset menghadap ke bawah dan port USB di slotnya. Saya membuat "jambatan lem panas" antara soket tong dan Nano, yang membuat masing-masing meletakkan yang lain dengan kuat.

Sekarang kita dapat bergerak maju untuk menjadikan dasar berwajaran!

Langkah 6: Pangkalan Berat

Pangkalan Berat
Pangkalan Berat
Pangkalan Berat
Pangkalan Berat
Pangkalan Berat
Pangkalan Berat

Saya yakin dengan kemahiran menyolder saya dan ini telah dirancang dengan baik, jadi saya terus maju dan menambah asas sebelum menguji kodnya. Sekiranya anda kurang yakin dengan kemahiran anda, saya cadangkan melangkau langkah ini dan mengembalikannya pada akhir apabila anda tahu semuanya berjalan lancar.

Sekiranya anda membuat versi cetak 3D, anda boleh melangkau langkah pertama dan beralih ke langkah kedua.

Langkah 1: Kayu

Dari kepingan papan lapis 1/4 inci, potong pangkal kira-kira 3 inci dengan 2 inci.

Pasir tepinya untuk melicinkannya dan lepaskan burs.

Langkah 2: Berat

Pertama, pastikan berat pilihan anda, sama ada magnet, logam, atau solder khusus, sesuai dengan tepi penutup logam yang kami buat. Tambang saya agak besar dalam satu arah, jadi saya mencukur sedikit dari sisi dengan pisau X-acto. Sekiranya anda bukan jenis yang boleh anda lakukan, anda mungkin perlu bermain dengan reka bentuk asas yang berbeza.

Panaskan berat badan anda di tengah-tengah kepingan papan lapis, atau dalam kes reka bentuk bercetak 3D, di kawasan "dulang" tengah yang saya reka untuk tujuan ini.

Langkah 3: Pangkalan

Pasangkan penutup logam di atas berat dan letakkan di pangkal kayu. (Sekiranya reka bentuk bercetak 3D, pasangkannya ke alur yang telah dibuat sebelumnya.)

Pastikan berat badan tidak mengganggu elektronik

Gunakan lem panas untuk menahan pangkalan di tempatnya. Gunakan cukup untuk memastikan hubungan yang kukuh.

Setelah kotak kawalan kami dibuat 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, bahagian ini adalah cincin halo NeoPixel yang akan kami gunakan sebagai sumber pencahayaan kami. Bahagian ini boleh diubah suai atau diganti dengan mana-mana NeoPixel atau cincin LED yang boleh ditujukan secara individu, jika dikehendaki.

Langkah 1: Pematerian

Potong sehelai panjang LED NeoPixels 12 LED.

Pateri pin GND ke wayar dari leher lentur yang mempunyai 3 garis.

Pateri pin Din ke wayar yang mempunyai 2 garis.

Pateri pin 5V ke wayar yang mempunyai 1 garisan.

Langkah 2: Uji Lampu

Muat turun dan pasang pustaka Adafruit_NeoPixel, dan buka kod "strandtest".

Tukar PIN tetap ke 9.

Tukar garis di mana jalur ditentukan sehingga dikonfigurasikan untuk 12 LED.

Muat naik kod ke Nano, dan pastikan semua LED anda berfungsi dengan baik.

Ganti mana-mana LED yang rosak dengan yang berfungsi, sehingga keseluruhan jalur berfungsi.

Langkah 3: Cincin

Ambil cincin atas dari lampu "Stick and Click" dan potong mana-mana pelekap skru pada pelek dalaman.

Potong takik kecil di tepi untuk wayar dari jalur.

Kupas penutup untuk pita lekat di bahagian belakang NeoPixels (jika ada) dan pasangkannya di dalam gelang, dengan kedua hujung jalur tepat di takuk yang kita buat.

Gunakan gam panas untuk mengikat tepi jalur dengan kuat

Setelah gam sejuk sepenuhnya, uji piksel sekali lagi. Ini adalah untuk memastikan tidak ada yang tidak senang dengan panas dan keriting (beberapa dari saya).

Langkah 4: Gunung

Potong dua segi empat kecil kayu 1/4 inci, kira-kira tinggi gelang dan selebar 1 2/3 kali.

Lekatkan selari antara satu sama lain di kedua-dua sisi wayar dari gelang, isi celah dan tutup wayar di antara keseluruhan dengan gam.

Dengan berhati-hati tolak panjang wayar yang berlebihan ke leher yang lentur, dan kemudian pasangkan kepingan kayu ke hujung leher, gunakan banyak gam dan isi celah dengan hati-hati (tanpa mengisi leher dengan gam).

Langkah 6: Penamat

Anda boleh melukis cincin dan memasang warna apa pun jika anda suka, saya lebih suka kemasan perak jadi saya hanya menggunakan Sharpie untuk menutupi logo yang (menjengkelkan) dicetak pada cincin. Perkara yang sama berlaku untuk lampu yang selebihnya.

Sekarang kita boleh terus maju dengan menyelesaikan kod akhir!

Langkah 8: Kod dan Ujian

Kod dan Ujian
Kod dan Ujian
Kod dan Ujian
Kod dan Ujian

Jadi sekarang yang perlu kita lakukan adalah memprogram lampu dan mengujinya. Terlampir adalah versi kod semasa (rev1.0), saya telah menguji kod ini secara meluas dan berfungsi dengan baik. Saya sedang mengerjakan rev2.0 di mana butang dikonfigurasikan sebagai gangguan luaran supaya mod dapat ditukar dengan lebih mudah, tetapi versi ini kereta dan belum siap untuk dilancarkan. Dengan versi semasa, anda harus menahan butang sehingga menjalankan gelung Debounce dan menyedari perubahan keadaan, yang boleh mengganggu gelung "Dinamik" yang lebih panjang. Berikut adalah kod dengan beberapa penjelasan yang ditulis (terdapat penjelasan yang sama dalam versi yang boleh dimuat turun).

#kemasukan #ifdef _AVR_ #masuk #endif

#tentukan PIN 9

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

// Parameter 1 = bilangan piksel dalam jalur

// Parameter 2 = Nombor pin Arduino (kebanyakan valid) // Parameter 3 = bendera jenis piksel, tambahkan bersama seperti yang diperlukan: // NEO_KHZ800 bitstream 800 KHz (kebanyakan produk NeoPixel dengan LED WS2812) // NEO_KHZ400 400 KHz (klasik ') piksel FLORA v1 '(bukan v2), pemacu WS2811) // Piksel NEO_GRB dikabelkan untuk aliran bit GRB (kebanyakan produk NeoPixel) // Piksel NEO_RGB dikabelkan untuk aliran bit RGB (piksel v1 FLORA, bukan v2) // Piksel NEO_RGBW disambungkan untuk Aliran bit RGBW (produk RGBW NeoPixel) Adafruit_NeoPixel halo = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800);

// Dan sekarang, mesej keselamatan dari rakan kami di Adafruit:

// PENTING: Untuk mengurangkan risiko burnout NeoPixel, tambahkan kapasitor 1000 uF

// petunjuk daya piksel, tambahkan perintang 300 - 500 Ohm pada input data piksel pertama // dan kurangkan jarak antara Arduino dan piksel pertama. Elakkan menyambung // pada litar langsung … jika anda mesti, sambungkan GND terlebih dahulu.

// Pemboleh ubah

butang intState1; butang intState2; // bacaan semasa dari pin input int lastButtonState1 = RENDAH; // bacaan sebelumnya dari pin input int lastButtonState2 = RENDAH; mod int; // mod lampu kita, boleh menjadi salah satu daripada 16 tetapan (0 hingga 15) int brightVal = 0; // kecerahan / kelajuan, seperti yang ditetapkan oleh potensiometer

// pemboleh ubah berikut adalah panjang kerana masa, diukur dalam milidetik, // dengan cepat akan menjadi bilangan yang lebih besar daripada yang dapat disimpan di sebuah int. lama terakhirDebounceTime = 0; // kali terakhir pin output ditukar panjang debounceDelay = 50; // masa debounce; meningkat sekiranya output berkelip

batal menolak () {

// baca keadaan pertukaran menjadi pemboleh ubah tempatan: int reading1 = digitalRead (BUTTON1); int reading2 = digitalRead (BUTTON2); // Sekiranya salah satu daripada butang berubah, kerana bunyi bising atau menekan: if (reading1! = LastButtonState1 || reading2! = LastButtonState2) {// tetapkan semula pemasa debouncing lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// jika keadaan butang pasti berubah kerana menekan / melepaskan: if (read1! = buttonState1) {buttonState1 = reading1; // tetapkan sebagai bacaan jika diubah jika (buttonState1 == LOW) {// ini ditetapkan sebagai mod suis rendah aktif ++; jika (mod == 16) {mod = 0; }}} jika (Reading2! = buttonState2) {buttonState2 = reading2; jika (buttonState2 == LOW) {mode = mod - 1; jika (mod == -1) {mod = 15; }}}} // simpan bacaan untuk kali seterusnya melalui gelung lastButtonState1 = reading1; lastButtonState2 = membaca2; }

batal getBright () {// kod kami untuk membaca potensiometer, memberikan nilai antara 0 dan 255. Digunakan untuk menetapkan kecerahan dalam beberapa mod dan kelajuan yang lain.

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

// Berikut adalah mod warna kami. Sebahagian daripadanya berasal dari contoh strandtest, yang lain asli.

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

void colorWipe (uint32_t c, uint8_t waiting) {untuk (uint16_t i = 0; i

// fungsi pelangi (juga berasal dari strandtest)

kekosongan pelangi (uint8_tunggu) {

uint16_t i, j;

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

// Sedikit berbeza, ini menjadikan pelangi sama rata di seluruh

kekosongan pelangi kosong (uint8_t tunggu) {uint16_t i, j;

untuk (j = 0; j <256 * 5; j ++) {// 5 kitaran semua warna pada roda untuk (i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, Wheel (((i * 256 / halo.numPixels ()) + j) & 255)); } halo.show (); kelewatan (tunggu); }}

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

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

batal persediaan () {

// Ini untuk Trinket 5V 16MHz, anda boleh membuang ketiga baris ini jika anda tidak menggunakan Trinket #if yang ditentukan (_AVR_ATtiny85_) jika (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // Akhir kod pinMode khas perhiasan (POT, INPUT); pinMode (BUTTON1, INPUT_PULLUP); pinMode (BUTTON2, INPUT_PULLUP); pinMode (PIN, OUTPUT); Serial.begin (9600); // menyahpepijat barang halo.begin (); halo.show (); // Memulakan semua piksel untuk 'mati'}

gelung kosong () {

lantunan ();

//Serial.println(mode); // penyahpepijatan lebih banyak //Serial.println(lastButtonState1); //Serial.println(lastButtonState2);

jika (mod == 0) {

getBright (); untuk (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, brightVal, brightVal)); // tetapkan semua piksel ke putih} halo.show (); }; jika (mod == 1) {getBright (); untuk (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, 0))); // tetapkan semua piksel menjadi merah} halo.show (); }; jika (mod == 2) {getBright (); untuk (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, 0)); // tetapkan semua piksel ke hijau} halo.show (); }; jika (mod == 3) {getBright (); untuk (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, 0, brightVal)); // tetapkan semua piksel ke biru} halo.show (); }; jika (mod == 4) {getBright (); untuk (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, brightVal)); // tetapkan semua piksel ke cyan} halo.show (); }; jika (mod == 5) {getBright (); untuk (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, brightVal)); // tetapkan semua piksel ke ungu / magenta} halo.show (); }; jika (mod == 6) {getBright (); untuk (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, brightVal, 0)); // tetapkan semua piksel ke oren / kuning} halo.show (); }; if (mode == 7) {// sekarang mod dinamik getBright (); colorWipe (halo. Color (brightVal, 0, 0), 50); // Merah}; jika (mod == 8) {getBright (); colorWipe (halo. Color (0, brightVal, 0), 50); // Hijau}; jika (mod == 9) {getBright (); colorWipe (halo. Color (0, 0, brightVal), 50); // Biru}; jika (mod == 10) {getBright (); colorWipe (halo. Color (brightVal, brightVal, brightVal), 50); // putih}; jika (mod == 11) {getBright (); colorWipe (halo. Color (brightVal, brightVal, 0), 50); // oren / kuning}; jika (mod == 12) {getBright (); colorWipe (halo. Color (0, brightVal, brightVal), 50); // sian}; jika (mod == 13) {getBright (); colorWipe (halo. Color (brightVal, 0, brightVal), 50); // ungu / magenta}; if (mode == 14) {// dua yang terakhir adalah kawalan kelajuan, kerana kecerahan adalah getBright dinamik (); pelangi (brightVal); }; jika (mod == 15) {getBright (); RainbowCycle (terangVal); }; kelewatan (10); // biarkan pemproses berehat sedikit}

Langkah 9: Grand Finale

The Grand Finale
The Grand Finale

Dan sekarang kita mempunyai lampu kecil yang hebat dan terang!

Anda boleh mengubahnya lebih jauh dari sini, atau membiarkannya seperti sekarang. Anda boleh menukar kod, atau menulis yang baru sepenuhnya. Anda boleh memperbesar pangkalan dan menambah bateri. Anda boleh menambah kipas. Anda boleh menambah lebih banyak NeoPixels. Senarai semua yang boleh anda lakukan dengan ini hampir tidak terhingga. Saya mengatakan "hampir" kerana saya cukup yakin kita masih tidak mempunyai teknologi untuk mengubahnya menjadi penjana portal mini (malangnya), tetapi selain dari perkara seperti itu, satu-satunya had adalah imaginasi anda (dan pada tahap tertentu, seperti yang saya dapati baru-baru ini, alat di bengkel anda). Tetapi jika anda tidak mempunyai alat, jangan biarkan itu menghentikan anda, jika anda benar-benar ingin melakukan sesuatu selalu ada jalan.

Itulah sebahagian dari maksud projek ini, untuk membuktikan kepada diri saya sendiri (dan pada tahap yang lebih rendah, dunia) bahawa saya dapat membuat barang-barang berguna yang juga disukai orang lain, walaupun semua yang saya miliki adalah timbunan sampah lama dan lama komponen dan tong sampah Arduino.

Saya akan pergi dari sini, kerana saya rasa ini agak baik. Sekiranya anda mempunyai cadangan untuk penambahbaikan, atau pertanyaan mengenai kaedah saya, sila tinggalkan komen di bawah. Sekiranya anda membuat ini, ambil gambar, kita semua mahu melihatnya!

Jangan lupa Undi jika anda suka ini!

Seperti biasa, ini adalah projek Dangerously Explosive, misinya seumur hidup, "Untuk berani membina apa yang ingin anda bina, dan banyak lagi!"

Anda boleh mendapatkan sisa projek saya di sini.

Terima kasih kerana membaca, dan Selamat Membuat!

Disyorkan: