Popularny post Elvis Napisano Grudzień 21, 2019 Popularny post Udostępnij Napisano Grudzień 21, 2019 W zeszłym roku planowałem przygotować oświetlenie choinki na diodach ws2812. Plan był świetny, ale jak to zwykle z planami bywa nie do końca się powiódł. Niestety po świętach diody ws2812 nie były już aż tak ciekawe i musiały przeleżeć w szafie do następnego roku. W momencie kiedy piszę te słowa jest już mało czasu do gwiazdki, ale nie zostaje mi nic poza optymizmem - może tym razem się uda. Tym razem postanowiłem zabrać się do tematu nieco solidniej niż w zeszłym roku. Jak ogólnie wiadomo, układy elektroniczne działają lepiej gdy są zasilane, stąd na początek spróbowałem wykonać trochę pomiarów i testów związanych z tą częścią projektu. Docelowo mam kilka taśm z diodami ws2812, każda po 144 sztuki na metr, coś jak https://botland.com.pl/pl/paski-led-adresowane/5814-pasek-led-rgb-ws2812b-cyfrowy-adresowany-ip65-144-ledm-9wm-5v-1m.html W zeszłym roku już się do nich przymierzałem, więc wiem że wymagają solidnego zasilania. Dla ułatwienia najpierw używam małego krążka z 24 diodami (https://botland.com.pl/pl/lancuchy-i-matryce-led/6246-pierscien-led-rgb-ws2812b-5050-x-24-diody-86mm.html) oraz Arduino UNO. Pierwsze podłączenie i uruchomienie przykładowego programu jest banalnie proste. Biblioteka Adafriut_Neopixel działa przepięknie, a diody nawet zasilane z Arduino dają radę (całość podłączona przez USB do komputera). Teoretycznie na tym można byłoby poprzestać, w końcu działa. Jednak wiem, że jeśli podłączę np. 4 taśmy po 144 diody to już pewnie tak łatwo nie będzie. Zacznijmy więc od ustalenia jakie będzie potrzebne zasilanie dla takiego układu oraz jego docelowej wersji. Z góry zaznaczam, że moje pomiary nie są wykonywane z niebotyczną dokładnością, powiedziałbym że wiele z nich to wręcz oszacowania. Ale to i tak lepsze niż nic nie wiedzieć i po prostu liczyć że jakoś to będzie. Jako pierwszy test podłączam multimetr jako amperomierz między Arduino i krążek LED-ów. Ku mojemu zaskoczeniu w obwodzie płynie całkiem spory prąd, bo 21,7mA a na razie wszystkie diody są wyłączone. To skłoniło mnie do wykonania całej serii pomiarów - przy każdym teście steruję tylko jedną diodą, tzn. jedną składową (czerwoną, zieloną, albo niebieską) z jednej diody ws2812. W kolejnych pomiarach zmieniane jest wypełnienie PWM od 0 do 255: Jak widać niezależnie od koloru diody, zmierzone prądy są praktycznie takie same. Natomiast dla mnie zaskoczeniem był znaczny prąd przy wyłączonych diodach oraz niewielki pobór prądu gdy diody świecą. Odejmując od wyników prąd pobierany przy zerowym wypełnieniu dostajemy: Nie wiem, czy to widać z samych tabelek, ale wyniki są w pełni liniowe. Poniżej wykres dla pierwszej tabelki, czyli całkowitego poboru prądu przez krążek: Natomiast pod odjęciu prądu dla PWM=0: Sprawdziłem pobór prądu dla paska 144 wyłączonych diod. Wynik był zbliżony do 140 mA, wygląda więc na to że każda dioda ws2812b pobiera prawie 1mA nawet jeśli nie świeci. To niemiłe zaskoczenie. Kolejna sprawa to szacowanie ile maksymalnie może pobrać dioda. Wcześniej testowałem włączając tylko jedną składową w danym momencie. Poniżej są wyniki gdy jedna dioda świeci światłem białym, czyli PWM dla każdej składowej jest identyczny: Podobnie jak poprzednio można odjąć pierwszą wartość: Teraz już chyba widać jak można oszacować pobór prądu jednej diody ws2812b. Wartość stała to 1mA, następnie w zależności od wypełnienia PWM oraz liczby składowych koloru jest to 0-32mA. Więc w najgorszym przypadku pasek 144 diod powinien wymagać prawie 5A prądu... dużo. Na szczęście diody nie muszą być zawsze sterowane z pełnym wypełnieniem. Na moje potrzeby PWM=64, czyli 25% to i tak bardzo wysoka jasność. Wówczas zamiast 5A powinno wystarczyć 1,3A, ale pojawią się inne niespodzianki - o których napiszę za chwilę. Postanowiłem również przetestować napięcie zasilania WS2812B. Ogólnie dokumentacja do tych diod jest delikatnie mówiąc niezbyt obszerna (https://www.seeedstudio.com/document/pdf/WS2812B Datasheet.pdf). Znajdziemy w niej jednak chociaż wskazówkę dotyczącą napięć zasilania: Czyli od 3,5V do 5,3V. Oczywiście nie byłbym sobą gdybym nie sprawdził co będzie jak podłączymy mniej niż 3,5V (więcej niż 5,3V jednak nie miałem odwagi sprawdzać). WS2812B działają już przy napięciu 2,3V. Poniżej tabelka z poborem prądu gdy diody są wyłączone, czyli PWM=0: Przy Vin=5V mamy to co w poprzednich pomiarach, czyli trochę ponad 21mA prądu zużywanego nawet gdy diody nie świecą. Ale co warto zauważyć ten prąd zależy od napięcia, więc przy 3,5V tracilibyśmy połowę tego co przy standardowym napięciu. Ten test postanowiłem przeprowadzić jednak z innego powodu - nie chodziło mi o znalezienie minimalnego napięcia gdy ws2812 działają, ale o sprawdzenie, czy prąd wyjściowy zależy od napięcia zasilania. Inaczej mówiąc o ustalenie, czy ws2812 mają źródła prądowe. Wysterowałem zieloną składową jednej diody na 25%, czyli PWM=64. Poniżej wyniki pomiarów: Jak widzimy prąd pobierany przez układ zależy od napięcia, ale spróbujmy odjąć od tych wyników zmierzone wcześniej prądy pobierane gdy diody nie świecą: Teraz chyba już widać o co chodziło z napięciem minimalnym oraz prądami. Co prawda pobór prądu zależy od napięcia zasilania, ale to o ile zwiększa się prąd przy zmianach PWM jest stałe o ile tylko zasilimy układ z co najmniej 3,5V. Poniżej tego progu ws2812 też działają, ale prądy są mniejsze niż powinny. 3 1 Cytuj Link do komentarza Share on other sites More sharing options...
Elvis Grudzień 21, 2019 Autor tematu Udostępnij Grudzień 21, 2019 (edytowany) Nazbierałem już trochę wyników, czas je wykorzystać. Spróbowałem oszacować jakie prądy będą konieczne do zasilenia różnej liczby diodek na choince: 5 metrowy pasek świecący na biało to ponad 23A - dla mnie trochę za dużo. Ale już zejście z pwm do 25% daje jakieś 6,4A - znacznie lepiej. Ale zanim zacznę cokolwiek podłączać postanowiłem porównać moje "wyniki teoretyczne" dla 24 diodek z pomiarami. Poniżej to co wyszło: Tak jak napisałem na wstępie, nie dysponuję sprzętem laboratoryjnym, ale wygląda na to że szacunki całkiem nieźle wyszły. Oczywiście błąd będzie na pewno większy dla większej liczby diod, ale widać że dla 24 sztuk wyszło w miarę dobrze. Niestety podczas wykonywania pomiarów spotkała mnie kolejna niespodzianka. Dla wypełnienia PWM powyżej 50% musiałem zmienić zakres w multimetrze... i otrzymałem zupełnie inne wyniki niż wcześniej. Nie pozostało nic innego jak wygrzebać z szafy stary oscyloskop i przyjrzeć się o wiele dokładniej zasilaniu WS2812B. Edytowano Grudzień 21, 2019 przez Elvis 1 1 Cytuj Link do komentarza Share on other sites More sharing options...
Elvis Grudzień 21, 2019 Autor tematu Udostępnij Grudzień 21, 2019 Do testów jak poprzednio wykorzystuję krążek 24 diod oraz Arduino UNO. Ponieważ będę testował tylko pojedyncze diody, więc wróciłem do zasilania z USB, podłączam oscyloskop i na początek pomiar prądu, gdy diody nie świecą: Niby nic ciekawego ale warto się upewnić, że nowa metoda daje te wyniki co poprzednio (wcześniej było 21,6mA, teraz 23,4mA - na większą dokładność i tak nie mam co liczyć). Kolejny prosty test to jedna dioda świecąca maksymalnie na biało, czyli PWM 100%: Wcześniej wyszło mi 52,9mA, teraz 54,9mA - czyli zarówno przy zerowym, jak i pełnym wypełnieniu pomiary oscyloskopem pokrywają się z wynikami otrzymanymi multimetrem. Czas więc przejść do czegoś ciekawszego. Wypełnienie 50%, czyli PWM=128: Jak widać i w sumie można się było spodziewać, prąd płynący w obwodzie wcale nie jest stały. Widzimy też częstotliwość PWM, która wynosi ok. 1,2kHz. Co ciekawe każda dioda WS2812B ma nieco inną częstotliwość, podobną ale inną. Jeszcze dla upewnienia się, że wszystko działa PWM=25%, czyli to co chciałbym mieć na choince: Dotychczas była używana jedna dioda, ale co się stanie gdy wysterujemy dwie? Pierwszy pomiar jest nieco zaskakujący: Okazało się jednak że winne było uśrednianie używane wcześniej, po jego wyłączeniu lepiej widać co się dzieje: Jednak częstotliwość PWM każdej diody jest nieco inna, więc przebiegi nakładają się na siebie w przeróżny sposób: Chyba już widać jak strasznie ws2812b zaśmiecają linie zasilania. Jeśli ktoś nie wierzy, poniżej wyniki dla 8 sztuk (zmieniona skala): To chyba wyjaśnia częste problemy z zasilaniem pasków WS2812B. Jak widać nawet przy wypełnieniu 25% i akceptowalnym prądzie średnim, wartości chwilowe mogą osiągać maksimum. Dlatego bardzo ważne jest filtrowanie oraz używanie zasilacza z odpowiednim zapasem mocy. Trochę mnie to wszystko zmartwiło muszę przyznać, bo okazuje się że prosty łańcuch lampek na choinkę może być nieco trudniejszy niż myślałem. Z drugiej strony już wiem dlaczego każdy odcinek LED ma własne zasilanie - nawet nie chcę myśleć jak wyglądałyby oscylogramy przy tych 23A, które mi wyszły z wcześniejszych obliczeń. Wydaje mi się, że o zasilaniu WS2812B wiem już wystarczająco dużo, teraz czas zabrać się za to co proste i przyjemne - czyli sterowanie. 2 Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!