Kolejna zabawka na ledach WS2812

Awatar użytkownika
Miś
Posty: 750
Rejestracja: 22 kwie 2016, 14:23
Kontaktowanie:

Kolejna zabawka na ledach WS2812

Postautor: Miś » 30 gru 2016, 20:10

Ho !
Może nie z takim rozmachem jak sufit zrobiony przez Krzyśka, ale też trochę się bawię z ledami WS2812.
Matryca 17x7 pixeli (119 led) sterowana z STM32F051 (starterkit Discovery M0).
Próbkowanie 48kHz przez wbudowany 12 bitowy ADC, potem transformata fouriera (stałoprzecinkowa), no i wyjście na ledy WS poprzez DMA.



Sorry za jakość video, ale moje normalne aparaty dostawały małpiego rozumu przy tym miganiu i nagrywałem to jakimś kiepskim gumcamem.
-- MIŚ --

Awatar użytkownika
Krzysztof
Administrator
Posty: 2860
Rejestracja: 19 kwie 2016, 14:03
Lokalizacja: Darłowo
Kontaktowanie:

Re: Kolejna zabawka na ledach WS2812

Postautor: Krzysztof » 30 gru 2016, 21:30

Super :OK:
Mam klienta poszukującego sterownik do WS2811/WS2812b który by wyświetlał programy do muzyki - może się podejmiesz? :mrgreen:

Awatar użytkownika
Sławek
Posty: 437
Rejestracja: 15 maja 2016, 5:45
Kontaktowanie:

Re: Kolejna zabawka na ledach WS2812

Postautor: Sławek » 01 sty 2017, 7:22

Zajedwabiscie :OK:

sol
Posty: 370
Rejestracja: 19 kwie 2016, 20:09
Kontaktowanie:

Re: Kolejna zabawka na ledach WS2812

Postautor: sol » 24 paź 2017, 20:51

Panowie, szlag mnie trafia, walczę żeby zrobić efekt fade dla tych diód,

na bibliotece adafruit funkcja setBrightness nie może być odpalana w pętli, kombinowanie z wysyceniem koloru na pętlach skończyło się porażką, a fastled mnie nie lubi

pędzę to z digisparka :)

Awatar użytkownika
Miś
Posty: 750
Rejestracja: 22 kwie 2016, 14:23
Kontaktowanie:

Re: Kolejna zabawka na ledach WS2812

Postautor: Miś » 24 paź 2017, 22:56

sol pisze:na bibliotece adafruit funkcja setBrightness nie może być odpalana w pętli...
A czemu nie ? Może być, tylko przed następnym odpaleniem każdego setBrightness trzeba odczekać na koniec wysłania poprzedniego (np przez użycie "canShow()") po czym kolejne setBrightness a po nim "show()".
-- MIŚ --

sol
Posty: 370
Rejestracja: 19 kwie 2016, 20:09
Kontaktowanie:

Re: Kolejna zabawka na ledach WS2812

Postautor: sol » 25 paź 2017, 6:53

Miś, napisz mi to jak debilowi, ja słabo ogarniam poruszanie się po ide :/

sol
Posty: 370
Rejestracja: 19 kwie 2016, 20:09
Kontaktowanie:

Re: Kolejna zabawka na ledach WS2812

Postautor: sol » 25 paź 2017, 7:03

a jak to traktować?
setBrightness() was intended to be called once, in setup(), to limit the current/brightness of the LEDs throughout the life of the sketch. It is not intended as an animation effect itself! The operation of this function is “lossy” — it modifies the current pixel data in RAM, not in the show() call — in order to meet NeoPixels’ strict timing requirements. Certain animation effects are better served by leaving the brightness setting alone, modulating pixel brightness in your own sketch logic and redrawing the full strip with setPixel().

Awatar użytkownika
Miś
Posty: 750
Rejestracja: 22 kwie 2016, 14:23
Kontaktowanie:

Re: Kolejna zabawka na ledach WS2812

Postautor: Miś » 25 paź 2017, 10:26

To jest tylko info że ustawienie jasności nie jest optymalnym sposobem na robienie efektów. Po prostu jest dość wolne. Lepiej jest wpisywać nowe dane i je odświetlać.
Ale prościej się nie da.
Powinno zadziałać cos takiego:

for(i=255; i>0; i--)
{
while(!canShow()) ;
setBrightness(i);
show();
}
setBrightness(255); // przywroc max jasnosc dla nastepnego wyswietlenia
-- MIŚ --

sol
Posty: 370
Rejestracja: 19 kwie 2016, 20:09
Kontaktowanie:

Re: Kolejna zabawka na ledach WS2812

Postautor: sol » 25 paź 2017, 10:29

obszedłem już problem na dwóch for'ach, ale Twoje rozwiązanie jest bardziej eleganckie, już testuję ;) dzięki!

Awatar użytkownika
Miś
Posty: 750
Rejestracja: 22 kwie 2016, 14:23
Kontaktowanie:

Re: Kolejna zabawka na ledach WS2812

Postautor: Miś » 25 paź 2017, 14:47

Jak będzie za szybko wygaszać do dopisz jakiegoś delaya przed show(). Np delay(20);
-- MIŚ --


Wróć do „Luźne pogaduchy”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość