Mundarija:
- 1 -qadam: materiallarni yig'ish
- 2 -qadam: vaznni oshirish
- 3 -qadam: Elektron korpusini qurish, 1 -qadam
- 4 -qadam: Elektron korpusini qurish, 2 -qadam
- 5 -qadam: elektronika qo'shish
- 6 -qadam: vaznli tayanch
- 7 -qadam: NeoPixel Halo Ring
- 8 -qadam: Kodlar va testlar
- 9 -qadam: Katta final
Video: HALO: Handy Arduino lamp Rev1.0 W/NeoPixels: 9 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:27
Bu ko'rsatmada men sizga HALO yoki Handy Arduino lamp Rev1.0 ni qanday qurishni ko'rsataman.
HALO - oddiy chiroq, Arduino Nano tomonidan quvvatlanadi. U taxminan 2 dyuymdan 3 dyuymgacha bo'lgan oyoq iziga ega va o'ta barqarorlik uchun yog'ochdan yasalgan taglikka ega. Moslashuvchan bo'yin va 12 ta super yorqin NeoPixel har qanday sirtdagi har bir detalni osongina yoritishga imkon beradi. HALO-da har xil yorug'lik rejimlarida o'tish uchun ikkita tugma mavjud, ulardan 15 tasi oldindan dasturlashtirilgan. Arduino Nano protsessor sifatida ishlatilgani uchun uni qo'shimcha funktsiyalar bilan qayta dasturlash imkoniyati mavjud. Yagona potentsiometr rejimning yorqinligi va/yoki tezligini sozlash uchun ishlatiladi. Oddiy metall konstruktsiya HALO -ni har qanday ustaxonada ishlatishga yaroqli, juda bardoshli chiroqqa aylantiradi. Foydalanish qulayligi Nano samolyotining quvvat regulyatori bilan to'ldiriladi, shuning uchun HALO -ni USB orqali yoki orqa tarafdagi standart 5 mm barrelli raz'em orqali quvvatlantirish mumkin.
Men umid qilamanki, yaqin kelajakda ko'p odamlar bu lampalardan foydalanadilar, chunki bu dizayn bilan ochiladigan imkoniyatlar juda ko'p. Iltimos, mikrokontrollerlar tanlovida ovoz bering, agar sizga bu yoqsa yoki uni biron bir tarzda foydali deb topsangiz, men buni juda qadrlayman.
Bu ko'rsatmaga kirishdan oldin, men barcha izdoshlarimga va mening loyihalarim haqida sharh bergan, yoqtirgan yoki ovoz bergan har bir kishiga qisqa rahmat aytmoqchiman. Sizlarga rahmat, mening "Karton" ko'rsatgichim katta muvaffaqiyatga erishdi va men hozir yozuvchilarning 100 ga yaqinini yozganimda, menimcha, bu katta bosqich. Men Ible -ni qo'yganimda, sizdan bo'lgan barcha yordamni juda qadrlayman va agar u haqida gap ketsa, men sizsiz bugun men bo'lmagan bo'lardim. Bu so'zlar bilan, barchangizga rahmat!
QAYD: Ushbu yo'riqnomada qalin harflar bilan yozilgan iboralar mavjud. Bu har bir qadamning muhim qismlari va ularni e'tiborsiz qoldirib bo'lmaydi, bu men baqirganim yoki qasddan qo'pollik qilayotganim emas, men nima qilish kerakligini yaxshiroq ta'kidlash uchun yangi yozish texnikasini sinab ko'raman. Agar sizga bu yoqmasa va qadamlarimni qanday yozishni xohlagan bo'lsam, izohlarda menga xabar bering, men eski uslubimga qaytaman.
1 -qadam: materiallarni yig'ish
Buni necha marta aytishim kerak? Har doim kerakli narsaga ega bo'ling va siz oxirigacha biror narsa qura olasiz.
Eslatma: Ulardan ba'zilari sheriklik havolalaridir ("al" belgisi bilan belgilangan), agar siz ular orqali sotib olsangiz, sizga hech qanday qo'shimcha haq to'lamasdan, men kichik chegirma olaman. Agar siz havolalar orqali sotib olsangiz, rahmat
Qismlar:
1x Arduino Nano Nano - al
1x 10k aylanadigan potansiyometr 5 to'plamli 10k potensiometr - al
1x 5 mm bochka uyasi (meniki qovurilgan Arduino Uno -dan qayta ishlangan) Ayol bochkasi (5 dona) - al
2 ta 2-pinli lahzali tugmalar 10 to'plamli SPST tugmachalari-al
60 LED/metrli 12x NeoPixel (har qanday ekvivalenti, masalan, WS2812B ishlaydi) Adafruit NeoPixels
0,5 mm alyuminiy varaq
Eski egiluvchan zajigalka egiluvchan bo'yin
"Stick and Click" LED shkafining yuqori qopqog'idagi halqa LED shkafi yoritgichi - al
1/4 dyuymli kontrplakning kichik varag'i
Og'ir, yassi metall og'irligi (taxminan) 1,5 "dan 2,5" gacha.25"
Yopiq yadroli elektr sim
Asboblar:
Issiq yopishtiruvchi qurol va yopishtiruvchi
Lehimlash temir va lehim
Simsiz elektr burg'ulash va turli xil burilishli bitlar
X-akto pichog'i (yoki xizmat pichog'i)
Tel -chiziqlar
Pense
Tel -kesgichlar
Og'ir yuk qaychi
Agar sizda tekis metall og'irligi bo'lmasa, sizga quyidagilar kerak bo'ladi:
1 ta rulonli arzon lehim (siz lehimlash uchun ishlatadigan narsalar emas) Arzon qo'rg'oshinsiz lehim
Spirtli sham (yoki Bunsenli burner)
Qattiq po'latdan yasalgan kichik idish, siz uni buzishga qarshi emassiz (yoki agar sizda bo'lsa, u erda kichik krujka).
Belgilangan idish/krujka uchun shtativ (men o'zimni 12 o'lchovli po'lat simdan yasaganman)
Loydan yasalgan idish (qozon ostiga tushadigan narsalardan biri)
Bir oz alyumin folga
QAYD: Agar sizda payvandlash to'plami yoki 3D printer bo'lsa, sizga bu erda sanab o'tilgan barcha vositalar kerak bo'lmasligi mumkin.
2 -qadam: vaznni oshirish
Bu juda qiyin qadam va siz buni juda ehtiyotkorlik bilan bajarishingiz kerak. Agar sizda og'ir metalli og'irlik yoki tekis neodim magnit 2,75 dyuymdan 1,75 dyuymga 0,25 dyuymga ega bo'lsa, men uni ishlatishni maslahat berardim (va magnit hatto chiroqni metall yuzalarga yon tomonga joylashtirishga imkon beradi!).
Ogohlantirish: Men siz tomondan hech qanday shikastlanish uchun javobgar emasman, shuning uchun sog'lom fikrdan foydalaning
Bundan tashqari, buni beton yuzada bajaring, agar u biroz yonib ketsa, bunga qarshi emassiz (bu faqat ehtiyot chorasi). Menda bu jarayon uchun rasmlar yo'q, chunki kamera menga chalg'itishi mumkin edi.
Birinchidan, alyumin folga yoki ho'l loydan, taxminan 2 3/4 dyuymdan 1 3/4 dyuymgacha 1/4 dyuymli ichki o'lchamdagi kichik qolip yasang. Bu menikiga o'xshash ovoid shakli yoki to'rtburchak bo'lishi mumkin. Ko'p qatlamli folga yoki qalin loy qatlamlaridan foydalaning.
Mog'orni keramik idishga joylashtiring va qolipni ham, laganda ham sovuq suv bilan to'ldiring.
Yonmagan alkogolli shamni/bunsenli pechni oling va po'lat idishni/krujkani shtativga qo'ying, shunda olov idishning o'rtasini isitadi (yonganda). Olovni yoqishdan oldin, qo'lda kamida 2 ta pens yoki metallga ishlov beradigan qisqich borligiga ishonch hosil qiling.
Keyingi qadamlarni bajarayotganda charm qo'lqop, uzun qisma, uzun shim, yopiq poyabzal va ko'zni himoya qilish yaxshidir
G'altakning bir nechta arzon lehimini o'rang va sindirib, po'lat idishga soling, keyin burnerni yoqing. Bobin to'liq eriguncha kutib turing, so'ngra lehimning qolgan qismini idishga o'rtacha tezlikda berishni boshlang. Agar lehimning ichida rozin bo'lsa, u o'z -o'zidan issiqda yonib ketishi mumkin, bu esa och sariq olov va qora tutun chiqarishi mumkin. Xavotir olmang, bu men bilan bir necha marta sodir bo'lgan va bu normal holat.
Lehimni oxirigacha erimaguncha idishga berishni davom ettiring.
Yonayotgan rozin alangalari butunlay o'chib ketishiga yo'l qo'ying va idishni ushlab olish uchun qisqichlardan/qisqichlardan foydalaning va ehtiyotkorlik bilan olovda ushlab turing.
Ishonch hosil qilingandan so'ng, barcha lehim to'liq suyultiriladi va yaxshi issiq haroratda, uni olovdan tez va ehtiyotkorlik bilan chiqarib, qolipga to'kib tashlang. Suvning bir qismi bug'langanda, qolgan qismi qolipdan eritilgan lehim bilan almashtirilganda, baland ovozda xirillash va bug 'eshitiladi.
Lehimga sovushini berib, burnerni o'chiring/shamingizni o'chiring va po'lat idishni sovutish uchun xavfsiz joyga qo'ying. Sovutishni tezlashtirish va uni yanada qattiqlashishi uchun siz sovutish lehimiga sovuq suv quyishingiz mumkin. (Sovuq suv tashqi tomondan ichkaridan tezroq soviydi, bu esa ichki kuchlanishni keltirib chiqaradi, bu esa metallni qattiqroq va qattiqroq qiladi, shahzoda Rupertning tomchisiga o'xshaydi.) Siz ham metall idishingiz ustidan suv oqizishingiz mumkin, lekin bu uning mo'rtlashishiga olib keladi. ayniqsa, bir necha marta bajarilsa.
Lehim to'liq sovigandan so'ng (xavfsiz bo'lish uchun taxminan 20 daqiqa), uni folga qolipidan olib tashlang.
Meniki bir tomondan boshqasiga qaraganda qalinroq bo'lib qoldi, shuning uchun men bolg'a yordamida uni tekisladim va qirralarini tekisladim (natijada siz rasmda ko'rgan shaklga egasiz). Keyin uni jilo qilish uchun oqayotgan suv ostida engil zımparaladim va keyinroq chetga surdim.
3 -qadam: Elektron korpusini qurish, 1 -qadam
Bu qobiq uchun qismlar bo'lib, ular nanoni joylashtiradi, interfeysni o'rnatadi va asosan HALO chiroqni birlashtiradi. Men o'zimning 0,5 mm alyuminiy va issiq elim bilan ishladim, lekin agar sizda 3D printer bo'lsa (men do'konim uchun bir muddat olmoqchi bo'ldim) men Tinkercad -da. STL versiyasini yaratdim, uni men sizga biriktirdim. yuklab olish Menda printer yo'qligi sababli, men hamma narsani to'g'ri chop etishini tekshirish uchun modelni sinovdan o'tkaza olmadim, lekin o'ylaymanki, agar siz kesgichingizga mos keladigan qo'llab -quvvatlovchi tuzilmalarni qo'shsangiz yaxshi bo'ladi. Agar siz biroz boshqacha dizayn yoki estetikaga muhtoj bo'lsangiz yoki xohlasangiz, manba faylini nusxalashingiz va tahrirlashingiz mumkin.
O'lchamlari, aslida, men elektronikaning o'lchamidan emas, balki lehimdan yasalgan metall og'irligidan olingan, lekin baribir juda yaxshi chiqdi va o'lchamlari juda maqbul.
Rasmlarda men yozadigan narsadan biroz farqli ish tartibi tasvirlangan, chunki men asl uslubim natijalariga asoslangan takomillashtirilgan usulni o'ylab topganman.
Agar siz men kabi plastmassadan yig'ayotgan bo'lsangiz, nima qilishingiz kerak:
1 -qadam: yuz plitalari
Taxminan 1,5 "uzunlik va 3" kenglikdagi ikkita bir xil yarim doira shaklini kesib oling. (Men o'z qo'llarimni bo'shatdim, shuning uchun ular juk qutisining old qismiga o'xshaydi).
Ikkita plastinkadan birida tugmalar va potansiyometr uchun uchta teshik oching. Meniki har birining diametri 1/4 dyuym edi. Bular har qanday tartibda bo'lishi mumkin, lekin men potentsiometrimni o'rtada biroz ko'tarilganini afzal ko'raman, har ikki tomonidagi tugmachalar teng burchakli uchburchakni tashkil qiladi. Burg'ilash paytida men kerakli o'lchamdagi bitga borishdan oldin har doim kichik uchuvchi teshik qilaman, bu teshiklarni markazlashtirishga yordam beradi va ularni biroz toza qiladi.
2 -qadam: Kemerli qopqoq
Yuz plitalaridan birining egri chizig'iga mos kelish uchun alyuminiy bo'lagini egib oling va qirralarning to'g'ri uzunligini belgilang.
Ushbu uzunlikdagi va kengligi taxminan 2 dyuymli chiziqni kesib oling va uni har ikki tomonning yuz plitalarining egri shakliga mos keladigan yoy shaklida hosil qiling.
Burchakning yuqori qismidagi markaziy nuqtani toping va zajigalka egiluvchi bo'yniga mos keladigan teshikni burang. Men orqa tarafdagi g'ilofni siljitdim, chunki chiroq ishlatilganda bo'ynini oldinga egib qo'yadi, shuning uchun men bunga ozgina qarama -qarshilik qo'shishni xohlardim. Mening egiluvchan bo'ynim diametri 1/4 dyuymdan biroz kattaroq edi, shuning uchun men 1/4 dyuymli bitni ishlatardim (men egalik qiladigan eng katta burilish uchi 4/4 dyuymdan past) va ehtiyotkorlik bilan burchak va burama teshikni bo'yniga to'g'ri kelguncha burg'ulash uchun burg'ulang.
Endi bizda qobiqning qismlari bor, keyingi qadam - elektronikani qo'shish va uni birlashtirish!
4 -qadam: Elektron korpusini qurish, 2 -qadam
Endi biz tugmachalarni va potansiyometrni qo'shamiz va hammasini bir joyga qo'yamiz.
1 -qadam: tugmalar va murvat
Olti burchakli yong'oqlarni tugmachalardan va potansiyometrdan chiqarib oling. Yong'oq ostida tutuvchi halqa qurilmasi bo'lishi kerak, uni joyida qoldiring.
Har bir komponentni o'z teshigidan o'tkazing, so'ngra yong'oqlarni burab, har birini joyiga mahkamlang. Yong'oqlarni har bir komponent to'liq xavfsiz ekanligiga ishonch hosil qiling.
Qadam 2. Moslashuvchan bo'yin
Moslashuvchan bo'ynini egri bo'lakning yuqori qismidagi teshikdan o'tkazing. Issiq yopishtiruvchi yoki payvandlash (agar sizda uskunangiz bo'lsa), bo'ynini mahkam o'rnida.
Agar men kabi issiq elimdan foydalansam, keyinchalik yopishib qolmasligi uchun uni katta tomonga yoyilgan ko'p qirrali elim bilan yopishtirgan ma'qul.
3 -qadam: qobiqni yig'ish (3D bosilgan qobiqqa taalluqli emas)
Payvand chokidan yoki issiq elimdan foydalanib, old va orqa yuz plitalarini kamar qopqog'idagi joylariga mahkamlang. Menga elim yopishishi uchun bir necha marta urinish kerak edi, va avvalgidek, bo'ynining ikkala tomoniga ham bo'yniga o'xshab ko'p yopishtiruvchi vositani qo'llash kerak. Yelim bilan qoplangan maydon qanchalik katta bo'lsa, u yaxshi yopishib qoladi.
Endi bizda qobiq bor, biz barcha sxemalarni qo'shishga o'tamiz.
5 -qadam: elektronika qo'shish
Va bu erda qiziqarli qism: Lehimlash! So'nggi haftalarda men chindan ham lehimlashdan charchadim, chunki men yaqinda qo'yadigan boshqa loyihani sinab ko'rish va tugatish uchun shunday qilyapman (robot displeyimning radikallashtirilgan yangi versiyasiga e'tibor bering). platformalar), natijada men bitta temirni vayron qildim va boshqasini oldim … Baribir, bu erda lehimlanadigan narsa yo'q, shuning uchun bu juda oddiy bo'lishi kerak.
Eslatma: Agar sizning Nano -da pin sarlavhalari bo'lsa, men ularni loyihadan ajratishni tavsiya qilaman, ular faqat to'siq bo'ladi.
Yuqoridagi rasmlarda diagramma bor, agar xohlasangiz, unga amal qilishingiz mumkin.
1 -qadam: interfeys
Har bir kalitdan potentsiometrning yon piniga bitta pimdan simni lehimlang. Xuddi shu yon pimdan simni Nanodagi topraklama piniga lehimlang.
Potansiyometrning markaziy pinidan Nanodagi A0 ga simni lehimlang.
Nano ustidagi A1 ga ulanmagan ulagichdan simni lehimlang.
Boshqa kalitga ulanmagan pimdan simni Nanodagi A2 ga lehimlang.
Eslatma: Qaysi kalit muhim emas, siz ularni kodda osongina o'zgartirishingiz mumkin, bundan tashqari, bitta kalit boshqasiga qarama -qarshi.
Moslashuvchan bo'ynidan 4 dyuym uzunroq uzunlikdagi simni kesib oling va ikkala tomonini ham echib oling. Sharpie -dan foydalanib, bir tomonni bitta chiziq bilan belgilang.
Potansiyometrning oxirgi ulanmagan yon piniga simni lehimlang, simning oxirgi ulanmagan uchi bilan birga oxirgi pastki qavatdagi simning uchini burang.
Lehim bu Nano -da 5V ga ulandi.
2 -qadam: Displey va quvvat simlari
Moslashuvchan bo'ynidan 4 dyuym uzunlikdagi 2 uzunlikdagi simni kesib oling va ikkala uchini ham echib oling.
Sharpie -dan foydalanib, har bir simning uchini belgilang, bitta simni 2 chiziqli va bittasini 3.
Nanodagi raqamli pin 9 ga 2 chiziqli simni lehimlang.
5 mm uzunlikdagi raz'emda simni markaziy pimdan (musbat) Nanodagi Vinga lehimlang.
Boshqa simni bochkaning yon piniga (erga/manfiga) lehimlang.
Uzun simni bochkaning yon pimidagi sim bilan 3 chiziq bilan burang.
Bu simlarni Nano ustidagi ochiq GND piniga lehimlang.
Agar kerak bo'lsa, ulanishni elektr lenta yoki issiq elim bilan ajratib oling.
3 -qadam: Teshiklarni kesish (faqat metall versiyada, agar siz qopqog'ini 3D bosgan bo'lsangiz, yaxshi bo'lishi kerak)
Matkap uchi va X-akto yoki yordamchi pichoq yordamida Nano USB portining qopqog'ining yon tomoniga ehtiyotkorlik bilan teshik qiling.
Qopqoqning orqa qismidagi barrel uyasi yuzining kattaligiga yaqinroq bo'lgan boshqa teshikni yarating, yaxshisi USB portining teshigiga qarama -qarshi tomonga yaqinroq.
4 -qadam: komponentlarni o'rnatish
Uch uzun simni egiluvchi bo'ynidan va boshqa tomondan o'tkazing.
Ko'p miqdorda issiq elimdan foydalanib, bochkani joyiga mahkamlang, shunda pinlar qopqog'ining yuqori tomoniga qaraydi.
Yana ko'p miqdorda issiq elim yordamida Nano -ni joyiga o'rnating, reset tugmasi pastga qaragan va USB porti uyasiga joylashtirilgan. Men bochka va nano o'rtasida "issiq yopishtiruvchi ko'prik" qildim, bu esa har birining o'rnini mahkam ushlab turishiga olib keldi.
Endi biz og'irlik bazasini yaratishga o'tamiz!
6 -qadam: vaznli tayanch
Men o'zimning lehimlash qobiliyatimga aminman va buni puxta rejalashtirganman, shuning uchun men kodni sinab ko'rishdan oldin bazani qo'shdim. Agar siz o'z mahoratingizga ishonchingiz komil bo'lmasa, men bu qadamni o'tkazib yuborishni va hamma narsa ishlayotganini bilganingizda, oxiriga qaytishni taklif qilaman.
Agar siz 3D bosma versiyasini yaratgan bo'lsangiz, siz birinchi bosqichni o'tkazib yuborib, ikkinchisiga o'tishingiz mumkin.
1 -qadam: yog'och
1/4 dyuymli kontrplakdan, taxminan 3 dyuymdan 2 dyuymgacha bo'lgan tayanchni kesib oling.
Qirralarni tekislash va burmalarni olib tashlash uchun ularni qumlang.
2 -qadam: vazn
Birinchidan, biz tanlagan metall qopqoqning chetiga magnit, metall yoki maxsus lehim mos kelishiga qarab, o'zingiz xohlagan og'irlikni tanlang. Meniki bir tomondan biroz kattaroq edi, shuning uchun men yon tomondan X-akto pichog'i bilan bir oz oldirdim. Agar sizniki buni qila oladigan tur bo'lmasa, siz boshqa taglik dizayni bilan aylanishingizga to'g'ri keladi.
Sizning vazningizni kontrplak bo'lagining o'rtasiga yoki 3D bosma dizaynda, men shu maqsad uchun mo'ljallangan markaziy "laganda" maydoniga issiq elim bilan yopishtiring.
3 -qadam: tayanch
Metall qopqog'ini og'irligi ustiga qo'ying va uni yog'och taglikka joylashtiring. (3D bosma dizaynda, uni oldindan tayyorlangan oluklarga joylashtiring.)
Og'irligi hech qanday elektronikaga xalaqit bermasligiga ishonch hosil qiling
Baza mustahkam bo'lishi uchun issiq elimdan foydalaning. Aniq ulanishni ta'minlash uchun etarlicha foydalaning.
Endi biz boshqaruv qutisini to'liq tayyorlaganimizdan so'ng, chiroqlarga o'tamiz.
7 -qadam: NeoPixel Halo Ring
Bu chiroq nomining ilhom manbai, bu yorug'lik manbai sifatida biz foydalanadigan NeoPixel halqa halqasi. Agar xohlasangiz, bu qismni har qanday NeoPixel yoki alohida -alohida LED halqasi bilan o'zgartirish yoki almashtirish mumkin.
1 -qadam: Lehimlash
NeoPixels 12 LED uzunlikdagi chiziqni kesib oling.
3 chiziqli egiluvchi bo'ynidan GND pinini lehimlang.
Din pinini 2 qatorli simga lehimlang.
5V pinni 1 qatorli simga lehimlang.
2 -qadam: Chiroqlarni sinab ko'ring
Adafruit_NeoPixel kutubxonasini yuklab oling va o'rnating va "strandtest" kodini oching.
Doimiy PIN kodni 9 ga o'zgartiring.
Ip aniqlangan chiziqni 12 ta LED uchun sozlangan qilib o'zgartiring.
Kodni Nano -ga yuklang va barcha LEDlarning to'g'ri ishlashini tekshiring.
Barcha tasma ishlamaguncha, noto'g'ri LEDlarni ishchi lampalar bilan almashtiring.
3 -qadam: qo'ng'iroq qiling
Yuqori tayoqchani "Stick and Click" chiroqidan oling va ichki halqadagi vintlardek mahkamlang.
Ipdan simlar uchun chetidan kichik bir chuqurchani kesib oling.
NeoPixel -ning orqa qismidagi yopishqoq lenta uchun qopqog'ini (agar mavjud bo'lsa) echib oling va ularni halqaning ichiga yopishtiring, chiziqning har ikki uchini biz yasagan joyga to'g'ri joylashtiring.
Ipning chetlarini mahkam yopish uchun issiq elimdan foydalaning
Yelim to'liq sovigandan so'ng, piksellarni yana tekshiring. Bu issiqlik va kıvrılma haqida hech kimning murakkab emasligiga ishonch hosil qilish uchun (meniki bir nechtasi edi).
4 -qadam: o'rnatish
1/4 dyuymli yog'ochdan, halqaning balandligi va kengligidan 1/2/3 barobar kichik ikkita to'rtburchaklar kesib oling.
Ularni halqadan simlarning har ikki tomoniga parallel ravishda yopishtiring, bo'shliqni to'ldiring va orasidagi simlarni butunlay elim bilan yoping.
Ehtiyotkorlik bilan ortiqcha uzunlikdagi simni egiluvchi bo'yniga itaring, so'ngra yog'och bo'laklarini bo'ynining oxiriga yopishtiring, ko'p miqdorda elim ishlating va bo'shliqlarni ehtiyotkorlik bilan to'ldiring (bo'ynini yopishtirmasdan).
6 -qadam: tugatish
Agar siz xohlasangiz, uzukni bo'yashingiz va istalgan rangni o'rnatishingiz mumkin, men kumush qoplamani afzal ko'rardim, shuning uchun uzukka bosilgan logotipni yashirish uchun faqat Sharpie -dan foydalandim. Xuddi shu narsa chiroqning qolgan qismiga ham tegishli.
Endi biz oxirgi kodni tugatishga o'tamiz!
8 -qadam: Kodlar va testlar
Shunday qilib, endi biz faqat chiroqni dasturlashimiz va uni sinab ko'rishimiz kerak. Kodning joriy versiyasi (rev1.0) biriktirilgan, men bu kodni juda keng sinovdan o'tkazdim va u juda yaxshi ishlaydi. Men rev2.0 ustida ishlayapman, bu erda tugmalar tashqi uzilishlar sifatida konfiguratsiya qilingan, shuning uchun rejimlar o'rtasida osonroq almashish mumkin, lekin bu versiya xato va hali chiqarishga tayyor emas. Joriy versiya bilan siz tugmachani "Debounce" tsikli ishga tushguncha ushlab turishingiz va holat o'zgarishini taniy olmaysiz, bu "Dinamik" uzunroq tsikllarni bezovta qilishi mumkin. Quyida ba'zi tushuntirishlar yozilgan kod (yuklab olish mumkin bo'lgan versiyada bir xil tushuntirishlar mavjud).
#include #ifdef _AVR_ #include #endif
#PIN 9ni aniqlang
#aniq POT A0 #aniq BUTTON1 A1 #deftine BUTTON2 A2
// Parametr 1 = chiziqdagi piksellar soni
// Parametr 2 = Arduino pin raqami (ko'plari to'g'ri) // Parametr 3 = pikselli turdagi bayroqlar, kerak bo'lganda qo'shing: // NEO_KHZ800 800 KHz bitstream (NeoPixel mahsulotlarining ko'pchiligi WS2812 LEDli) // NEO_KHZ400 400 KHz (klassik) v1 '(v2 emas) FLORA piksellari, WS2811 drayverlari) // NEO_GRB piksellari GRB bitstream uchun ulanadi (ko'pchilik NeoPixel mahsulotlari) RGBW oqimi (NeoPixel RGBW mahsulotlari) Adafruit_NeoPixel halo = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800);
// Va endi, Adafruitdagi do'stlarimizdan xavfsizlik xabari:
// MUHIM: NeoPixelning yonish xavfini kamaytirish uchun 1000 uF kondansatör qo'shing
// pikselli quvvat manbai, birinchi piksel ma'lumotlariga 300 - 500 Ohm qarshilik qo'shing // va Arduino bilan birinchi piksel orasidagi masofani kamaytiring. // ulanishdan saqlaning.. agar kerak bo'lsa, avval GND ni ulang.
// O'zgaruvchilar
int tugmasiState1; int tugmasiState2; // kirish pinidan joriy o'qish int lastButtonState1 = LOW; // kirish pinidan oldingi o'qish int lastButtonState2 = LOW; int rejimi; // bizning chiroqlar rejimi 16 ta sozlamalardan biri bo'lishi mumkin (0 dan 15 gacha) int brightVal = 0; // yorqinlik/ tezlik, potensiometr tomonidan belgilanadi
// quyidagi o'zgaruvchilar uzun, chunki milisekundlarda o'lchangan vaqt, // tezda intda saqlanganidan kattaroq raqamga aylanadi. long lastDebounceTime = 0; // oxirgi marta chiqish pimi uzoq vaqt o'chirildi debounceDelay = 50; // chiqish vaqti; chiqish miltillovchi bo'lsa, o'sishi
bekor qilish () {
// almashtirish holatini mahalliy o'zgaruvchiga o'qing: int reading1 = digitalRead (BUTTON1); int o'qish2 = digitalRead (BUTTON2); // Agar tugmachalarning birortasi shovqin yoki bosish tufayli o'zgargan bo'lsa: if (reading1! = LastButtonState1 || reading2! = LastButtonState2) {// o'chirish taymerini resetDesounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// agar tugma holati bosish/chiqarish tufayli aniq o'zgargan bo'lsa: if (reading1! = buttonState1) {buttonState1 = reading1; // agar u o'zgartirilsa, uni o'qish sifatida o'rnating (buttonState1 == LOW) {// bular faol past kalitlar rejimi sifatida o'rnatiladi ++; agar (tartib == 16) {rejim = 0; }}} if (o'qish2! = buttonState2) {buttonState2 = o'qish2; agar (buttonState2 == LOW) {mode = mode - 1; agar (rejim == -1) {rejim = 15; }}}} // o'qishni keyingi safar loop pastbuttonState1 = o'qish1 orqali saqlang; lastButtonState2 = o'qish2; }
void getBright () {// potentsiometrni o'qish uchun bizning kodimiz 0 dan 255 gacha qiymat kiritadi. Ayrim rejimlarda yorqinlikni, boshqalarda esa tezlikni o'rnatish uchun ishlatiladi.
int potVal = analogRead (POT); brightVal = xarita (potVal, 0, 1023, 0, 255); }
// Mana bizning rang rejimlarimiz. Ulardan ba'zilari eng qiyin misoldan olingan, boshqalari esa asl.
// Nuqtalarni birin -ketin rang bilan to'ldiring (rangni tozalash, strandtestdan olingan)
void colorWipe (uint32_t c, uint8_t kuting) {uchun (uint16_t i = 0; i
// kamalak vazifalari (strandtestdan ham olingan)
bo'sh kamalak (uint8_t kutmang) {
uint16_t i, j;
uchun (j = 0; j <256; j ++) {uchun (i = 0; i
// Biroz boshqacha, bu kamalakni butun dunyo bo'ylab teng taqsimlaydi
void rainbowCycle (uint8_t kutish) {uint16_t i, j;
for (j = 0; j <256*5; j ++) {// g'ildirakdagi barcha ranglarning 5 tsikli uchun (i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, Wheel (((i * 256 / halo.numPixels ()) + j) & 255)); } halo.show (); kechikish (kutish); }}
// Rang qiymatini olish uchun 0 dan 255 gacha qiymat kiriting.
// Ranglar r - g - b - r ga qaytish. uint32_t g'ildirak (bayt WheelPos) {WheelPos = 255 - WheelPos; if (WheelPos <85) {halo. Color qaytish (255 - WheelPos * 3, 0, WheelPos * 3); } agar (WheelPos <170) {WheelPos -= 85; qaytish halo. Color (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; qaytish halo. Color (WheelPos * 3, 255 - WheelPos * 3, 0); }
bo'sh o'rnatish () {
// Bu Trinket 5V 16MHz uchun, agar siz Trinket #if (_AVR_ATtiny85_) ishlatmasangiz, bu uchta qatorni olib tashlashingiz mumkin, agar (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // PinMode (POT, INPUT) maxsus tugmachasining oxiri; pinMod (BUTTON1, INPUT_PULLUP); pinMod (BUTTON2, INPUT_PULLUP); pin rejimi (PIN, OUTPUT); Serial.begin (9600); // narsalarni tuzatish halo.begin (); halo.show (); // Barcha piksellarni "o'chirish" holatiga o'tkazing}
void loop () {
o'chirish ();
//Serial.println(rejimi); // ko'proq disk raskadrovka //Serial.println(lastButtonState1); //Serial.println(lastButtonState2);
agar (rejim == 0) {
getBright (); uchun (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (yorqinVal, yorqinVal, yorqinVal)); // barcha piksellarni oq rangga qo'ying} halo.show (); }; agar (rejim == 1) {getBright (); uchun (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (yorqinVal, 0, 0))); // barcha piksellarni qizil qilib belgilang} halo.show (); }; agar (rejim == 2) {getBright (); uchun (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, yorqinVal, 0))); // barcha piksellarni yashil rangga qo'ying} halo.show (); }; agar (rejim == 3) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, 0, brightVal)); // barcha piksellarni ko'k rangga qo'ying} halo.show (); }; agar (rejim == 4) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, yorqinVal, yorqinVal)); // barcha piksellarni cyan} halo.show () ga o'rnating; }; agar (rejim == 5) {getBright (); uchun (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (yorqinVal, 0, yorqinVal)); // barcha piksellarni binafsha/magenta} halo.show () ga o'rnating; }; agar (rejim == 6) {getBright (); uchun (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (yorqinVal, yorqinVal, 0))); // barcha piksellarni to'q sariq/sariq rangga qo'ying} halo.show (); }; if (mode == 7) {// endi getBright () dinamik rejimlari; colorWipe (halo. Rang (yorqinVal, 0, 0), 50); // Qizil}; agar (rejim == 8) {getBright (); colorWipe (halo. Rang (0, yorqinVal, 0), 50); // yashil}; agar (rejim == 9) {getBright (); colorWipe (halo. Color (0, 0, brightVal), 50); // Moviy}; agar (rejim == 10) {getBright (); colorWipe (halo. Color (yorqinVal, yorqinVal, yorqinVal), 50); // oq}; agar (rejim == 11) {getBright (); colorWipe (halo. Rang (yorqinVal, yorqinVal, 0), 50); // to'q sariq/sariq}; agar (rejim == 12) {getBright (); colorWipe (halo. Color (0, brightVal, brightVal), 50); // ko'k rang}; agar (rejim == 13) {getBright (); colorWipe (halo. Color (brightVal, 0, brightVal), 50); // binafsha/qirmizi}; if (mode == 14) {// oxirgi ikkitasi tezlikni boshqarish, chunki nashrida dinamik getBright (); kamalak (yorqinVal); }; agar (rejim == 15) {getBright (); kamalak aylanishi (yorqinVal); }; kechikish (10); // protsessorga biroz dam berishga ruxsat bering}
9 -qadam: Katta final
Va endi bizda ajoyib, juda yorqin kichkina chiroq bor!
Siz uni bu erdan o'zgartirishingiz yoki avvalgidek qoldirishingiz mumkin. Siz kodni o'zgartirishingiz yoki butunlay yangisini yozishingiz mumkin. Siz bazani kattalashtirib, batareyalarni qo'shishingiz mumkin. Siz fanat qo'shishingiz mumkin. Siz ko'proq NeoPixel qo'shishingiz mumkin. Bu bilan qilishingiz mumkin bo'lgan hamma narsalarning ro'yxati deyarli cheksizdir. Men "deyarli" deb aytaman, chunki men buni hali ham mini portal generatoriga aylantirish uchun texnikaga ega emasligimizga aminman (afsuski), lekin bunday narsalardan tashqari, sizning tasavvuringizning chegarasi (va qaysidir ma'noda, yaqinda topganimdek, sizning ustaxonangizdagi asboblar). Agar sizda asboblar bo'lmasa, bu sizni to'xtatmasin, agar siz haqiqatan ham biror narsa qilishni xohlasangiz, har doim yo'l bor.
Bu loyihaning bir qismi, men o'zimga (va qisman, dunyoga) men o'zimga foydali narsalar yasashim mumkinligini isbotlash uchun, hatto menda bor narsa eski va axlatdan yasalgan axlat yig'indisi bo'lsa ham. komponentlar va Arduino qutisi.
Men bu erdan ketaman, chunki menimcha, bu juda yaxshi chiqdi. Agar sizda takomillashtirish bo'yicha taklifingiz yoki usullarim haqida savolingiz bo'lsa, iltimos, quyida izoh qoldiring. Agar siz buni qilgan bo'lsangiz, rasmga oling, biz hammamiz ko'rishni xohlaymiz!
Agar sizga bu yoqsa, ovoz berishni unutmang!
Har doimgidek, bu "Xavfli portlovchi" ning loyihalari, uning hayotiy missiyasi: "Siz qurmoqchi bo'lgan narsani jasorat bilan qurish va boshqalar!"
Qolgan loyihalarimni bu erda topishingiz mumkin.
O'qiganingiz uchun tashakkur, va baxtli ish!
Tavsiya:
DIY SMART LED MATRIX (ESP8266 + WS2812 / NeoPixels): 7 qadam (rasmlar bilan)
DIY SMART LED MATRIX (ESP8266 + WS2812 / NeoPixels): Mana, men sizga ko'rsatishdan juda xursand bo'lgan loyiha bilan tanishdim. Bu DIY Smart LED matritsasi haqida, uni ko'rsatishga imkon beradi, masalan, YouTube statistikasi, Smart Home statistikasi, harorat, namlik, oddiy soat bo'lishi mumkin
Arduino Gemma va NeoPixels bilan oson abadiy oyna: 8 qadam (rasmlar bilan)
Arduino Gemma va NeoPixels bilan oson abadiy oyna: Mana! Sehrli va aldamchi oddiy cheksiz oynaga chuqur qarang! LEDlarning bitta chizig'i cheksiz ko'zgu effektini yaratish uchun oynali sendvichda ichkariga porlaydi. Ushbu loyiha mening kirishim Arduinning ko'nikmalari va texnikasini qo'llaydi
Rs ichida oddiy ovoz kuchaytirgichini qanday yasash mumkin. 100 ($ 2) Handy Speaky deb nomlangan: 6 qadam (rasmlar bilan)
Rs ichida oddiy ovoz kuchaytirgichini qanday yasash mumkin. 100 $ (2 $) Handy Speaky deb nomlangan: Bugungi loyihada men sizga LM386 asosida eng oddiy mini tovush kuchaytirgichini qanday qilishni ko'rsataman. Bu ovoz kuchaytirgichni ishlab chiqarish juda oson, bundan tashqari, u juda ixcham, 6-12 voltli kuchlanishli bitta quvvat manbai bilan ishlaydi
Har qanday loyiha uchun eng yaxshi RGB LEDlari (WS2812, Aka NeoPixels): 6 qadam (rasmlar bilan)
Har qanday loyiha uchun eng yaxshi RGB LEDlari (WS2812, Aka NeoPixels): Biz LEDlar bilan ishlayotganimizda, biz ularning holatini (yoqish/o'chirish), yorqinligi va rangini boshqarishni yaxshi ko'ramiz. Bu borada juda ko'p turli xil usullar mavjud, lekin ularning hech biri WS2812 RGB LED kabi ixcham echim emas. 5 mm x 5 mm o'lchamdagi kichik paketida
Handy Dandy chirog'i: 3 qadam (rasmlar bilan)
Handy Dandy Chiroq: Siz har doim bitta -ikkita sumkaga "shirinliklar" solingan elektronika havaskorlaridan birisiz? Men bu chiroqni xonamdagi ehtiyot qismlardan yasadim. Nima uchun? Chunki yakshanba kuni tushdan keyin edi. Shuning uchun loyihaning umumiy vaqti bir soatdan kam edi