Daftar Isi:

Starry Sky Led Tie: 9 Langkah (dengan Gambar)
Starry Sky Led Tie: 9 Langkah (dengan Gambar)

Video: Starry Sky Led Tie: 9 Langkah (dengan Gambar)

Video: Starry Sky Led Tie: 9 Langkah (dengan Gambar)
Video: Ular Kepala Manusia di Papua 2024, November
Anonim
Image
Image
Dasi Led Langit Berbintang
Dasi Led Langit Berbintang
Dasi Led Langit Berbintang
Dasi Led Langit Berbintang

Beberapa waktu yang lalu saya menemukan mainan anak-anak dengan serat optik di toko dolar, dan mulai berpikir tentang apa yang bisa saya lakukan dengannya.

Salah satu ide gila yang saya miliki adalah membuat dasi dengan efek langit berbintang.

Saya masih memiliki beberapa arduino pro mini, papan adafruit, dan baterai yang mungkin cocok dengan proyek ini.

Jadi segera setelah saya menemukan dasi lebar yang bagus di pegadaian di kota saya dan menemukan sebuah kotak yang mungkin cocok dengan perangkat kerasnya, saya memutuskan untuk melakukannya dan mencoba dan membangunnya.

Instruksi ini menunjukkan kepada Anda bagaimana saya membuatnya.

Ini berjalan pada arduino pro mini, pengisi daya adafruit powerboost 500, emmerich icr 18650nh-sp dan 5 LED putih. Kode membuat perubahan kecerahan LED secara acak. (40 detik pertama video adalah kecepatan 3x)

Langkah 1: Skema dan Perangkat Keras

Skema dan Perangkat Keras
Skema dan Perangkat Keras
Skema dan Perangkat Keras
Skema dan Perangkat Keras

Saya menggunakan perangkat keras berikut:

- PCB dengan LED Ice white dan resistor 220 Ohm.

- Arduino pro mini (saya menggunakan tiruan)

- Pengisi daya Adafruit Powerboost 500

- Emmerich Li-ion accu ICR-18650NH-SP

- Serat optik (dalam berbagai ukuran)

Langkah 2: Menjadikan PCB Hosting sebagai LED

Menjadikan PCB Hosting sebagai LED
Menjadikan PCB Hosting sebagai LED
Menjadikan PCB Hosting sebagai LED
Menjadikan PCB Hosting sebagai LED
Menjadikan PCB Hosting sebagai LED
Menjadikan PCB Hosting sebagai LED

Saya memotong strip PCB untuk menahan LED dan menggunakan pin LED untuk menyoldernya ke PCB utama.

Hubungkan semua katoda (-) ke GND, dan gunakan setengah dari pin untuk menyoldernya ke PCB utama.

Hubungkan semua anoda (+) ke resistor, dan dengan kabel ke arduino.

LED masing-masing harus terhubung ke salah satu port PWM berikut: 3, 5, 6, 9, 10, 11

Konyol saya membuat banyak kesalahan dengan proyek ini dan lupa untuk memeriksa port PWM yang benar, jadi saya harus mensolder ulang beberapa nanti. Diuji dengan Tinggi/Rendah jadi saya baru menyadarinya nanti.

Saya mulai dengan 7 LED, tetapi hanya ada 6 port PWM dan salah satu LED yang saya solder ulang mati. Saya hanya menyimpan 5 LED yang berfungsi dan tidak menggunakan yang ke-6.

Langkah 3: Membuat Kotak

Membuat Kotak
Membuat Kotak
Membuat Kotak
Membuat Kotak
Membuat Kotak
Membuat Kotak
Membuat Kotak
Membuat Kotak

Saya menggunakan Bosch GRO (seperti Dremel) dan bor untuk memotong bentuk baterai, tombol, port micro-usb, header dari Arduino dan serat optik. (gunakan masker debu!)

Rekatkan baterai ke kasing dengan 2 pita.

Sekrup yang digunakan untuk memasang papan Adafruit dan PCB.

Gesekan dari pembukaan dan penutupan merusak beberapa kabel. Saya harus menyoldernya kembali dan menggunakan lem untuk mencegahnya terjadi lagi.

Langkah 4: Mempersiapkan Dasi

Mempersiapkan Dasi
Mempersiapkan Dasi
Mempersiapkan Dasi
Mempersiapkan Dasi
Mempersiapkan Dasi
Mempersiapkan Dasi

Lepaskan jahitan dari bagian bawah dasi agar sesuai dengan lembaran karet.

Untuk menyembunyikan perangkat keras dan tetap dapat mengaksesnya jika diperlukan saya memutuskan untuk menggunakan ritsleting.

Saya tidak pandai dengan mesin jahit, jadi ibu saya yang manis memasang ritsleting di bagian belakang dasi.

Setelah itu selesai, saya merekatkan lembaran karet di dasi. Saya takut menggunakan terlalu banyak lem yang akan menjenuhkan kain dan terlihat dari depan, jadi saya mencoba meratakannya dan tidak menggunakan terlalu banyak. Secara keseluruhan terlihat bagus, tetapi di beberapa tempat saya melihat terlalu banyak atau terlalu sedikit lem, karena lem menembus kain atau tidak menempel dengan baik pada kain. Untungnya ini hanya nyaris tidak terlihat dari jarak dekat dalam cahaya terang.

Kotak dan dasi sekarang selesai. Saatnya merekatkan serat optik!

Langkah 5: Merekatkan Fiberoptics

Merekatkan Fiberoptics
Merekatkan Fiberoptics
Merekatkan Fiberoptics
Merekatkan Fiberoptics
Merekatkan Fiberoptics
Merekatkan Fiberoptics
Merekatkan Fiberoptics
Merekatkan Fiberoptics

Mainan itu memiliki satu bundel besar kabel serat optik yang mudah putus. Saya mencoba menempelkannya satu per satu pada awalnya, tetapi segera menyadari bahwa akan lebih baik untuk membuat bundel kecil dan menempelkannya ke LED sekaligus. Itu akan membuatnya lebih mudah untuk menjaganya tetap stabil sampai lemnya kering. Kacau LED pertama mencari tahu ini.

Pastikan untuk menggunakan lem transparan! Yang saya gunakan mengering sangat lambat dan lem cepat kering yang saya coba pada LED pertama berubah menjadi putih, membuat beberapa serat dari LED pertama kurang terang.

Saya merekatkan lembaran karet hitam kecil untuk mencegah kebocoran cahaya di bagian atas dan untuk memisahkan LED.

Salah satu spreinya mencegah penutupnya jadi saya menambahkan karet gelang untuk menjaga penutupnya tetap tertutup.

Langkah 6: Menempatkan Fiberoptics Melalui Dasi

Menempatkan Fiberoptics Melalui Dasi
Menempatkan Fiberoptics Melalui Dasi
Menempatkan Fiberoptics Melalui Dasi
Menempatkan Fiberoptics Melalui Dasi
Menempatkan Fiberoptics Melalui Dasi
Menempatkan Fiberoptics Melalui Dasi

Mulai dari bawah, saya membuat lubang dengan jarum dan memasukkan serat satu per satu. Setiap serat LED tersebar secara acak di seluruh dasi.

Saya menempelkan strip hitam di bagian belakang yang seharusnya sampai ke bagian dasi yang lebih kecil untuk menjaga berat kotak, tetapi setelah saya memasukkan semua kabel dan merasakan ketegangan kabel, saya memutuskan untuk menempelkannya. segala sesuatu untuk dasi adalah ide yang lebih baik dan memotong strip.

Karena kabel serat optik dari mainan itu sangat pendek, sulit untuk memasangnya di seluruh dasi. Saya terbatas dalam memposisikan kotak dan kesulitan membuat semuanya rata seperti yang saya inginkan.

Langkah 7: Merekatkan Fiberoptics ke Dasi

Merekatkan Fiberoptics ke Dasi
Merekatkan Fiberoptics ke Dasi
Merekatkan Fiberoptics ke Dasi
Merekatkan Fiberoptics ke Dasi
Merekatkan Fiberoptics ke Dasi
Merekatkan Fiberoptics ke Dasi
Merekatkan Fiberoptics ke Dasi
Merekatkan Fiberoptics ke Dasi

Saya merekatkan semua kabel serat optik ke lembaran karet untuk mencegah kabel ditarik keluar dari lembaran karet dan untuk membuat dasi rata.

Untuk memastikan saya tidak merekatkan klem ke dasi saat memberi tekanan, saya meletakkan beberapa kertas di antaranya. Itu tidak terlihat bagus tetapi berfungsi dengan baik. Dan Anda tidak melihatnya saat ditutup.

Setelah lem mengering saya memotong kabel di bagian depan dan memotong sedikit lembaran karet tepat di atas kabel tertinggi, karena ikatannya agak terlalu panjang.

Foto dengan kemeja putih dibuat sebelum saya memotong bagian terakhir dari karet.

Langkah 8: Kode

Di bawah kode yang saya tulis untuk dasi.

Semua LED memiliki set "rata-rata" (sebenarnya bukan rata-rata tetapi kecerahan menengah).

Segera setelah mencapai rata-rata itu, ia akan memutuskan dengan peluang 3/4 untuk beralih ke kecerahan yang lebih rendah. Ini juga secara acak menetapkan kecerahan minimum baru, kecerahan maksimum, waktu tunggu untuk kecerahan minimum dan maksimum dan kecepatannya meningkat atau menurun setiap putaran (1-255) dari 5 nilai yang telah ditetapkan. Kemudian akan melakukan siklus sampai mencapai rata-rata lagi. Hanya 2 LED yang dapat berada dalam siklus tinggi secara bersamaan.

Setiap status diwakili oleh nilai bilangan bulat (1-7) yang menentukan apakah itu rata-rata rendah, rata-rata rendah, menunggu rendah, memperbarui, dll.

Untuk informasi tentang cara mengupload kode ke arduino, silakan lihat di www.arduino.cc

/* Starry Sky Tie * * Ini adalah skrip untuk secara acak memudarkan 5 LED dari rata-rata ke kecerahan yang lebih rendah * atau lebih tinggi dengan pengaturan acak yang lebih rendah, lebih tinggi dan pengaturan waktu * agar terlihat seperti langit berbintang saat digunakan dengan serat optik. * Dalam hal ini akan dilaksanakan seri. * * Peluang naik/turun = 1/4 naik, 3/4 turun, dengan maksimal 2 * naik hingga maksimal secara bersamaan. * * Rata-rata tetap sama. * Opsi minimum, maksimum, dan waktu berubah secara acak * dari 5 opsi setiap kali LED mencapai rata-rata lagi. * * Dibuat oleh Billy Jaspers, Mei 2019. *

/ Deklarasikan pin

int LED01 = 3; int LED02 = 5; int LED03 = 6; int LED04 = 9; int LED05 = 11;

// Variabel waktu

waktu lama saat ini tidak ditandatangani; waktu tunggu lama yang tidak ditandatangani[5]; unsigned long lastRound;

// Variabel LED

int brightMin [5] = { 10, 10, 10, 10, 10 }; // Kecerahan minimum int brightAvg [5] = { 200, 200, 200, 200, 200 }; // Kecerahan rata-rata int brightMax[5] = { 240, 240, 240, 240, 240 }; // Kecerahan maksimum int timeWaitLow[5] = { 1000, 1000, 1000, 1000, 1000 }; // Waktu tunggu int timeWaitAvg[5] = { 5000, 5000, 5000, 5000, 5000 }; // Waktu tunggu int timeWaitMax[5] = { 4000, 3000, 3000, 3000, 3000 }; // Waktu tunggu int increment[5] = { 2, 5, 4, 5, 2 }; // Peningkatan kecerahan int currentBright[5]= { 200, 230, 210, 210, 235 }; // Kecerahan saat ini

// Kemungkinan Variabel LED

int brightMinPos[5] = { 5, 20, 40, 5, 20 }; // Kemungkinan kecerahan minimum int brightMaxPos[5] = { 240, 245, 230, 225, 245 }; // Kemungkinan kecerahan maksimum int timeLowPos[5] = { 3000, 5000, 4000, 2000, 1000 }; // Waktu tunggu pada kemungkinan kecerahan rendah int timeHighPos[5] = { 3000, 1000, 500, 2000, 4000 }; // Waktu tunggu pada kemungkinan kecerahan tinggi int timeAvgPos[5] = { 3000, 5000, 4000, 7000, 8000 }; // Waktu tunggu rata-rata kemungkinan kecerahan int incrementPos[5] = { 2, 4, 5, 3, 1 }; // peningkatan kemungkinan kecerahan

// Variabel

bool startup = benar; // Apakah pengaturan awal perlu dimulai?

// Variabel terarah

/* 0 = Menunggu Rata-rata 1 = Rata-rata ke Rendah 2 = menunggu Rendah 3 = Rendah ke Rata-rata 4 = Rata-rata ke Maks 5 = menunggu di Maks 6 = Tinggi ke Rata-rata 7 = Memperbarui variabel*/ int statusLED[5] = { 0, 0, 0, 0, 0 }; int jumlahHighLED = 0; int refreshRate = 50; bool statusWaiting[5] = { salah, salah, salah, salah, salah}; // Apakah Led menunggu?

// Variabel acak

nomor acak panjang; // Panjang untuk menyimpan nomor acak long randomNumberTwo; // Panjang untuk menyimpan nomor acak kedua

// penghitung

int saya = 0; // Penghitung untuk loop utama

batalkan pengaturan() {

Serial.begin (115200); // Mulai serial randomSeed(analogRead(A0)); // Setel biji acak

// Deklarasikan keluaran

pinMode (LED01, OUTPUT); pinMode (LED02, OUTPUT); pinMode (LED03, OUTPUT); pinMode (LED04, OUTPUT); pinMode (LED05, OUTPUT); }

// Tulis data ke LED

void writeToLED(){ analogWrite(LED01, currentBright[0]); analogWrite(LED02, currentBright[1]); analogWrite(LED03, currentBright[2]); analogWrite(LED04, currentBright[3]); analogWrite(LED05, currentBright[4]); }

// Lingkaran utama

void loop() { if (startup){ // Pengaturan startup lastRound = milis(); // Set lastRound untuk boot writeToLED(); // Tulis data awal ke LED startup = false; // Matikan startup } currentTime = milis(); // Setel waktu saat ini

if (currentTime - lastRound >= refreshRate){

for (i=0;i<5;i++){ if (statusLED == 7){ // -7- Memperbarui Led randomNumber = random(5); brightMin = brightMinPos[randomNumber]; // Tetapkan nilai acak untuk kecerahan minimum randomNumber = random(5); brightMax = brightMaxPos[randomNumber]; // Tetapkan nilai acak untuk kecerahan maksimum randomNumber = random(5); timeWaitLow = timeLowPos[randomNumber]; // Tetapkan nilai acak untuk waktu tunggu rendah randomNumber = random(5); timeWaitMax = timeHighPos[randomNumber]; // Tetapkan nilai acak untuk waktu tunggu yang tinggi randomNumber = random(5); timeWaitAvg = timeAvgPos[randomNumber]; // Tetapkan nilai acak untuk waktu tunggu rata-rata randomNumber = random(5); increment = incrementPos[randomNumber]; // Tetapkan nilai acak untuk nilai kenaikan randomNumber = random(2); // Tetapkan nilai acak untuk arah randomNumberTwo = random(2); // Tetapkan nilai acak untuk arah if (randomNumber == 1 && randomNumberTwo == 0 && quantityHighLED = brightAvg){ statusLED = 0; // Jika pada titik terendah: Pergi ke Waiting Avg }else{ currentBright = currentBright+increment; // Lain: Kecerahan Lebih Tinggi } }else if (statusLED == 2){ // -2- Menunggu Rendah if (!statusMenunggu){ // Jika tidak menunggu: waitingTime = milis(); // Setel status waktu tungguWaiting = true; // Mulai menunggu }else if(statusWaiting && currentTime-waitingTime >= timeWaitLow){ // Jika waiting AND timeWaitAvg telah berlalu: statusWaiting = false; // Berhenti menunggu statusLED = 3; // Setel statusLed ke Menunggu pembaruan } }else if (statusLED == 1){ // -1- Menjadi Rata-rata ke Rendah if (currentBright <= brightMin){ statusLED = 2; // Jika pada titik terendah: Pergi ke Waiting Low }else{ currentBright = currentBright-increment; // Lain: Turunkan Kecerahan } }else if (statusLED == 6){ // -6- Menjadi Maks ke Rata-rata if (currentBright = timeWaitMax){ // Jika menunggu DAN waktuTunggu telah berlalu: statusMenunggu = false; // Berhenti menunggu statusLED = 6; // Setel statusLed ke Menunggu pembaruan } }else if (statusLED == 4){ // -4- Menjadi Rata-rata ke Maks if (currentBright >= brightMax){ statusLED = 5; // Jika pada titik terendah: Pergi ke Waiting High }else{ currentBright = currentBright+increment; // Lain: Kecerahan Lebih Tinggi } }else if (statusLED == 0){ // -0- Menunggu Rata-rata if (!statusMenunggu){ // Jika tidak menunggu: waitingTime = milis(); // Setel status waktu tungguWaiting = true; // Mulai menunggu }else if(statusWaiting && currentTime-waitingTime >= timeWaitAvg){ // Jika waiting AND timeWaitAvg telah berlalu: statusWaiting = false; // Berhenti menunggu statusLED = 7; // Atur statusLed ke Menunggu pembaruan } } } i=0; putaran terakhir = mili(); // Atur kapan putaran terakhir selesai. tulisToLED(); // Tulis semua data ke LED } }

Langkah 9: Produk Akhir

Image
Image
Produk akhir
Produk akhir
Produk akhir
Produk akhir

Saya pikir itu berhasil dengan baik. Dasi tidak terlalu tebal, kaku, panjang atau berat dan efek bintang terlihat luar biasa.

Direkomendasikan: