Arduino + ledy ws2812b - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Diody LED i Multiplexing (https://forum.arduinopolska.pl/dzial-diody-led-i-multiplexing) +--- Wątek: Arduino + ledy ws2812b (/watek-arduino-ledy-ws2812b) |
Arduino + ledy ws2812b - busyboy - 20-10-2019 Witam, Od jakiegoś czasu bawię się Arduino (wersja Nano), zrobiłem kilka prostych projektów teraz przyszedł czas na diody Led ws2812b. Trochę czytałem na ten temat ale chciałbym dowiedzieć się coś więcej. W przypadku gdy mam np 5 pasków led po 1m w jaki sposób należy je podłączyć aby można było sterować wyświetleniem każdego paska niezależnie ? szeregowo (1 wyjście sterujące z Arduino) czy każdy pasek oddzielnie (klika wyjść z Arduino) ? Finalnie chciałbym zrobić efekt coś ale spadające sople (np. ok 15 równolegle położonych lasków LED) Trafiłem również na program o nazwie led editor - czy ktoś z Was z niego korzysta ? Jeżeli mam np. 15 lasków led - położonych równolegle - taki mały ala multiplexing - to czy jest jakiś soft aby np wyświetlić na mi jakiś efekt ? osobiście nie wyobrażam sobie pisania ręcznie wszystkich efektów (klatka po klatce w jaki sposób się ma wyświetlać) Dziękuje za wskazówki Pozdrawiam RE: Arduino + ledy ws2812b - semi - 20-10-2019 (20-10-2019, 12:29)busyboy napisał(a): W przypadku gdy mam np 5 pasków led po 1m w jaki sposób należy je podłączyć aby można było sterować wyświetleniem każdego paska niezależnie ? szeregowo (1 wyjście sterujące z Arduino) czy każdy pasek oddzielnie (klika wyjść z Arduino) ?Szeregowo. (20-10-2019, 12:29)busyboy napisał(a): Finalnie chciałbym zrobić efekt coś ale spadające sople (np. ok 15 równolegle położonych lasków LED)To już nie na AVR a jeśli nawet wybierzesz mocniejszy uC z DMA to nie z bibliotekami Arduino, ale.... to https://forum.atnel.pl/post222192.html#p222192 może rozwiązać problem nawet na AVR ale.... nie ma tego jeszcze w sprzedaży, chyba, że sam zrobisz PCB. Zrobisz? (20-10-2019, 12:29)busyboy napisał(a): osobiście nie wyobrażam sobie pisania ręcznie wszystkich efektów (klatka po klatce w jaki sposób się ma wyświetlać)Najpierw to rozwiąż problem 15 pasków LED co daje (przy 1m na pasek) łącznie do 2160 LED zależnie jak gęsto są ułożone (30, 60, 90 czy 144 na metr). Policz sobie, jak wszystko połączysz szeregowo jakie odświeżanie będziesz miał. Kicha, co? Wiec równolegle ale AVR nie da rady bo nie używa DMA i czy szeregowo czy równolegle jeden ch.... Szukaj więc uC z DMA ale jak wspomniałem biblioteki Arduino są do du...... (jak całe Arduino) więc musisz sam napisać obsługę WS2812 z wykorzystaniem DMA. Zapomnij o tym, że użyjesz np 15+1 ArduinoUNO. W czasie transmisji do WS2812 zawieszane są przerwania 9choc nie muszą ale Arduino to Arduino, bardziej Gó..ino) więc nie da się odbierać komend sterujących z innego uC przez np UART (chyba, że 2 bajty wystarczą bo takie jest FIFO w AVR). Pomijając problemy z napisaniem softu pozostaje problem ceny. 16 Arduino, nawet klonów to koszt ok 480zł (klony są po ok 30zł). Za 55zł kupisz ORYGINALNĄ płytkę NOCLEO z STM. I tym miłym akcentem kończę swoje wywody. Jak wysterujesz 15 pasków to napiszę jak poradzić sobie z efektami ale jeśli to mają być animacje to możesz potrzebować setek kB FLASH. Karta SD może nie wypalić, zwłaszcza jak użyjesz trybu 1-bit (SPI) zamiast 4-bit (to już nie na AVR, nawet Xmega nie pomoże). Karta jest stosunkowo wolna, więc DMA i/lub RTOS, znasz RTOS? Ratunkiem będzie pamięć DataFlash. Jeśli zrezygnujesz z animacji o której pisałeś, a wygenerujesz efekty on-line, to wtedy nie potrzeba dużo FLASH. PS Według mnie porwałeś się z przysłowiową motyką na księżyc. Od razu full LED zamiast najpierw próby jak to działa, jakie są ograniczenia Arduino. RE: Arduino + ledy ws2812b - busyboy - 20-10-2019 Witam, Dziękuje Tobie za informacje i to tak szczegółowe i rozbudowane. Muszę jeszcze bardzo dużo poczytać i się nauczyć w tym temacie po powiem szczerze nic z tego nie rozumiem Może źle się wyraziłem, może faktycznie porywam się z motyką na księżyc - chodzi mi o taki efekt i widzę że jest to zrobione na Arduino UNO https://www.youtube.com/watch?v=ETl0VXT75oQ https://www.youtube.com/watch?v=jbNSa695bVo https://www.youtube.com/watch?v=d4LSNHRiBDE https://www.youtube.com/watch?v=VtIWN5SJDYo (link są przykładami tematyki) Wiem już że paski led muszę połączyć szeregowo. Ale co z metodą wyświetlania konkretnych efektów typu np. węza, spadających sopli, gniazdy itp w jaki sposób można to zrobić ? są gotowe biblioteki czy kod trzeba ręcznie tworzyć ? przejście po przejściu ? Pozdrawiam RE: Arduino + ledy ws2812b - semi - 20-10-2019 (20-10-2019, 15:22)busyboy napisał(a): chodzi mi o taki efekt i widzę że jest to zrobione na Arduino UNOW linkach nie masz blisko 3000 LED. Wtedy nie ma problemu, nawet UNO to obsłuży i .... niewiele więcej (zawieszanie przerwań). Jest sposób na to ale obciążenie AVRka osiąga 80..90% (czytaj Elektronike dla wszystkich, tam będzie to dokładnie wyjaśnione i będą kody źródłowe) bo problemem sa IRQ RX z innych UART. (20-10-2019, 15:22)busyboy napisał(a): Wiem już że paski led muszę połączyć szeregowo. Ale co z metodą wyświetlania konkretnych efektów typu np. węza, spadających sopli, gniazdy itp w jaki sposób można to zrobić ? są gotowe biblioteki czy kod trzeba ręcznie tworzyć ? przejście po przejściu ?Efekty, która przytoczyłeś w linkach nie są generowane jako animacja tylko "matematycznie". Tu nie ma możliwosci wrzucić filmów, mam gdzies na YT . Jak znajdę link to umieszczę na forum. Czy są gotowe libs? Wątpię bo jest to dość łatwe a jednocześnie liczba efektów ogromna i ciężko napisać libs, która zadowoli choćby 5% użytkowników. Szukaj w przykładach dla WS281x. PS Co do ewentualnego multipleksowania pasków. Można to zrobić ale ma to sens, na beznadziejnym ArduinoUNO i podobnych. Zysk może być taki, że LED łączy się w gwiazdę (sterownik na środku). Innych korzyści nie widzę. RE: Arduino + ledy ws2812b - busyboy - 08-12-2019 Witam, Odgrzewam temat bo już próbowałem na wszystkie możliwe sposoby i nic (wszystkie możliwe biblioteki oraz przykłady które znalazłem w necie) Mam Arduino Nano oraz lasek ledowy WS2812 - i w żaden ale to w żaden sposób ten pasek ledowy nie świeci tak jak powinien - jednym słowem jak mu pasuje. Pasek działa poprawnie, jest podłączony pod mocny zasilacz (jeżeli chodzi o napięcie listy to jest ok). Np poniższy kod : Kod: #include <FastLED.h> Pasek Led świeci ale nie tak jak w kodzie Proszę o pomoc - co robię nie tak bo już nie mam zielonego pojęcia RE: Arduino + ledy ws2812b - semi - 08-12-2019 Piszesz o WS2812 a w kodzie masz Kod: #define DATA_PIN 11 Podłącz oscyloskop lub analizator logiczny do linii data WS2812 i pokaż co tam masz. RE: Arduino + ledy ws2812b - elvis - 08-12-2019 @busyboy, bardzo dobrze że zaczynasz od sterowania jedną diodą - to bardzo dobre podejście W każdym razie proponowałbym zmienić bibliotekę na coś sprawdzonego, np. od Adafruit. Kiedyś używałem tej biblioteki z shieldem dla Arduino i wszystko działało jak należy. Warto też sprawdzić czy na pewno masz wybrany odpowiedni moduł arduino przy kompilacji szkicu. RE: Arduino + ledy ws2812b - busyboy - 08-12-2019 Witam ponownie, Użyłem najłatwiejszego kodu jaki mogłem znaleźć, pasek led WS2812B 30 led, pin sterujący 11 Kod: #include <Adafruit_NeoPixel.h> Niestety efekt jest takim sam Arduino + ledy ws2812b - elvis - 08-12-2019 Skoro kod od Adafruit nie działa to coś jest nie tak z ledami, albo samym Arduino. Z tej biblioteki korzysta tak dużo osób ze raczej błędu trzeba szukać gdzie indziej. Proponuję sprawdzić jakie masz Arduino, jak taktowany jest zegar i czy na pewno odpowiada to wybranym opcjom. Jeśli masz inną płytkę Arduino, najlepiej inny model, też warto sprawdzić czy działa. Kolejna sprawa to - czy to na pewno masz ws2812? Masz może jakies inne programowalne diody, np shield do Arduino, albo tani moduł LED np. https://botland.com.pl/pl/lancuchy-i-matryce-led/6255-listwa-led-rgb-ws2812-5050-x-8-diod-53mm.html?search_query=Ws2812&results=38 ? Sent from my Pixel 2 XL using Tapatalk RE: Arduino + ledy ws2812b - busyboy - 08-12-2019 Arduino nano kupiłem na Aliexpress (https://pl.aliexpress.com/item/32341832857.html?spm=a2g0s.9042311.0.0.27425c0fpSdW2U) i to nie pierwszy raz, zawsze wszystko było ok z arduino przy innych projektach. Paski led tak samo, na Aliexpress (https://pl.aliexpress.com/item/2036819167.html?spm=a2g0s.9042311.0.0.408f5c0f3dRnMz) i to nie jeden a kilka - każdy zachowuje się tak samo. Może coś nie tak jest z ustawianiem modelu arduino z mojej strony ? może trzeba zmienić taktowanie ? nie mam bladego pojęcia Mam jeszcze diody led ws2811 - https://pl.aliexpress.com/item/32625011824.html?spm=a2g0s.9042311.0.0.39405c0fHaH8S5 - w tym przypadku jest taka sama sytuacja |