{"id":15766,"date":"2021-12-03T09:43:50","date_gmt":"2021-12-03T01:43:50","guid":{"rendered":"https:\/\/pcblithuania.com\/?p=15766"},"modified":"2022-02-07T10:05:27","modified_gmt":"2022-02-07T02:05:27","slug":"arduino-ws2812b","status":"publish","type":"post","link":"https:\/\/pcblithuania.com\/arduino-ws2812b.html","title":{"rendered":"Arduino WS2812B: trumpas vadovas, kaip valdyti WS2812B adresuojam\u0105 \u0161viesos diod\u0105 naudojant Arduino"},"content":{"rendered":"\n

Yra keletas LED juostini\u0173 lempu\u010di\u0173<\/a> projekt\u0173, kuriuos galite sukurti. Ta\u010diau jei norite jas sukonstruoti \u012f masyv\u0105, neteksite galimyb\u0117s jas valdyti atskirai. Turime omenyje, kad negal\u0117site reguliuoti spalv\u0173 spektro, taip pat did\u017eiausio konkre\u010dios Arduino WS2812B LED juostel\u0117s ry\u0161kumo.\u00a0<\/p>\n\n\n\n

Be to, dar vienas tr\u016bkumas yra tas, kad d\u0117l to LED juostel\u0117s netinka kal\u0117diniam ap\u0161vietimui namuose. D\u0117l \u0161ios prie\u017easties, nor\u0117dami valdyti atskirus juostel\u0117s pikselius, turite naudoti WS2812B adresuojam\u0105j\u012f \u0161viesos diod\u0105. \u010cia su\u017einosite, kaip valdyti RGB \u0161viesos diod\u0173 juostel\u0119 naudojant Arduino UNO<\/a>.\u00a0<\/p>\n\n\n\n

1. Arduino WS2812B apra\u0161ymas<\/strong><\/h2>\n\n\n\n

Adresuojamos LED juostel\u0117s yra i\u0161skirtinis \u0161viesos \u0161altinis, kuriame vienoje pakuot\u0117je yra integrinis grandynas ir adresuojama RGB LED juostel\u0117. Be to, jos paprastai b\u016bna SMD 5050 formos. <\/p>\n\n\n\n

I\u0161 pirmo \u017evilgsnio paprastai atrodo kaip \u012fprasta vienspalv\u0117 LED <\/a>juostel\u0117. Ta\u010diau pa\u017evelg\u0119 atid\u017eiau pasteb\u0117site, kad \u012f SMD 5050 RGB LED paket\u0105 integruota ir Arduino, ir WS2812B.\u00a0<\/p>\n\n\n\n

\"LED<\/figure>\n\n\n\n

 (LED juostel\u0117s lemput\u0117s)<\/p>\n\n\n\n

2. Arduino WS2812B kontakt\u0173 apra\u0161ymas:<\/strong><\/h2>\n\n\n\n

Freenode WS2812B \u0161viesos diodas turi keturis Arduino prijungtus kai\u0161\u010dius. Tai DOUT, DIN, VSS (GND) ir VDD. Atkreipkite d\u0117mes\u012f, kad VDD kai\u0161tis taip pat yra RGB adresuojamo integrinio grandyno maitinimo \u0161altinis.\u00a0<\/p>\n\n\n\n

Smeigtuko<\/td>funkcija<\/td><\/tr>
VSS<\/td>\u017eem\u0117<\/td><\/tr>
VDD<\/td>Maitinimo \u0161viesos diodas<\/td><\/tr>
DOUT<\/td>Duomen\u0173 valdymo signalo i\u0161vestis<\/td><\/tr>
DIN<\/td>Duomen\u0173 valdymo signalo i\u0161vestis<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n

3. Kaip valdyti WS2812B \u0161viesos diod\u0105 su Arduino<\/strong><\/h2>\n\n\n\n

Taigi, kaip valdyti Freenove WS2812B naudojant Arduino plok\u0161t\u0119? \u0160tai kaip veikia projekto maitinimo \u0161altinis. I\u0161 5 V maitinimo kontakto maitinamos skaitmenin\u0117s juostel\u0117s. Be to, kiekviena vieno pikselio programa turi tris \u0161viesos diodus kartu su spalvos valdymo funkcija. Tod\u0117l atskiro pikselio srov\u0117 yra apie 60 mA. <\/p>\n\n\n\n

Taigi, jei turite adresuojam\u0105 RGB \u0161viesos diod\u0173 juostel\u0119, kurioje yra 40 WS2812B, tikrai gausite bendr\u0105 srov\u0119 40 x 60 mA = 2,4 A. Arduino programin\u0117 \u012franga negali tiekti tiek energijos nei per statin\u0119 maitinimo jungt\u012f, nei per USB kabelius. Vadinasi, turite tiekti maitinim\u0105 pinout projektui (Arduino ir WS2812B) naudodami i\u0161orin\u012f maitinimo \u0161altin\u012f.<\/p>\n\n\n\n

Be abejon\u0117s, papildomas maitinimo \u0161altinis, pavyzd\u017eiui, 5 V, suteiks pakankam\u0105 srov\u0119. <\/p>\n\n\n\n

\"RGB<\/figure>\n\n\n\n

(RGB LED \u017eibintai)<\/p>\n\n\n\n

PATARIMAI:<\/strong><\/h3>\n\n\n\n
  1. \u012esitikinkite, kad jungiamieji laidai tarp Arduino plok\u0161t\u0117s, maitinimo \u0161altinio ir gr\u0105\u017einimo juost\u0173 yra labai trumpi, kad suma\u017eintum\u0117te \u012ftampos praradim\u0105.<\/li>
  2. \u012etraukite Ohm rezistori\u0173 Arduino IDE<\/a> centre, juostel\u0117s \u012fvesties duomenis ir i\u0161vesties kai\u0161t\u012f, kad suma\u017eintum\u0117te linijos triuk\u0161m\u0105.<\/li>
  3. Be to, jei j\u016bs\u0173 analogin\u0117s <\/a>juostos yra sugedusios ir neveikia, patikrinkite pirmojo \u0161viesos diodo modulius, kad pamatytum\u0117te, ar jie suged\u0119. Jei taip, supjaustykite juos ir i\u0161 naujo lituokite \u012fvesties duomen\u0173 kai\u0161t\u012f.<\/li>
  4. Galiausiai, nor\u0117dami reguliuoti papildom\u0105 maitinimo \u0161altin\u012f, prijunkite kondensatori\u0173 <\/a>prie 100 uF ir 1000 uF talpos nuo maitinimo kabeli\u0173 iki \u017eem\u0117s.<\/li><\/ol>\n\n\n\n

    Aktyvieji komponentai<\/strong><\/h3>\n\n\n\n
    1. Arduino UNO.<\/li>
    2. 5V maitinimo \u0161altinis.<\/li>
    3. 330\u03a9 rezistorius.<\/li>
    4. WS2812 juostel\u0117s.<\/li><\/ol>\n\n\n\n
      \"Arduino<\/figure>\n\n\n\n

       (Arduino vienguba plok\u0161t\u0117)<\/p>\n\n\n\n

      Grandin\u0117s schema<\/strong><\/h3>\n\n\n\n
      \"32<\/figure>\n\n\n\n

      \uff08 32 bit\u0173 sujungta RGB spalv\u0173 reik\u0161mi\u0173 juosta ir Arduino IDE\uff09<\/p>\n\n\n\n

      Pateiktoje schemoje parodytas 32 bit\u0173 sulietos RGB spalv\u0173 reik\u0161mi\u0173 juostel\u0117s ir Arduino IDE sujungimas. I\u0161 jos taip pat matyti, kad LED juostel\u0117s \u017eibintai ir Arduino jungiasi prie i\u0161orinio energijos \u0161altinio su GND (VSS). Galiausiai juostel\u0117s lempu\u010di\u0173 DIN kai\u0161tis jungiasi prie skaitmenin\u0117s juostel\u0117s septintojo kai\u0161\u010dio ir teka per 330 \u03a9 rezistori\u0173.<\/p>\n\n\n\n

      LED lemput\u0117s prijungimas<\/strong><\/h3>\n\n\n\n

      Turite naudoti 5 V i\u0161orin\u012f maitinimo \u0161altin\u012f<\/p>\n\n\n\n

      \u0160altinio kodas<\/strong><\/h3>\n\n\n\n

      Adafruit neopikseli\u0173 biblioteka yra integruota \u012f j\u016bs\u0173 Arduino IDE. Taigi, jei ji n\u0117ra atnaujinta, gali tekti j\u0105 \u012fdiegti i\u0161 naujo. Naudojant Arduino bibliotek\u0105, atnaujinimo procesas yra paprastesnis. Eikite \u012f <\/p>\n\n\n\n

      Tai pasakius, \u010dia pateikiamas Arduino kodas. Nor\u0117dami naudoti \u0161viesos diodus, \u012fkelkite juos \u012f Arduino. Pridedamoje nuorodoje pateikiamas pluo\u0161to bandym\u0173 pavyzdys, kur\u012f i\u0161 tikr\u0173j\u0173 galite nukopijuoti ir \u012fklijuoti; Arduino \u0161altinio kodas.<\/a><\/p>\n\n\n\n

      \u0160viesos diod\u0173 skai\u010di\u0173 taip pat galite papildyti pakeisdami NUMOFLEDS, naudodami \u0161\u012f kod\u0105. <\/p>\n\n\n\n

      4. Arduino WS2812B taikymas<\/strong><\/h2>\n\n\n\n

       Arduino naudojamas keliose taikomosiose programose ir programin\u0117je \u012frangoje. Kai kurias i\u0161 j\u0173 \u017er. toliau.<\/p>\n\n\n\n