lamp.housecope.com
Vissza

Hogyan csatlakoztassuk a WS2812B címezhető LED-szalagot Arduino-hoz

Közzétéve: 2021.08.02
0
2578

A LED-ekre épülő világítástechnika fejlődése rohamosan folytatódik. Még tegnap csodának tűntek a kontrollerrel vezérelhető RGB szalagok, amelyek fényereje és színe távirányítóval állítható. Mára még több funkcióval rendelkező lámpák jelentek meg a piacon.

LED szalag WS2812B alapú

A különbség a címezhető LED szalag és a szabvány között RGB a dolog az Az egyes elemek fényereje és színaránya külön-külön beállítható. Ez lehetővé teszi olyan fényhatások elérését, amelyek alapvetően nem érhetők el más típusú világítóeszközök számára. A címezhető LED szalag fényét ismert módon - impulzusszélesség modulációval - szabályozzák. A rendszer jellemzője, hogy minden LED-et saját PWM vezérlővel lát el. A WS2812B chip egy háromszínű fénykibocsátó dióda és egy vezérlő áramkör, amely egyetlen csomagban van kombinálva.

Hogyan csatlakoztassuk a WS2812B címezhető LED-szalagot Arduino-hoz
A LED megjelenése a meghajtóval.

Az elemek párhuzamosan kapcsolódnak tápszalaggá, és soros buszon keresztül vezérelhetők - az első elem kimenete a második vezérlőbemenetére van kötve stb. A legtöbb esetben a soros buszok két vonalra épülnek, amelyek közül az egyik villogó jeleket (óraimpulzusokat) továbbít, a másik pedig adatokat.

A címsáv megjelenése.
A címsáv megjelenése.

A WS2812B chip vezérlőbusza egy vonalból áll - az adatok továbbítása ezen keresztül történik. Az adatok állandó frekvenciájú, de eltérő munkaciklusú impulzusokként vannak kódolva. Egy impulzus - egy bit. Az egyes bitek időtartama 1,25 µs, a nulla bit egy magas szintből áll, amelynek időtartama 0,4 µs, és egy alacsony szintből 0,85 µs. Az egység úgy néz ki, mint egy magas szint 0,8 µs, és alacsony szint 0,45 µs. Minden LED-nek egy 24 bites (3 bájtos) sorozatot küld, amelyet 50 µs-os alacsony szintű szünet követ. Ez azt jelenti, hogy a következő LED-hez és így tovább a lánc összes eleméhez adatok kerülnek továbbításra. Az adatátvitel 100 µs szünettel ér véget. Ez azt jelzi, hogy a szalagos programozási ciklus befejeződött, és el lehet küldeni a következő adatcsomagokat.

Adatok a címszalag kezeléséhez.
Adatok a címszalag kezeléséhez.

Egy ilyen protokoll lehetővé teszi, hogy az adatátvitelhez egy vonallal boldoguljunk, de pontosságot igényel az időintervallumok betartása. Az eltérés legfeljebb 150 ns megengedett. Ezenkívül egy ilyen busz zajállósága nagyon alacsony. Bármilyen megfelelő amplitúdójú interferenciát a vezérlő adatként érzékelhet. Ez korlátozza a vezérlőáramkör vezetékeinek hosszát. Másrészt ez lehetővé teszi szalag állapotfelmérés kiegészítő eszközök nélkül.Ha áram alá helyezi a lámpát, és az ujjával megérinti a vezérlőbusz érintkezőfelületét, előfordulhat, hogy néhány LED véletlenszerűen kigyullad és kialszik.

A WS2812B elemek specifikációi

Címszalagon alapuló világítási rendszerek létrehozásához ismerni kell a fénykibocsátó elemek fontos paramétereit.

LED méretei5x5 mm
PWM modulációs frekvencia400 Hz
Jelenlegi fogyasztás maximális fényerő mellett60 mA cellánként
Tápfeszültség5 volt

Arduino és WS2812B

A világon népszerű Arduino platform lehetővé teszi vázlatok (programok) készítését a címszalagok kezelésére. A rendszer képességei elég szélesek, de ha valamilyen szinten már nem elegendőek, akkor a megszerzett ismeretek elegendőek lesznek ahhoz, hogy fájdalommentesen váltsunk C ++-ra vagy akár assemblerre is. Bár a kezdeti tudás könnyebben megszerezhető az Arduinón.

A WS2812B szalag csatlakoztatása az Arduino Uno-hoz (Nano)

Az első szakaszban elég egyszerű Arduino Uno vagy Arduino Nano táblák. A jövőben az összetettebb táblák segítségével bonyolultabb rendszereket lehet felépíteni. Amikor a címezhető LED szalagot fizikailag csatlakoztatja az Arduino kártyához, több feltételt is be kell tartani:

  • az alacsony zajtűrés miatt az adatvezeték összekötő vezetékei a lehető legrövidebbek legyenek (meg kell próbálni 10 cm-en belülire tenni);
  • csatlakoztatnia kell az adatvezetőt az Arduino kártya szabad digitális kimenetéhez - ezután programozottan lesz megadva;
  • a nagy fogyasztás miatt nem szükséges a szalagot a tábláról táplálni - erre a célra külön tápegységek vannak biztosítva.

A lámpa és az Arduino közös tápvezetékét csatlakoztatni kell.

Bekötési rajz WS2812B.
WS2812B szalag csatlakozási rajz.

Olvassa el is

Hogyan csatlakoztassuk a LED-et az Arduino kártyához

 

A WS2812B programvezérlés alapjai

Már említettük, hogy a WS2812B mikroáramkörök vezérléséhez bizonyos hosszúságú impulzusok generálása szükséges, a nagy pontosság fenntartása mellett. Az Arduino nyelvben vannak parancsok a rövid impulzusok képzésére késleltetésMikroszekundum és mikros. A probléma az, hogy ezeknek a parancsoknak a felbontása 4 mikroszekundum. Vagyis nem fog működni adott pontosságú időkésések kialakítása. C ++ vagy Assembler eszközökre kell váltani. A címezhető LED-szalag vezérlését pedig az Arduino-n keresztül, speciálisan erre a célra létrehozott könyvtárak segítségével szervezheti meg. Kezdheti az ismerkedést a Blink programmal, amely a fénykibocsátó elemeket villogtatja.

gyors vezetett

Ez a könyvtár univerzális. A címszalagon kívül számos eszközt támogat, beleértve az SPI interfész által vezérelt szalagokat is. Széles lehetőségek vannak benne.

Először is a könyvtárat kell beépíteni. Ez a beállítási blokk előtt történik, és a sor így néz ki:

#include <FastLED.h>

A következő lépés egy tömb létrehozása az egyes fénykibocsátó diódák színeinek tárolására. A névsáv és a mérete 15 lesz - az elemek száma szerint (jobb, ha ehhez a paraméterhez állandót rendelünk).

CRGB szalag[15]

A beállítási blokkban meg kell adnia, hogy a vázlat melyik szalaggal fog működni:

void setup() {

FastLED.addLeds< WS2812B, 7, RGB>(szalag, 15);

intg;

}

Az RGB paraméter a színsorrendet állítja be, a 15 a LED-ek számát, a 7 a vezérléshez rendelt kimenet számát (az utolsó paraméterhez érdemesebb is konstanst rendelni).

A hurokblokk egy hurokkal kezdődik, amely sorban a tömb minden szakaszába ír Red (piros izzás):

(g=0; g<15; g++)

{sztrip[g]=CRGB::Piros;}

Ezután a kialakított tömb a lámpához kerül:

FastLED.show();

Késleltetés 1000 ezredmásodperc (másodperc):

késleltetés (1000);

Ezután az összes elemet ugyanúgy kikapcsolhatja, ha feketét ír beléjük.

for (int g=0; g<15; g++)

{sztrip[g]=CRGB::Fekete;}

FastLED.show();

késleltetés (1000);

Vázlat egy villogó szalaghoz a FastLed alapján.
Vázlat egy villogó szalaghoz a FastLed alapján.

A vázlat összeállítása és feltöltése után a szalag 2 másodpercig villog. Ha az egyes színösszetevőket külön kell kezelni, akkor a vonal helyett {sztrip[g]=CRGB::Piros;} több sort használunk:

{

szalag[g].r=100;// állítsa be a piros elem izzási szintjét

csík[g].g=11;// ugyanez a zöldre

szalag[g].b=250;// ugyanez a kéknél is

}

NeoPixel

Ez a könyvtár csak a NeoPixel Ring LED gyűrűkkel működik, de kevésbé erőforrásigényes, és csak a legfontosabbakat tartalmazza. Arduino nyelven a program így néz ki:

#include <Adafruit_NeoPixel.h>

Mint az előző esetben, a könyvtár csatlakoztatva van, és a lenta objektum deklarálva van:

Adafruit_NeoPixel lenta=Adafruit_NeoPixel(15, 6);// ahol 15 az elemek száma és 6 a hozzárendelt kimenet

A beállítási blokkban a szalag inicializálásra kerül:

void setup() {

lenta.begin()

}

A hurokblokkban minden elem piros színnel kiemelve, a változó átkerül a feedbe, és 1 másodperces késleltetés jön létre:

for (int y=0; y<15; y++)// 15 - a lámpában lévő elemek száma

{lenta.setPixelColor(y, lenta.Color(255,0,0))};

tape.show();

késleltetés (1000);

A ragyogás megáll egy fekete lemeznél:

for (int y=0; y< 15; y++)

{ lenta.setPixelColor(y, lenta.Color(0,0,0))};

tape.show();

késleltetés (1000);

Vázlat a NeoPixel alapú Blink programhoz.
Vázlat a NeoPixel alapú Blink programhoz.

Oktatóvideó: Példák vizuális effektusokhoz címszalagok használatával.

Miután megtanulta a LED-ek villogását, folytathatja a színeffektusok létrehozását, beleértve a népszerű Rainbow és Aurora Borealis sima átmeneteket. A címezhető WS2812B és Arduino LED-ek erre szinte korlátlan lehetőségeket biztosítanak.

Hozzászólások:
Még nincsenek hozzászólások. Legyél az első!

Javasoljuk, hogy olvassa el

Hogyan javítsa meg saját maga a LED-lámpát