Turinys:

Lengvas LED atostogų šviesos šou: burtininkai žiemą - WS2812B LED juostelė su „FastLED“ir „Arduino“pamoka: 6 žingsniai
Lengvas LED atostogų šviesos šou: burtininkai žiemą - WS2812B LED juostelė su „FastLED“ir „Arduino“pamoka: 6 žingsniai

Video: Lengvas LED atostogų šviesos šou: burtininkai žiemą - WS2812B LED juostelė su „FastLED“ir „Arduino“pamoka: 6 žingsniai

Video: Lengvas LED atostogų šviesos šou: burtininkai žiemą - WS2812B LED juostelė su „FastLED“ir „Arduino“pamoka: 6 žingsniai
Video: Vėžiai, galintys jus išprotėti. Lipinskio vėžys. 54 receptai!! N1 pasaulyje 2024, Rugsėjis
Anonim
Image
Image

Sukūriau ir užprogramavau šį šventinį šviesos šou, kad būtų rodomas bet kur. Aš naudoju vieną WS2812B LED juostą, kurios pikselių tankis yra 30 pikselių/ metras. Kadangi naudojau 5 metrus, iš viso turėjau 150 šviesos diodų. Aš laikiau kodą paprastą, kad visi, kurie naudojasi WS2812B LED juostelėmis, galėtų lengvai sekti kodą. Tai taip pat reiškia, kad jei naudosite skirtingą pikselių kiekį, laikas bus išjungtas, todėl turėtumėte laikytis 150 šviesos diodų. Be to, laikantis paprastumo, muzikos sistemos „Arduino“visiškai nevaldo. Programos pradžioje yra 3 žalios ir 1 raudonos blykstės, tada prasideda tikrasis šviesos šou. Kadangi muziką turite paleisti rankiniu būdu, šie pradiniai blyksniai parodys, kada pradėti leisti muziką. Aš įtraukiau kodą žemiau. Nedvejodami pridėkite arba pakeiskite šį kodą nekomerciniais tikslais.

Prekės

- WS2812B LED juostelė

- Arduino

- Laidai

- 5V 10A maitinimo šaltinis | Jei naudojate daugiau nei vieną juostelę, turėsite naudoti didesnį maitinimo šaltinį. Kiekvienas pikselis naudoja 60 mA, taigi 150 pikselių * 60 mA = 9 A. Jūsų maitinimo šaltinis turi sugebėti tai išspręsti, jei ketinate naudoti visą ryškumą baltos spalvos. Jei naudojate 5 V šviesos diodų juosteles, turite naudoti 5 V maitinimo šaltinį, o jei naudojate 12 V šviesos diodų juosteles, turėsite naudoti 12 V maitinimo šaltinį, bet taip pat naudoti 12–5 V keitiklį, kad galėtumėte maitinti 5 V „Arduino“.

1 veiksmas: atsisiųskite „FastLED“biblioteką

Apibrėžkite keletą kintamųjų
Apibrėžkite keletą kintamųjų

Jei dar neatsisiuntėte „FastLED“bibliotekos, atsisiųskite naujausią versiją iš github.com/FastLED/FastLED/releases

Atsisiųskite „FastLED“biblioteką ir perkelkite ją į aplanką „Arduino“bibliotekos. NEKEISKITE šio aplanko pavadinimo. „Arduino IDE“eikite į „Sketch“, „Include Library“, tada „Add. ZIP Library“. Pasirinkite aplanką „FastLED“.

Kai biblioteka bus nustatyta, įtraukite eilutę #include Ši eilutė nurodo programai, kad naudojate tą biblioteką.

2 žingsnis: apibrėžkite keletą kintamųjų

Kaip minėjau anksčiau, norint, kad kodas būtų paprastas, pakeitus pikselių skaičių pasikeis laikas arba šviesos šou.

Eilutėje #define NUM_LEDS 150 nurodykite naudojamų pikselių skaičių. Šiuo atveju bus 150.

Linija #define DATA_PIN 5 yra vieta, kur įdėjote skaitmeninį kaištį, prie kurio prijungėte duomenų laidą.

Linija #define BRIGHTNESS 255 yra vieta, kur jūs nustatote ryškumą nuo 0 iki 255 skalės, o 255-ryškiausias.

3 žingsnis: kodo sąrankos skyrius

Kodo sąrankos skyrius
Kodo sąrankos skyrius

Sąrankos skyriuje yra 2 sekundžių vėlavimas ir eilutė

FastLED.addLeds (šviesos diodai, NUM_LEDS).setCorrection (TypicalLEDStrip);

WS2812B nurodė mūsų naudojamos LED juostos tipą, o DATA_PIN yra kintamasis, kurį apibrėžėme ankstesniame žingsnyje. GRB yra spalvų tvarka. Tai gali skirtis priklausomai nuo naudojamos LED juostos. Išbandykite tokį kodą, koks yra, ir jei spalvos nėra tokios pačios kaip vaizdo įraše, pabandykite pakeisti, pavyzdžiui, į RGB arba BRG. Likusią šios eilutės dalį galite palikti tą patį. Linijos

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

apriboti LED juostos energijos suvartojimą. Tai nuostabi „FastLED“bibliotekos funkcija. Skaičius 5 yra mūsų naudojama įtampa, o skaičius 8000 - didžiausia srovė, kurią LED juostelė gali naudoti mA. Rekomenduojama naudoti tik 80% maitinimo šaltinio, kad būtų pratęstas jo tarnavimo laikas. Kadangi turiu 10A maitinimo šaltinį, 0,8*10 = 8A arba 8000mA.

4 žingsnis: kilpos skyrius | Gerai, šauni kodekso dalis

Kilpos skyrius | Gerai, šauni kodekso dalis
Kilpos skyrius | Gerai, šauni kodekso dalis
Kilpos skyrius | Gerai, šauni kodekso dalis
Kilpos skyrius | Gerai, šauni kodekso dalis

Dabar, kai baigsime nustatyti mūsų konkrečios šviesos diodų juostos programą, galime atskirti, kad juostelės iš tikrųjų užsidega. Kad šis skyrius atrodytų švarus, juostelėms valdyti ir skirtingiems efektams naudoti rašymo funkcijas. Aukščiau pateiktas paveikslėlis kairėje yra ciklo sekcijos dalis, kurioje atliekamos funkcijos. Paveikslėlis dešinėje yra žemiau to, ir aš parašiau, ką daro kiekviena funkcija.

5 žingsnis: laidų prijungimas

Laidai
Laidai

WS2812B LED juostelės turi 3 gnybtus kiekviename gale. 2 - maitinimas, o 1 - duomenų signalas, gaunamas iš mūsų „Arduino“. Tiesiog prijunkite 2 laidus prie „Arduino“maitinimo gnybtų ir 2 maitinimo laidus prie šviesos diodų juostos. Prie juostos galo taip pat turėtumėte pridėti 2 maitinimo laidus, vadinamus elektros įpurškimo laidais, nes dėl įtampos praradimo juostos gale gali pritemdyti šviesos diodai, jei to nepadarysite. Patikrinkite juostelės etiketes, kad pamatytumėte, kuris terminalas yra skirtas. Sumaišius poliškumą, gali susidaryti kepta juostelė. Taip pat prijunkite „Arduino“įžeminimo laidą prie įžeminimo laido, esančio šviesos diodų juostelėje, kad sukurtumėte bendrą pagrindą geresniam duomenų perdavimui. Aš minėjau, kad turėtumėte pridėti maitinimo įpurškimo laidus, tačiau to negalite padaryti duomenų vielai. Taip yra todėl, kad kiekvienas šviesos diodas retransliuoja duomenų signalą į kitą, todėl būtinai prijunkite 1 duomenų laidą prie nurodyto „Arduino“kaiščio ir LED juostelės. Juostelėje turi būti maža rodyklė, rodanti duomenų judėjimo kryptį. Įsitikinkite, kad duomenų signalo laidas yra prijungtas pradžioje, o ne pabaigoje. Sumaišius, gali susidaryti kepta juostelė.

6 žingsnis: LED juostelės montavimas

Aš pritvirtinau savo šviesos diodų juostą prie lango vidinės pusės, tiesiog užklijuodamas. Tačiau yra daug kitų būdų, kaip pritvirtinti LED juostą. Galite naudoti aliuminio kanalą, pvz., Https://tinyurl.com/s2km4v3, kad padėtumėte juosteles ant stogo linijos. Jei LED juostas statote lauke, rekomenduoju naudoti „ip65“juosteles, jei naudojate aliuminio kanalą, nes jos yra pusiau nepralaidžios vandeniui ir yra plonesnės nei 1p67, kurios gali netikti kai kuriuose kanaluose. Jei ketinate jį montuoti lauke be kanalo, naudokite „ip67“juosteles, kurios yra praktiškai atsparios vandeniui. Norėdami apeiti kampą, pavyzdžiui, stogo linijos viršūnėse, idealiai turėtumėte nupjauti juostelę ir apeiti kampą naudodami laidus. Jums gali pavykti tiesiog sulenkti juostelę, tačiau būkite atsargūs, kiek juos sulenksite, nes lengva išjungti šviesos diodą.

Rekomenduojamas: