Talaan ng mga Nilalaman:

Madaling LED Holiday Light Show: Wizards sa Winter - WS2812B LED Strip With FastLED at isang Arduino Tutorial: 6 Hakbang
Madaling LED Holiday Light Show: Wizards sa Winter - WS2812B LED Strip With FastLED at isang Arduino Tutorial: 6 Hakbang

Video: Madaling LED Holiday Light Show: Wizards sa Winter - WS2812B LED Strip With FastLED at isang Arduino Tutorial: 6 Hakbang

Video: Madaling LED Holiday Light Show: Wizards sa Winter - WS2812B LED Strip With FastLED at isang Arduino Tutorial: 6 Hakbang
Video: How to install arduino mega in Christmas lantern #AnthonDIY 2024, Hulyo
Anonim
Image
Image

Dinisenyo at pinrograma ko ang holiday light show na ito upang maipakita kahit saan. Gumamit ako ng isang WS2812B led strip na may pixel density na 30 pixel / meter. Dahil gumamit ako ng 5 metro, mayroon akong isang kabuuang 150 LEDs. Iningatan ko ang code nang simple upang ang sinumang bago sa paggamit ng mga WS2812B LED strip ay madaling sundin ang code. Nangangahulugan din ito na kung gagamit ka ng iba't ibang mga pixel, papatay ang tiyempo, kaya dapat kang manatili sa 150 LEDs. Gayundin, pinapanatili itong simple, ang system ng musika ay hindi pinamamahalaan ng Arduino sa lahat. Sa simula ng programa, mayroong 3 flashes ng berde at 1 flash ng pula, pagkatapos magsisimula ang aktwal na light show. Dahil kailangan mong simulang manu-mano ang musika, ang mga paunang pag-flash ay upang bigyan ka ng isang pahiwatig kung kailan magsisimulang tumugtog ng musika. Isinama ko ang code sa ibaba. Huwag mag-atubiling idagdag sa o baguhin ang code na ito para sa mga layuning hindi pang-komersyo.

Mga gamit

- WS2812B LED Strip

- Arduino

- Mga wire

- 5V 10A Power Supply | Kung gumagamit ka ng higit sa isang strip, kakailanganin mong gumamit ng isang mas malaking suplay ng kuryente. Ang bawat pixel ay gumagamit ng 60mA, kaya 150 pixel * 60mA = 9A. Dapat hawakan ito ng iyong power supply kung balak mong gamitin ang buong ningning sa puti. Dapat kang gumamit ng isang 5V power supply kung gumagamit ka ng 5V LED strips at kung gumagamit ka ng 12V LED strips, kakailanganin mong gumamit ng 12V power supply, ngunit gumamit din ng 12-5V converter upang mapagana ang 5V Arduino.

Hakbang 1: I-download ang FastLED Library

Tukuyin ang ilang mga variable
Tukuyin ang ilang mga variable

Kung wala ka pang na-download na library ng FastLED, i-download ang pinakabagong bersyon mula sa github.com/FastLED/FastLED/releases

I-download ang FastLED library, at ilipat ito sa iyong folder ng mga library ng Arduino. HUWAG baguhin ang pangalan ng folder na ito. Sa Arduino IDE, pumunta sa Sketch, Isama ang Library, at pagkatapos ay Idagdag ang. ZIP Library. Piliin ang FastLED folder.

Kapag na-set up na ang iyong silid-aklatan, isama ang linyang # isama Ang linyang ito ay nagsasabi sa programa na ginagamit mo ang library na iyon.

Hakbang 2: tukuyin ang ilang mga variable

Tulad ng nabanggit ko kanina, upang mapanatili ang code na simple, ang pagpapalit ng bilang ng mga pixel ay magbabago ng tiyempo o ang light show.

Ang linya na # tukuyin ang NUM_LEDS 150 ay kung saan mo inilagay ang bilang ng mga ginamit na pixel. Sa kasong ito, magiging 150.

Ang linya na # tukuyin ang DATA_PIN 5 ay kung saan mo inilagay ang digital pin na konektado mo sa data wire.

Ang linya na # tukuyin ang BRIGHTNESS 255 ay kung saan inilalagay mo ang ningning mula sa isang sukat na 0-255, na ang 255 ang pinakamaliwanag.

Hakbang 3: Ang Seksyon ng Pag-setup ng Code

Ang Seksyon ng Pag-setup ng Code
Ang Seksyon ng Pag-setup ng Code

Sa seksyon ng pag-set up, mayroong isang pagkaantala para sa 2 segundo at ang linya

FastLED.addLeds (leds, NUM_LEDS).setCorrection (TypicalLEDStrip);

Ipinahiwatig ng WS2812B ang uri ng LED strip na ginamit namin at ang DATA_PIN ay ang variable na tinukoy namin sa isang nakaraang hakbang. Ang GRB ang color order. Maaari itong mag-iba depende sa ginamit na LED strip. Subukan ang code na katulad nito, at kung ang mga kulay ay hindi pareho sa video, subukang baguhin ito sa RGB, o halimbawa ng BRG. Maaari mong iwanang pareho ang natitirang linya na ito. Ang mga linya

FastLED.setBightness (max_bright); set_max_power_in_volts_and_milliamps (5, 8000);

limitahan ang paggamit ng kuryente ng LED strip. Ito ay isang kamangha-manghang tampok mula sa FastLED library. Ang bilang 5 ay ang boltahe na ginamit namin, at ang numero 8000 ay ang maximum na kasalukuyang magagamit ng LED strip sa mA. Inirerekumenda na gamitin lamang ang 80% ng kakayahan ng supply ng kuryente upang pahabain ang buhay nito. Dahil mayroon akong isang power supply na 10A, 0.8 * 10 = 8A, o 8000mA.

Hakbang 4: Ang Seksyon ng Loop | Si Aka, ang cool na Bahagi ng Code

Ang Seksyon ng Loop | Si Aka, ang cool na Bahagi ng Code
Ang Seksyon ng Loop | Si Aka, ang cool na Bahagi ng Code
Ang Seksyon ng Loop | Si Aka, ang cool na Bahagi ng Code
Ang Seksyon ng Loop | Si Aka, ang cool na Bahagi ng Code

Ngayon na tapos na kaming mag-set up ng programa para sa aming partikular na LED strip, maaari naming makibahagi sa aktwal na ginagawang magaan ang mga piraso. Upang mapanatiling malinis ang seksyon na ito, gumamit ako ng mga function na sinulat upang makontrol ang mga piraso at gumawa ng iba't ibang mga epekto. Ang larawan sa itaas sa kaliwa ay bahagi ng seksyon ng loop, na nagpapatakbo ng mga pag-andar. Ang larawan sa kanan ay nasa ibaba nito at kung saan isinulat ko kung ano ang ginagawa ng bawat pagpapaandar.

Hakbang 5: Mga kable

Kable
Kable

Ang WS2812B LED strips ay may 3 mga terminal sa bawat dulo. 2 para sa lakas, at 1 para sa signal ng data na nagmumula sa aming Arduino. Ikonekta lamang ang 2 wires sa mga terminal ng kuryente ng Arduino, at ikonekta ang 2 mga wire ng kuryente sa LED strip. Dapat mo ring idagdag ang 2 mga wire ng kuryente na tinatawag na mga power injection wires sa dulo ng strip dahil ang pagkawala ng boltahe ay maaaring humantong sa mga madilim na LED sa dulo ng strip kung hindi mo ito gagawin. Suriin ang mga label sa strip upang makita kung aling terminal ang para sa kung ano. Ang paghahalo ng polarity ay maaaring humantong sa isang pritong strip. Gayundin, ikonekta ang ground wire ng Arduino sa ground wire sa LED strip upang magtatag ng isang karaniwang lupa para sa mas mahusay na paghahatid ng data. Nabanggit ko na dapat kang magdagdag ng mga wire sa pag-iniksyon ng kuryente, ngunit HINDI mo ito maaaring gawin para sa wire ng data. Ito ay sapagkat ang bawat LED ay muling naglabas ng signal ng data sa susunod, kaya siguraduhing ikonekta ang 1 data wire sa tinukoy na Arduino pin at ang LED strip. Ang strip ay dapat magkaroon ng isang maliit na arrow na ipinahiwatig ang direksyon ng paglalakbay sa data. Tiyaking inilagay ang wire ng signal ng data sa simula at hindi sa dulo. Ang paghahalo nito ay maaaring humantong sa isang pritong strip.

Hakbang 6: Pag-mount sa LED Strip

Inilagay ko ang aking LED strip sa loob ng isang window sa pamamagitan lamang ng pag-taping nito. Gayunpaman, maraming iba pang mga paraan na maaari mong mai-mount ang iyong LED strip. Maaari kang gumamit ng isang aluminyo na channel tulad ng https://tinyurl.com/s2km4v3 upang ilagay ang mga piraso sa labas sa iyong bubong. Kung inilalagay mo ang iyong mga LED strips sa labas, inirerekumenda kong gamitin ang mga ip65 strips kung gumagamit ka ng isang aluminyo channel dahil ang mga ito ay semi-hindi tinatagusan ng tubig, at mas payat kaysa sa 1p67, na maaaring hindi magkasya sa ilang mga channel. Kung balak mong i-mount ito sa labas nang walang isang channel, gamitin ang ip67 strips, na halos hindi tinatagusan ng tubig. Upang mag-ikot sa isang sulok, tulad ng mga nasa tuktok ng iyong linya sa bubong, dapat mong perpektong i-cut ang strip, at gumamit ng mga wire upang mag-ikot. Maaari mong malayo sa pamamagitan lamang ng baluktot na strip, ngunit mag-ingat sa kung gaano mo sila yumuko dahil madali itong mag-pop off ng isang LED.

Inirerekumendang: