5m ws2812b rgb led strip
ID: 248
Kategorie: WS28xx
Menge: 0
Position:

Product Category:WS2812B light one meter 30/60/144 of 30/60/144 lights
Lamp beads Model:5050RGB
IC Part:SK6812/WS2812B
Operating Voltage:5V
Power:30LED/m(90W/M),60LED/m(18W/M),144LED/m(43.2W/M)
Plate width:10MM
Gradation display:256
Lamp beads:30/60/144light/m
IC number:30/60/144 IC/m
Operating temperature:-40℃-80℃
Working life:30KH
Board background color:Whiteboard/Blackboard
Light colors:Full color/controlled by the controller can achieve any effect of ang color
Data transfer rate:800K/s

 

Diody LED ze sterownikem WS2811/WS2812

TytuÅ‚ tego wpisu może być odrobinÄ™ mylÄ…cy, ale za kilka chwil powinienem wszystko wyjaÅ›nić. BÄ™dÄ…c bardzo dokÅ‚adnym,  WS2812 jest inteligentnym sterownikiem LED z wbudowanym źródÅ‚em Å›wiatÅ‚a - tak przynajmniej nazywa to producent. Jednak jeÅ›li spojrzymy na to z drugiej strony, to jest nic innego jak dioda RGB 5050 z wbudowanym już sterownikiem WS2811 :) TrochÄ™ zakrÄ™cone prawda? Ale tak wÅ‚aÅ›nie jest.

JakiÅ› czas temu byÅ‚y dostÄ™pne różnego taÅ›my LED ze sterownikiem WS2801. SkÅ‚adaÅ‚y siÄ™ one oddzielnie z diody RGB oraz maÅ‚ego ukÅ‚adu SMD WS8201 peÅ‚niÄ…cego rolÄ™ sterownika. Tak wiÄ™c można Å›miaÅ‚o powiedzieć, że WS2812 jest kontynuacjÄ… tego produktu, jako krok w stronÄ™ miniaturyzacji sterowanego oÅ›wietlenia LED.

Czym zatem jest sterownik WS2811 i co nam daje?

OgromnÄ… zaletÄ… tego ukÅ‚adu jest jego zdolność szeregowego Å‚Ä…czenia, a także możliwość sterowania praktycznie dowolnÄ… iloÅ›ciÄ… diod RGB tylko za pomocÄ… pojedynczego pinu cyfrowego mikrokontrolera za poÅ›rednictwem magistrali 1-Wire. Sposób poÅ‚Ä…czenia diody RGB z takim ukÅ‚adem wyglÄ…da nastÄ™pujÄ…co:

Tak więc widzisz już, że WS2812 to tak naprwdę sterownik WS2811 zamknięty w obudowie diody RGB:

Dwie wersje - WS2812 i WS2812B

Na rynku dostÄ™pna jest niezliczona ilość moduÅ‚ów, taÅ›m, linijek i shieldów wyposażonych w WS2182 - jednak to na co powinieneÅ› zwrócić uwagÄ™, to czy jest to odÅ›wieżona wersja oznaczona literÄ… "B". JeÅ›li nie jest to nigdzie napisane, bez problemu rozpoznasz jÄ… iloÅ›ci "nóżek". Standardowa wersja WS2812 posiada sześć nóżek, natomiast wersja "B" tylko cztery. Odmienna jest również struktura samej diody:

Po lewo WS2812 / Po prawo WS2812B

 

Dlaczego warto wybrać wersjÄ™ WS2812B? Po pierwsze - mniej lutowania :) Przy iloÅ›ci 100 diod na pewno to docenisz. Ale na poważnie - różnic jest znacznie wiÄ™cej. NajważniejszÄ… z nich jest zabezpieczenie przed odwrotnym podÅ‚Ä…czeniem zasilania diody, gdzie w przypadku standardowej wersji koÅ„czyÅ‚o siÄ™ to upaleniem elementu.

Nie bez znaczenia jest również fakt, że WS2812B sÄ… jaÅ›niejsze i zapewniajÄ… lepszÄ… powtarzalność kolorów - innymi sÅ‚owy, przy wiÄ™kszej iloÅ›ci diod, które Å›wiecÄ… tÄ… samÄ… ustawionÄ… barwÄ…, nie bÄ™dÄ… od siebie odbiegać. Udoskonaleniu ulegÅ‚a również sama struktura diody, którÄ… doskonale widać na zdjÄ™ciach powyżej - sterownik zostaÅ‚ oddzielony i odseparowany od części z diodami skÅ‚adowymi, zapewniajÄ…c chociażby lepsze odprowadzanie ciepÅ‚a, co przeÅ‚oży siÄ™ na dÅ‚uższÄ… żywotność.

Sposób Å‚Ä…czenia WS2812B

Łączenie ze sobÄ… WS2812B nie może być już bardziej proste. Wszystkie diody podÅ‚Ä…czamy do zasilania +5V i masy, gdzie dodatkowo równolegle dodajemy kondensator o pojemnoÅ›ci 100nF. Na pin DIN pierwszej diody podajemy sygnaÅ‚ z mikokontrolera, a wyjÅ›cie DOUT Å‚Ä…czymy z wejÅ›ciem DIN kolejnej diody.

To jednak nie wszystko :) Pomimo tego, że schemat aplikacyjny przewiduje tylko kondensator na zasilaniu, to bezwzglÄ™dnie należy pamiÄ™tać o kilku rzeczach, które pozwolÄ… uniknąć Ci sytuacji usmażenia pierwszej diody w Å‚aÅ„cuchu, gdzie nie pozostanie nic innego jak jej wymiana lub skrócenie taÅ›my. Dioda może być zasilana napiÄ™ciem z dość szerokiego przedziaÅ‚u 3.5 ÷ 5.3V, to należy pamiÄ™tać, że wejÅ›cie sterujÄ…ce DIN jest już maÅ‚o toleranycjne - wtrzyma tylko 0.5V wiÄ™cej niż zasilanie. Dlatego zadbać należy o kilka spraw:

  • Nie przekraczaj napiÄ™cia zasilania powyżej 5V,
  • Dodaj kondensator elektrolityczny o pojemnoÅ›ci od 100µF do 1000µF (np.: 6.3V lub wyższy) przy zasilaniu pierwszej diody,
  • Dodaj rezystor o wartoÅ›ci od 300Ω do 1kΩ pomiÄ™dzy mikrokontrolerem, a pierwszym pinem DIN. Rezystor ten umieść jak najbliżej diody,
  • Postaraj siÄ™ możliwie skrócić odlegÅ‚ość pomiÄ™dzy mikrokontrolerem, a pierwszÄ… diodÄ…,
  • Nie podÅ‚Ä…czaj diod przy wÅ‚Ä…czonym zasilaniu. JeÅ›li już musisz, rób to w kolejnoÅ›ci: masa, zasilanie, linia sterujÄ…ca, a odÅ‚Ä…czaj w odwrotnej kolejnoÅ›ci
  • JeÅ›li diody zasilasz z oddzielnego źródÅ‚a zasilania, najpierw doprowadź zasilanie do diod, potem do mikrokontrolera,
  • PamiÄ™taj o zabezpieczeniu antystatycznym :) swetry, polary i inne ubiory Å‚atwo gromadzÄ…ce Å‚adunek nie sÄ… wskazane

Te kilka punktów sprawi, że bÄ™dziesz spaÅ‚ spokojnie i unikniesz frustracji np. przy koniecznoÅ›ci wyciÄ™cia diody z taÅ›my i przelutowania wtyczek - tym bardziej, jeÅ›li taÅ›ma jest w wodoszczelnej otulinie.

Gotowe moduły i taśmy z WS2812B

SzeorkÄ… ofertÄ™ z wszelkimi moduÅ‚ami i taÅ›mami wyposażonymi w diody WS2812/B znajdziecie w sklepie elty.pl, gdzie ceny sÄ… bardzo atrakcyjne. Poniżej przedstawiÄ™ tylko niektóre z nich, które osobiÅ›cie posiadam:

Wodoszczelna taśma 30 diod / 1 metr

Matryca 4 x 8 x 8

Shield dla Arduino

Diody SMD 5050

 

W sklepie Botland dostaniemy również moduÅ‚y z pojedynczÄ… diodÄ… lub w formie pierÅ›cieni, a także w "tradycyjnej" formie 5mm diody:

  

Program sterujÄ…cy

Aby nasze diody ożyÅ‚y, polecam bardzo dobrÄ… bibliotekÄ™ od Adafruit - NeoPixel Library, gdzie wystarczÄ… nam praktycznie trzy funkcje:

  • begin() - do inicjalizacji biblioteki NeoPixel,
  • setPixelColor() - do ustawienia koloru Å›wiecenia wybranej diody w Å‚aÅ„cuchu,
  • show() - do wysÅ‚ania danych do naszego Å‚aÅ„cucha z diodami

Nasz program będzie wyglądał następująco:

  1. #include

  2.  

  3. #define PIN 6

  4. #define LICZBADIOD 16

  5.  

  6. Adafruit_NeoPixel pixels = Adafruit_NeoPixel(LICZBADIOD, PIN, NEO_GRB + NEO_KHZ800);

  7.  

  8. void setup()

  9. {

  10.   pixels.begin(); // Inicjalizacja biblioteki

  11. }

  12.  

  13. void loop()

  14. {

  15.   for(int i=0; i

  16.   {

  17.     pixels.setPixelColor(i, 255, 0, 0); // Dioda "i" oraz skladowe R=255 G=0 B=0

  18.     pixels.show(); // Wysylamy dane do lancucha

  19.     delay(500); // Opoznienie 500ms przed zaswieceniem kolejnej diody

  20.   }

  21. }

W funkcji setPixelColor() oprócz numeru diody i skÅ‚adowych RGB, możemy podać również podać wartość koloru za zwracany przez funkcjÄ™ Color(). DziÄ™ki temu możemy przechować wartość koloru w jednej zmiennej uint32.

  1. pixels.setPixelColor(i, pixels.Color(255, 0, 0));

Biblioteka NeoPixels oferuje jeszcze szereg innych przydatnych funkcji:

  • setPin() - zmiana pinu sterujÄ…cego,
  • setBrightness() - ustawienie jasnoÅ›ci Å›wiecenia,
  • clear() - wygaszenie caÅ‚ego Å‚aÅ„cucha,
  • getPixels() - pobranie wkaznika do danych, po 3 bajty dla każdej diody,
  • getBrightness() - pobranie ustawionej jasnoÅ›ci Å›wiecenia,
  • numPixels() - pobranie iloÅ›ci diod w Å‚aÅ„cuchu,
  • getPixelColor() - pobranie koloru wybranej diody,
  • canShow() - zwraca wartość true, jesli mozliwe jest wyslanie danych

Uruchomienie