Isi kandungan:
- Langkah 1: Skematik dan Perkakasan
- Langkah 2: Membuat PCB Hosting sebagai LED
- Langkah 3: Membuat Kotak
- Langkah 4: Menyiapkan Ikatan
- Langkah 5: Melekatkan Fiberoptics
- Langkah 6: Meletakkan Fiberoptics Melalui Ikatan
- Langkah 7: Melekatkan Fiberoptics ke Dasi
- Langkah 8: Kod
- Langkah 9: Produk Akhir
Video: Ikatan Starry Sky Led: 9 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Beberapa ketika yang lalu saya menjumpai mainan kanak-kanak dengan fiberoptik di kedai dolar, dan mula memikirkan apa yang boleh saya lakukan dengannya.
Salah satu idea gila yang saya ada, adalah membuat tali leher dengan kesan langit berbintang.
Saya masih mempunyai beberapa arduino pro mini, papan iklan dan bateri yang mungkin sesuai dengan projek ini.
Oleh itu, sebaik sahaja saya menjumpai tali leher lebar di kedai pajak gadai di bandar saya dan menjumpai kotak yang mungkin sesuai dengan perkakasan, saya memutuskan untuk mencarinya dan mencuba dan membinanya.
Petunjuk ini menunjukkan kepada anda bagaimana saya membuatnya.
Ia menggunakan arduino pro mini, adafruit powerboost 500 charger, emmerich icr 18650nh-sp dan 5 LED putih. Kod tersebut menjadikan kecerahan perubahan LED secara rawak. (40 saat pertama video adalah kelajuan 3x)
Langkah 1: Skematik dan Perkakasan
Saya menggunakan perkakasan berikut:
- PCB dengan LED putih ais dan perintang 220 Ohm.
- Arduino pro mini (saya menggunakan tiruan)
- Pengecas Adafruit Powerboost 500
- Emmerich Li-ion accu ICR-18650NH-SP
- Serat optik (dalam pelbagai saiz)
Langkah 2: Membuat PCB Hosting sebagai LED
Saya memotong sehelai PCB untuk memegang LED dan menggunakan pin LED untuk menyoldernya ke PCB utama.
Menyambungkan semua katod (-) ke GND, dan menggunakan separuh pin untuk menyoldernya terpaku pada PCB utama.
Menyambungkan semua anod (+) ke perintang, dan dengan kabel ke arduino.
Setiap LED mesti disambungkan ke salah satu port PWM berikut: 3, 5, 6, 9, 10, 11
Konyol saya membuat banyak kesilapan dengan projek ini dan lupa untuk memeriksa port PWM yang betul, jadi saya terpaksa menyelesaikannya kemudian. Diuji dengan Tinggi / Rendah jadi saya hanya memperhatikannya kemudian.
Saya bermula dengan 7 LED, tetapi hanya ada 6 port PWM dan salah satu LED yang saya tetapkan mati. Saya hanya menyimpan 5 LED yang berfungsi dan tidak menggunakan yang ke-6.
Langkah 3: Membuat Kotak
Saya menggunakan Bosch GRO (seperti Dremel) dan gerudi untuk memotong bentuk bateri, butang, port mikro-usb, tajuk dari Arduino dan serat optik. (gunakan topeng habuk!)
Lekatkan bateri ke casing dengan 2 jalur.
Skru yang digunakan untuk memasang papan Adafruit dan PCB.
Geseran dari membuka dan menutup beberapa wayar rosak. Saya terpaksa menyelesaikannya dan menggunakan gam untuk mengelakkannya berulang.
Langkah 4: Menyiapkan Ikatan
Menanggalkan jahitan dari bahagian bawah tali leher agar sesuai dengan kepingan getah.
Untuk menyembunyikan perkakasan dan masih dapat mengaksesnya jika diperlukan saya memutuskan untuk menggunakan ritsleting.
Saya tidak pandai menggunakan mesin jahit, jadi ibu manis saya meletakkan zip di bahagian belakang tali leher.
Setelah selesai, saya melekatkan kepingan getah di tali leher. Saya takut menggunakan gam yang terlalu banyak yang akan menjenuhkan kain dan kelihatan dari depan, jadi saya cuba meratakannya dan tidak menggunakan terlalu banyak. Secara keseluruhan kelihatan baik, tetapi di beberapa tempat saya melihat terlalu banyak atau terlalu sedikit lem, kerana ia keluar melalui kain atau tidak menempel kain dengan baik. Nasib baik ini hanya dapat dilihat dari jarak dekat dalam cahaya terang.
Kotak dan tali leher sudah selesai. Masa untuk melekatkan fiberoptik!
Langkah 5: Melekatkan Fiberoptics
Mainan ini mempunyai satu wayar fiber optik bundle besar yang mudah terputus. Pada mulanya saya mencuba melekatkannya satu demi satu, tetapi tidak lama kemudian, lebih baik membuat bundel kecil dan menempelkannya pada LED sekaligus. Itu akan menjadikannya lebih mudah untuk tetap stabil sehingga lem kering. Mengacaukan LED pertama yang memikirkan ini.
Pastikan menggunakan gam telus! Yang saya gunakan kering sangat perlahan dan gam cepat kering saya mencuba LED pertama menjadi putih, menjadikan beberapa gentian dari LED pertama kurang terang.
Saya menempelkan kepingan getah hitam kecil untuk mengelakkan cahaya bocor di atas dan untuk memisahkan LED.
Salah satu helai menghalang sarungnya ditutup jadi saya menambah gelang getah untuk menutup penutupnya.
Langkah 6: Meletakkan Fiberoptics Melalui Ikatan
Bermula di bahagian bawah, saya mencubit lubang dengan jarum dan memasukkan seratnya satu demi satu. Setiap gentian LED tersebar secara rawak di tali leher.
Saya menempelkan jalur hitam di bahagian belakang yang seharusnya sampai ke bahagian tali leher yang lebih kecil untuk menjaga berat kotak, tetapi setelah saya memasang semua wayar dan merasakan ketegangan wayar, saya memutuskan untuk menempel semuanya sesuai dengan idea yang lebih baik dan memotongnya.
Oleh kerana wayar gentian optik dari mainan itu sangat pendek, sangat sukar dipasang di tali leher. Saya terhad dalam meletakkan kotak dan mempunyai masa yang sukar untuk membuat semuanya rata seperti yang saya mahukan.
Langkah 7: Melekatkan Fiberoptics ke Dasi
Saya menempelkan semua wayar gentian optik ke kepingan getah untuk mengelakkan wayar keluar dari kepingan getah dan menjadikan tali leher rata.
Untuk memastikan saya tidak melekatkan penjepit pada tali leher ketika saya menekannya, saya meletakkan beberapa kertas di antara keduanya. Ia tidak kelihatan hebat tetapi berfungsi dengan baik. Dan anda tidak melihatnya ketika ditutup.
Setelah lem kering saya memotong wayar di bahagian depan dan memotong sedikit dari kepingan getah tepat di atas dawai tertinggi, kerana tali lehernya terlalu panjang.
Foto dengan baju putih dibuat sebelum saya memotong getah yang terakhir.
Langkah 8: Kod
Di bawah kod yang saya tulis untuk tali leher.
Semua LED mempunyai satu set "rata-rata" (bukan rata-rata tetapi kecerahan tengah).
Sebaik sahaja mencapai purata itu, ia akan memutuskan dengan peluang 3/4 untuk mencapai kecerahan yang lebih rendah. Ia juga secara rawak menetapkan kecerahan minimum baru, kecerahan maksimum, masa menunggu untuk kecerahan minimum dan maksimum dan kelajuannya meningkat atau menurun setiap pusingan (1-255) dari 5 nilai yang telah ditetapkan. Kemudian ia akan melakukan satu kitaran sehingga mencapai rata-rata lagi. Hanya 2 LED boleh berada dalam kitaran tinggi pada masa yang sama.
Setiap keadaan diwakili oleh nilai bilangan bulat (1-7) yang menentukan apakah itu akan rata-rata, rendah, rata-rata, menunggu rendah, mengemas kini, dll.
Untuk maklumat mengenai memuat naik kod ke arduino, sila lihat di www.arduino.cc
/ * Starry Sky Tie * * Ini adalah skrip untuk memudar 5 LED secara rawak dari purata hingga lebih rendah * atau kecerahan yang lebih tinggi dengan tetapan rawak yang lebih rendah, lebih tinggi dan masa * untuk kelihatan seperti langit berbintang ketika digunakan dengan fiberoptik. * Dalam kes ini, ini akan dilaksanakan secara bertali. * * Peluang naik / turun = 1/4 naik, 3/4 turun, dengan maksimum 2 * naik ke maksimum pada masa yang sama. * * Rata-rata tetap sama. * Pilihan minimum, maksimum dan masa berubah secara rawak * dari 5 pilihan setiap kali LED mencapai rata-rata lagi. * * Dibuat oleh Billy Jaspers, Mei 2019. *
/ Menyatakan pin
int LED01 = 3; int LED02 = 5; int LED03 = 6; int LED04 = 9; int LED05 = 11;
// Pemboleh ubah masa
masa semasa yang tidak ditandatangani; waktu menunggu lama yang tidak ditandatangani [5]; longRound terakhir yang tidak ditandatangani;
// Pemboleh ubah LED
int brightMin [5] = {10, 10, 10, 10, 10}; // Kecerahan minimum dalam terangAvg [5] = {200, 200, 200, 200, 200}; // Kecerahan purata dalam terangMax [5] = {240, 240, 240, 240, 240}; // Kecerahan maksimum dalam masaWaitLow [5] = {1000, 1000, 1000, 1000, 1000}; // Waktu menunggu int timeWaitAvg [5] = {5000, 5000, 5000, 5000, 5000}; // Waktu menunggu int timeWaitMax [5] = {4000, 3000, 3000, 3000, 3000}; // Masa menunggu antara kenaikan [5] = {2, 5, 4, 5, 2}; // Kenaikan kecerahan dalam arus semasaBright [5] = {200, 230, 210, 210, 235}; // Kecerahan semasa
// Kemungkinan Pemboleh ubah LED
int brightMinPos [5] = {5, 20, 40, 5, 20}; // Kemungkinan kecerahan minimum int brightMaxPos [5] = {240, 245, 230, 225, 245}; // Kemungkinan kecerahan maksimum dalam waktuLowPos [5] = {3000, 5000, 4000, 2000, 1000}; // Masa menunggu pada kemungkinan kecerahan rendah dalam waktuHighPos [5] = {3000, 1000, 500, 2000, 4000}; // Masa menunggu pada kemungkinan kecerahan tinggi dalam waktuAvgPos [5] = {3000, 5000, 4000, 7000, 8000}; // Masa menunggu pada kemungkinan kecerahan purata int incrementPos [5] = {2, 4, 5, 3, 1}; // kenaikan kemungkinan kecerahan
// Pemboleh ubah
permulaan bool = benar; // Adakah tetapan permulaan perlu dimulakan?
// Pemboleh ubah arah
/ * 0 = Menunggu pada Purata 1 = naik Rata-Rata ke Rendah 2 = menunggu Rendah 3 = pergi Rendah ke Purata 4 = naik Rata-Rata ke Maks 5 = menunggu di Maks 6 = naik Tinggi ke Purata 7 = Mengemas kini pemboleh ubah * / status intLED [5] = {0, 0, 0, 0, 0}; jumlah intHighLED = 0; int refreshRate = 50; status boolWaiting [5] = {false, false, false, false, false}; // Adakah Led menunggu?
// Pemboleh ubah rawak
nombor rawak panjang; // Lama menyimpan nombor rawak panjang rawak panjangNumberTwo; // Lama menyimpan nombor rawak kedua
// kaunter
int i = 0; // Kaunter untuk gelung utama
batal persediaan () {
Serial.begin (115200); // Mulakan siri randomSeed (analogRead (A0)); // Tetapkan biji rawak
// Menyatakan output
pinMode (LED01, OUTPUT); pinMode (LED02, OUTPUT); pinMode (LED03, OUTPUT); pinMode (LED04, OUTPUT); pinMode (LED05, OUTPUT); }
// Tulis data ke LED
batal writeToLED () {analogWrite (LED01, currentBright [0]); analogWrite (LED02, currentBright [1]); analogWrite (LED03, currentBright [2]); analogWrite (LED04, currentBright [3]); analogWrite (LED05, currentBright [4]); }
// Gelung utama
gelung void () {if (startup) {// Tetapan permulaan lastRound = millis (); // Tetapkan lastRound untuk boot writeToLED (); // Tulis data mula ke permulaan LED = false; // Matikan startup} currentTime = millis (); // Tetapkan masa semasa
if (currentTime - lastRound> = refreshRate) {
untuk (i = 0; i <5; i ++) {if (statusLED == 7) {// -7- Mengemas kini Led randomNumber = random (5); brightMin = brightMinPos [randomNumber]; // Tetapkan nilai rawak untuk kecerahan minimum randomNumber = rawak (5); brightMax = brightMaxPos [randomNumber]; // Tetapkan nilai rawak untuk kecerahan maksimum randomNumber = rawak (5); timeWaitLow = timeLowPos [randomNumber]; // Tetapkan nilai rawak untuk masa menunggu rendah randomNumber = rawak (5); timeWaitMax = timeHighPos [randomNumber]; // Tetapkan nilai rawak untuk masa menunggu tinggi randomNumber = rawak (5); timeWaitAvg = timeAvgPos [randomNumber]; // Tetapkan nilai rawak untuk purata masa menunggu randomNumber = rawak (5); kenaikan = incrementPos [randomNumber]; // Tetapkan nilai rawak untuk nilai kenaikan randomNumber = rawak (2); // Tetapkan nilai rawak untuk arah randomNumberTwo = rawak (2); // Tetapkan nilai rawak untuk arah jika (randomNumber == 1 && randomNumberTwo == 0 && jumlahHighLED = brightAvg ) {statusLED = 0; // Jika pada titik terendah: Pergi ke Menunggu Purata} yang lain {currentBright = currentBright + kenaikan ; // Lain: Kecerahan Lebih Tinggi}} lain jika (statusLED == 2) {// -2- Menunggu Rendah jika (! StatusWaiting ) {// Sekiranya tidak menunggu: waitingTime = millis (); // Tetapkan status masa menungguWaiting = true; // Mula menunggu} lain jika (statusWaiting && currentTime-waitingTime > = timeWaitLow ) {// Sekiranya menunggu DAN timeWaitAvg telah berlalu: statusWaiting = false; // Berhenti menunggu statusLED = 3; // Tetapkan statusLed to Menunggu kemas kini}} lain jika (statusLED == 1) {// -1- Menuju Purata ke Rendah jika (currentBright <= brightMin ) {statusLED = 2; // Jika pada titik terendah: Pergi ke Waiting Low} yang lain {currentBright = currentBright -rrrement ; // Lain: Kecerahan yang Lebih Rendah}} lain jika (statusLED == 6) {// -6- Menuju Maksimum ke Purata jika (currentBright = timeWaitMax ) {// Sekiranya menunggu DAN masaWaitAvg telah berlalu: statusWaiting = false; // Berhenti menunggu statusLED = 6; // Tetapkan statusLed to Menunggu kemas kini}} lain jika (statusLED == 4) {// -4- Menuju Purata ke Maks jika (currentBright > = brightMax ) {statusLED = 5; // Sekiranya pada titik terendah: Pergi ke Menunggu Tinggi} yang lain {currentBright = currentBright + kenaikan ; // Lain: Kecerahan Lebih Tinggi}} lain jika (statusLED == 0) {// -0- Menunggu Rata-rata jika (! StatusWaiting ) {// Sekiranya tidak menunggu: waitingTime = millis (); // Tetapkan status masa menungguWaiting = true; // Mula menunggu} lain jika (statusWaiting && currentTime-waitingTime > = timeWaitAvg ) {// Sekiranya menunggu DAN masaWaitAvg telah berlalu: statusWaiting = false; // Berhenti menunggu statusLED = 7; // Tetapkan statusLed to Menunggu kemas kini}}} i = 0; lastRound = milis (); // Tetapkan apabila pusingan terakhir selesai. tulisToLED (); // Tulis semua data ke LED}}
Langkah 9: Produk Akhir
Saya rasa ia berjaya. Tali lehernya tidak terlalu tebal, kaku, panjang atau berat dan kesan bintang kelihatan luar biasa.
Disyorkan:
Lampu Sorot UV UV Rendah untuk Ikatan Bebas Mikro PMMA Cip Mikrofluidik: 11 Langkah
Lampu Sorot UV Rendah DIY untuk Ikatan Bebas Perekat Cip Mikrofluida PMMA: Peranti mikrofluida yang dibuat dalam termoplastik semakin banyak digunakan kerana ketegaran, ketelusan, kebolehtelapan gas berkurang, biokompatibiliti, dan terjemahan yang lebih mudah kepada kaedah pengeluaran besar-besaran seperti pencetakan suntikan. Kaedah ikatan untuk
Bina Papan Pemuka Cuaca Menggunakan Dark Sky API: 5 Langkah (dengan Gambar)
Bangun Papan Pemuka Cuaca Menggunakan Dark Sky API: Dark Sky mengkhususkan diri dalam ramalan cuaca dan visualisasi. Aspek Dark Sky yang paling keren adalah API cuaca mereka yang dapat kita gunakan untuk mengambil data cuaca dari hampir mana saja di dunia. Bukan hanya cuaca hujan atau cerah tetapi temperatu
Cara Membongkar Komputer Dengan Langkah dan Gambar yang Mudah: 13 Langkah (dengan Gambar)
Cara Membongkar Komputer Dengan Langkah dan Gambar yang Mudah: Ini arahan mengenai cara membongkar PC. Sebilangan besar komponen asas adalah modular dan mudah dikeluarkan. Walau bagaimanapun, adalah penting untuk anda mengaturnya. Ini akan membantu mengelakkan anda kehilangan bahagian, dan juga dalam membuat pemasangan semula
Penyelesaian Kamera Udara SKY CAM: 10 Langkah (dengan Gambar)
SKY CAM an Aerial Camera Solution: Instructable ini akan memandu anda bagaimana saya membuat sistem kawalan jauh (Semi Autonomous) Cable Cam untuk Projek Produk Elektronik GCSE saya di Sekolah dan semoga membolehkan anda dapat mencipta sistem anda sendiri! Ini bertujuan sebagai panduan kasar
SENSOR SUHU DENGAN LCD DAN LED (Membuat Sensor Suhu Dengan LCD dan LED): 6 Langkah (dengan Gambar)
SENSOR SUHU DENGAN LCD DAN LED (Membuat Sensor Suhu Dengan LCD dan LED): hai, saya. Ini adalah bacaan suhu dengan reka bentuk saya sendiri, dengan sensor ini dan