Mündəricat:

Arduino Fireflies: 11 addım (şəkillərlə birlikdə)
Arduino Fireflies: 11 addım (şəkillərlə birlikdə)

Video: Arduino Fireflies: 11 addım (şəkillərlə birlikdə)

Video: Arduino Fireflies: 11 addım (şəkillərlə birlikdə)
Video: ME 2011 - Arduino LED - Flashing LED at 2Hz 2024, Iyul
Anonim
Image
Image
Ehtiyacınız olacaq
Ehtiyacınız olacaq

Pensilvaniyada yazda səbirsizliklə gözlədiyim şeylərdən biri də mənim həyətimdəki atəşböcəklərdir. Bu yaxınlarda bu sadə layihəni həyata keçirmək üçün özümə Adruino proqramlaşdırmasını öyrətdim. Başlamaq üçün əla bir proqramdır və təcrübəsiz hər hansı bir proqramçı üçün bir neçə dəqiqə ərzində qurmaq, dəyişdirmək və əylənmək üçün kifayət qədər asandır. Gəlin başlayaq.

Addım 1: Nə lazımdır

Ehtiyacınız olacaq
Ehtiyacınız olacaq

Səhvlərinizin yanıb -sönməməsi üçün bu komponentlərə ehtiyacınız olacaq:

  • Arduino. Nano ilə başladım, amma hər hansı bir Arduino uyğun mikro nəzarətçi bunu edəcək.
  • Sarı LEDlər, 5 mm. Onlardan 6 -ya qədər istifadə edə bilərsiniz.
  • Rezistorlar. Cərəyanı məhdudlaşdırmaq üçün hər LED üçün bir rezistora ehtiyacınız olacaq. 470 ohm istifadə etdim, amma 150 ohmdan yuxarı olan hər şey mikro nəzarətçinizi qorumaq üçün yaxşı olmalıdır.
  • Çörək lövhəsi.
  • Jumper teli.

Həyətiniz üçün layihəni tamamlamaq üçün sizə lazım olacaq:

  • Hava davamlı layihə qutusu.
  • Konnektoru olan 9 voltluq batareya. (Zəhmət olmasa bu hissənin altındakı qeydlərə baxın.)
  • Keçid edin. (Bu su keçirməyən açarları seçdim. Bunu xaricdə istifadə etmirsinizsə, hər hansı bir keçid edəcək.)
  • LEDləri bağın ətrafına yerləşdirmək üçün bir neçə yard tel. LED başına təxminən 10 fut Cat5 Ethernet teli istifadə etdim.
  • Kiçik bir çörək taxtası və ya bir az lövhə.
  • LED tellərinin keçdiyi hava şəraitinə davamlı bir kabel kəməri. (Bunu xaricdə də istifadə etməsəniz bunu ata bilərsiniz.)
  • LED böcəklərinizi qorumaq üçün istilik büzücü borular.
  • Yaşıl çəngəl-döngə (yəni velcro), LED atəşböcəklərini bağınızdakı bitkilərə və dirəklərə yapışdırmaq üçün.
  • Kiçik çörək taxtanıza komponentlər bağlamaq üçün kişi başlıqları.

Alətlər:

  • Layihə qutusu üçün matkaplar. (Özünüzə gözəl bir addım atmaq üçün bu fürsətdən istifadə edin. Etdiyinizə sevinəcəksiniz).
  • İsti yapışqan silahı.
  • Lehimleme dəmir.
  • Lazım gələrsə, layihə qutusunda yer açmaq üçün fırlanan alət (yəni Dremel).

Burada Bir neçə Qeyd:

1. Batareya seçimi sürətli və asan bir başlanğıc üçün idi. 9 voltluq bir batareyanın daimi istifadəsi bir qədər israfçıdır. Daha uzun ömür üçün 4x AA-batareya tutucusundan istifadə etməyiniz daha yaxşıdır (lakin buna uyğun olan daha böyük bir layihə qutusuna ehtiyacınız olacaq).

2. Teller üçün Cat 5 Ethernet kabelinin sökülməsini seçsəniz, onların mis nüvəli olduğundan əmin olun və işləyərkən nizamlı olmasını təmin etmək üçün bir az PVC -yə sarın. Yenə LED başına təxminən 10 fut tel istifadə etdim. İşıqları uzaqlara yaymaq istəyirsinizsə, daha uzun tellərdən istifadə edin!

3. Nəhayət, təqdim etdiyim bütün bağlantılar sadəcə təkliflərdir. Zəhmət olmasa bir şey tikmədən və ya satın almadan əvvəl bu Təlimatı oxuyun, çünki şəxsən necə davam etmək istədiyinizi daha yaxşı başa düşəcəksiniz.

Addım 2: Dövrə qurun

Dövrə qurun
Dövrə qurun
Dövrə qurun
Dövrə qurun
Dövrə qurun
Dövrə qurun

Bu layihə, Arduino cihazınızdakı nəbz genişliyi modulyasiya pinlərindən istifadə edir. Mikro nəzarətçidə bu pinlərdən 6-sı var və istədiyiniz qədər istifadə edə bilərsiniz. Dövrə olduqca düzdür. D3, D5, D6, D9, D10 və D11 nəbz genişliyi modulyasiya (PWM) sancaqlarından LED -lərinizin müsbət uclarına qədər olan bütün gücü bağlayın. Mənfi ucları rezistorlara, sonra da ümumi bir yerə bağlayın. (Rezistorlar LED -in önünə və ya arxasına keçə bilər. Yüksək cərəyanlardakı qısa qapanmalardan qorumaq istəməsəniz heç bir fərqi yoxdur.) Kablolama işinə kömək etmək üçün bir neçə sxem daxil etdim. (Fritzing dizayn proqramından istifadə edərək yaradılan diaqramlar.)

Addım 3: Kod

Image
Image

Təcrübəli bir proqramçı olsanız, bu kodu sadə bir şəkildə tapa bilərsiniz. Dəyişənlərin, pinmodların, funksiyaların və hətta təsadüfi bir generatorun istifadəsini təqdim edərkən öyrənməyə başlamaq üçün əla bir koddur. Kod, eyni effektin seriallar və s. İlə əldə oluna biləcəyinə əmin olduğum qədər kompakt deyil.

Kod şərhləri hər hissənin məntiqini ortaya qoyur. Bütün kod burada yerləşdirilib və aşağıdakı eskizi yükləyə bilərsiniz.

/*

Bu skript, PWM istifadə edərək təsadüfi olaraq 6 LED (əlbəttə sarı) təsadüfi qaydada yanıb -sönür. Hər bir LED öz funksiyası ilə idarə olunur. */ int led1 = 3; // LED PWM pin 3 -ə və s. Bağlı 6 PWM sancağının hamısını istifadə etdim. int led2 = 5; int led3 = 6; int led4 = 9; int led5 = 10; int led6 = 11; uzun randnum; // randnum, flaşlar və uzun qaçışlar arasındakı vaxt aralığına nəzarət edir; // randbug hansı xətanın işıqlandığını idarə edir. boş quraşdırma () {pinMode (led1, ÇIXIŞ); // Bütün PWM sancaqlarını çıxış kimi təyin etmək. pinMode (led2, Çıxış); pinMode (led3, Çıxış); pinMode (led4, Çıxış); pinMode (led5, Çıxış); pinMode (led6, Çıxış); } void loop () {randbug = təsadüfi (3, 12); // randbug təsadüfi olaraq yerinə yetirmək üçün bir funksiya seçir, // beləliklə təsadüfi olaraq işıqlandırmaq üçün bir səhv seçir. if (randbug == 3) {bug1 (); } if (randbug == 5) {bug2 (); } if (randbug == 6) {bug3 (); } if (randbug == 9) {bug4 (); } if (randbug == 10) {bug5 (); } if (randbug == 11) {bug6 (); }} / * * Bu funksiyaların hər biri eyni şəkildə işləyir. 'döngələr üçün' artım sonra azaldır * LED parlaqlığını idarə etmək üçün bu pin çıxışı. * 'randnum', 10 ilə 3000 ms arasında təsadüfi bir zaman aralığıdır * və səhvlərin yanıb sönməsi arasında bir zaman aralığı seçir. * '10 gecikmə' yalnız solğun təsir üçündür. */ void bug1 () {randnum = təsadüfi (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led1, fadeValue); gecikmə (10); } gecikmə (randnum); } boş bug2 () {randnum = təsadüfi (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led2, fadeValue); gecikmə (10); } gecikmə (randnum); } void bug3 () {randnum = təsadüfi (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led3, fadeValue); gecikmə (10); } gecikmə (randnum); } boş bug4 () {randnum = təsadüfi (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led4, fadeValue); gecikmə (10); } gecikmə (randnum); } void bug5 () {randnum = təsadüfi (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led5, fadeValue); gecikmə (10); } gecikmə (randnum); } boş bug6 () {randnum = təsadüfi (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led6, fadeValue); gecikmə (10); } gecikmə (randnum); }

Addım 4: Qutu qurun

Bug Butts qurmaq!
Bug Butts qurmaq!

Arduino'nuzu kodla yandırdıqdan və istədiyiniz kimi işləyən atəşböcəklərinizi əldə etdikdən sonra onları bağçaya qoymaq istəyə bilərsiniz; bu, Arduino və LED -lərin quru qalması üçün bir layihə qutusu və bir qədər istilik daralması deməkdir. Gəlin Yarataq!

Addım 5: Bug Butts qurmaq

Bug Butts qurmaq!
Bug Butts qurmaq!
Bug Butts qurmaq!
Bug Butts qurmaq!
Bug Butts qurmaq!
Bug Butts qurmaq!
  • LED açarlarını təxminən 5 mm -ə qədər kəsin.
  • İstifadə etdiyiniz tellərin uclarını soyun və qalaylayın, təxminən 5 mm.
  • Hər bir tel ucu üzərində 1 mm istilik daraldıcı borunu sürüşdürün.
  • LED -i telə lehimləyin. (Bu nöqtədə, cütlüyünüzdə hansı telin müsbət, hansının mənfi olacağını seçməlisiniz. Mən bərk teli pozitiv, ağ teli isə mənfi olaraq seçdim. Daha sonra baş ağrısından qaçmaq üçün bu strategiyanı layihə boyunca davam etdirin!)
  • İstilik büzüşməsini çılpaq tel və LED şeridləri boyunca sürüşdürün. Tellərə büzülmək üçün üstündən sürətli bir alov çəkin.
  • Başqa bir istilik parçasını LED və tellərin üzərinə sürüşdürün, LED lensi ucunu yapışdıraraq yerində əridin.
  • Telin bütün uzunluğu boyunca bir neçə parça büzüşdürün və telin səliqəli qalması üçün hər bir ayaqda əridin.

Addım 6: Layihə qutusunu hazırlayın

Layihə qutusunu hazırlayın
Layihə qutusunu hazırlayın
Layihə qutusunu hazırlayın
Layihə qutusunu hazırlayın
  • Layihə qutunuzdakı lazımsız plastikləri təmizləmək üçün zımpara tamburu olan fırlanan bir alət istifadə edin. (Qutunuzu yenidən bir araya gətirməyiniz lazım ola biləcək vida yuvalarını kəsməməyə diqqət edin.)
  • Şalterinizin harada olmasını və LED tellərinin çıxmasını istədiyinizə qərar verin. Tərəfləri məsləhət görürəm, amma ehtiyaclarınıza uyğun olanı istifadə edin.
  • Kabel yuvası və keçid üçün deliklər açmaq üçün uyğun ölçülü matkap ucundan istifadə edin.

Qeyd: Yuxarıdakı fotoşəkildə "kukla kabel" düzəltdiyimi görəcəksiniz. Bu, bir yerə yığmaq üçün istilik büzülməsi olan LED -lər üçün istifadə etdiyim 6 cüt teldən ibarətdir. Kabel kəmərinin əsl kabel dəstəsinə yaxşı uyğunlaşdığından və açar, kabel yuvası və qapaq açıldıqdan sonra qutunun suya davamlılığını yoxlamaq üçün istifadə etdim. (6 düymlük suda 24 saat batdıqdan sonra içərisində çox az nəm var idi. Bu qutuya "hava şəraitinə davamlı" deyərdim.)

Addım 7: Gücü gətirin

Güc gətirin!
Güc gətirin!
Güc gətirin!
Güc gətirin!
  • Arduino -ya çatmaq üçün nə qədər batareya və keçid teli lazım olduğunu təyin edin, hər üç komponenti də layihə qutusuna yerləşdirin. Anahtarın və 9V batareya konnektorunun tellərini kəsin. Uçlarını soyun və bükün. Növbəti addım üçün bir az büzülmə yerinə sürüşdürün.
  • Şeridinizdən iki kişi başlıq sancağını kəsin (lakin onları bir yerdə saxlamayın).
  • 9V batareya konnektorunun qırmızı ucunu açarın bir ucuna lehimləyin. Keçidin digər ucunu bir kişi baş pininə lehimləyin. Qara batareyanı digər kişi başlıq pininə lehimləyin.
  • Yuxarıdakı diaqramda göstərildiyi kimi, başlıq pinləri Nano -nu VIN (müsbət) və GND (mənfi) ilə təmin etmək üçün çörək taxtasına girəcək. VIN pin 7-12 volt tuta bilir. Arduino -nuzu 9V batareyadan başqa bir şəkildə gücləndirməyi planlaşdırırsınızsa, fərqli bir təchizat pimi istifadə edin.

Addım 8: Lazım gələrsə, Nanonu dəyişdirin

Lazım gələrsə Nano dəyişdirin
Lazım gələrsə Nano dəyişdirin

Layihə qutum olduqca dayaz olduğu üçün ICSP başlıq pinlərini uyğunlaşdırmaq üçün çıxarmalı oldum. Bu sancaqlar Arduino ilə ikinci dərəcəli bir interfeysdir. Skriptləri həmişə USB portu vasitəsilə yükləyə biləcəyiniz üçün onları çıxarmaq Nano -ya zərər verməyəcək.

Qeyd: Nano'nuzun lehimlənməsi üçün baş pinlərinə ehtiyac varsa, Arduino qurarkən bu pinləri atın.

Addım 9: İçəri tel çəkin

Image
Image
İçəri tel çəkin
İçəri tel çəkin
İçəri tel çəkin
İçəri tel çəkin
  • Kabel keçid portunu qazdığınız çuxurdakı layihə qutusuna bağlayın. Bir kabel bağlayıcısının necə istifadə ediləcəyi ilə əlaqədar qarışıqsınızsa, YouTube -da tapdığım bu videoda birinin yığılmış olduğunu göstərir. (0:57 sürətlə irəli.) Sizinki bir rezin yuyucusu ola bilər. Bu, layihə qutusu ilə kabel yuvasının xarici qozu arasında gedir.
  • LED tellərinin boş uclarını toplayın. Bu vaxt onları bərabər uzunluqda kəsin, uclarını soyun və qalaylayın. Uçları kabel kəmərinin qapağından keçirin və ucunu bir yerə yığmaq üçün bir parça büzücü istifadə edin və qutunun içindəki çörək taxtasına çatmaq üçün kifayət qədər uzunluq buraxın.
  • Kabel keçid portu vasitəsilə tel dəstəsini layihə qutusuna daxil edin və telləri yerində, tercihen bir yerdə yığmaq üçün istifadə etdiyiniz istilik büzüşünün ətrafında bağlamaq üçün diş qapağını bükün.
  • Torpaq tellərini pozitiv tellərdən ayırın (əvvəllər hansını seçdiyinizi xatırlayın). Bütün topraklama tellərini bir ümumi yerə birləşdirin. Bu dəstədən qısa bir tel bağlayın və 1 kişi başlığı ilə bitirin. Çılpaq lehim birləşmələrinizi qorumaq üçün istilik büzücü istifadə edin.
  • Hər bir pozitiv telin ucunda kişi başlıqlarını lehimləyin. Yenə istilik büzücü istifadə edin.
  • Arduino üzərindəki PWM pinlərinə qoşulmaq üçün pozitiv kişi başlıqlarını çörək taxtasına daxil edin.
  • Ümumi zəmini çörək taxtasına daxil edin ki, cərəyan məhdudlaşdıran bir rezistordan keçsin və sonra Arduino üzərindəki GND -ə keçsin.
  • Batareyaya qoyun və açarı əvvəllər qazdığınız qutunun deliyindən keçirin. Kauçuk yuyucunu layihə qutusu ilə vida qapağı arasına yerləşdirin. Elektrik kabellərini çörək taxtasına qoşun.
  • Qapağı qutunun üzərinə yapışdırın və ya vidalayın. Bitirdin!

Qeyd: Sxemlərdə və inkişaf mərhələlərində bir LED üçün bir cərəyan məhdudlaşdırıcı rezistor istifadə etdiyimə diqqət yetirin. Tipik olaraq, hər bir LED öz rezistorunu almalıdır, bir qayda olaraq birdən çox LED yanır. Kod bir anda birdən çox LED -in yandırılmasına icazə vermir, buna görə də Arduino'yu qorumaq üçün yalnız bir rezistor istifadə etmək yaxşıdır. Bu, kiçik çörək taxtasında yerdən və ya hər bir LED-in xətti müqavimətlə lehimlənməsinə vaxt qazandırır. Dedi… XƏBƏRDARLIQ !!! Kodu bir anda birdən çox LED işıqlandırmaq üçün dəyişdirməyi planlaşdırırsınızsa, hər LED üçün ayrı rezistorlara ehtiyacınız olacaq.

Addım 10: İstifadə edin

İstifadə et
İstifadə et

LEDləri bitkilərə, çitlərə, çəhrayı flamingolara və ya həyətinizdəki başqa bir şeyə yapışdırmaq üçün Velcro kəmərləri və ya isti yapışqan istifadə edin. Şərab raflarına, pərdələrin arxasına qoyaraq içəridə istifadə edin və ya qaranlıqda 3D üzən effekt üçün telləri tavandan asın! Partiyalar, toylar, film və fotoşəkillər üçün əla bir toxunma olardı.

Addım 11: İrəli gedin …

Daha əvvəl də qeyd edildiyi kimi, bu layihənin erkən bir versiyasıdır, lakin o qədər böyük potensialla doludur! Bir keçid qeydini bağlayaraq daha çox LED işləyin (bunu öyrənmək üçün JColvin91 -in bu təlimatına baxın.) "Ayarla və unut" funksiyası üçün işıq sensoru, günəş şarj cihazı və taymer əlavə edin! Səhvlərə öz parıltınızı əlavə etmək üçün kodu qarışdırın. Etdiklərinizi paylaşın və zövq alın !!

YENİLƏNİB: Bu Təlimat dərc edildikdən sonra son iki həftə ərzində bir çox köməkçi bu layihənin kodunda, aparatında və icrasında parlaq inkişaflar təklif etdi. Bunu qurmağı planlaşdırırsınızsa, bu ildırım böcəklərini planlaşdırmadığım şəkildə necə düzəltməyinizə dair fikirləri və şərhləri oxuyursunuz. Bu layihəni düşündüyümdən daha çox inkişaf etdirməyə kömək edən bütün fikirləri alqışladığım açıq mənbə ruhunda … və bunu edənlərin hamısına təşəkkür edirəm.

Get. Et !!!

Tövsiyə: