Sterowanie Led WS2812B zmiana efektu przyciskiem bez opóźnienia - 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: Sterowanie Led WS2812B zmiana efektu przyciskiem bez opóźnienia (/watek-sterowanie-led-ws2812b-zmiana-efektu-przyciskiem-bez-op%C3%B3%C5%BAnienia) |
Sterowanie Led WS2812B zmiana efektu przyciskiem bez opóźnienia - brendy - 18-07-2019 Witam Mam pytanie jak ustawić w tym szkicu, żeby zmiana efektu przyciskiem odbywała się bez opóźnienia. Ledy chce tak ustawić, żeby zapalały się co sekundę, ale kiedy ustawie co sekundę to po przyciśnięciu przycisku zmiana następuje po 28s, ponieważ pasek ma 30 diod a program liczy cały ten czas od wcisnięcia przycisku. Czy da się to ustawić, żeby pasek szedł rosnąco co sekundę do końca, a potem przycisk i od razu wraca malejąco co sekundę. Kod: #include <Adafruit_NeoPixel.h> // Biblioteka do sterowania diodami RE: Sterowanie Led WS2812B zmiana efektu przyciskiem bez opóźnienia - kaczakat - 18-07-2019 Nie używaj delay, możesz przerwać pętlę/funkcję używając break lub return. Przycisk odczytaj w przerwaniu PCINT lub INT lub w przerwaniu timera. Ładniejsze efekty wymagają więcej wiedzy ogólnej, bardziej rozbudowany warsztat, znajomość większej ilości technik, blablabla - nauka. RE: Sterowanie Led WS2812B zmiana efektu przyciskiem bez opóźnienia - brendy - 19-07-2019 Niestety nie mam jeszcze takiej wiedzy, kombinowałem w biblioteczce i udało mi się znaleźć i pozmieniać i uzyskałem efekt, który chciałem tylko nie wiem jak zmienić żeby po podłączeniu arduino od razu ledy się zapalały stopniowo, muszę wcisnąć dodatkowo guzik. Podpowiedziałbyś co trzeba usunąć, żeby po podłączeniu zasilania ledy sie zapały stopniowo bez wyzwalania guzikiem? Kod: #include <Adafruit_NeoPixel.h> RE: Sterowanie Led WS2812B zmiana efektu przyciskiem bez opóźnienia - Robson Kerman - 19-07-2019 Pierwszy program działał na przerwaniu (i dobrze) i wystarczyło w pętlach for(int i=0;i <NUMPIXELS ;i++), wstawić gdzieś if(efekt==2) break; dla funkcji efekt_1() ; oraz if(efekt==1) break; dla funkcji efekt_2() ; Drugi program jest bardziej rozbudowany i podejrzewam, że blokuje się tak samo jak pierwszy, ale nie chciało mi się go czytać, bojest napisany bardzo nie optymalnie. To znaczy, że jeśli program miałby robić jeszcze inne rzeczy, to się wysypie (przez delaye). Te inne rzeczy to nawet sprawdzanie stanu przycisku, które mu nie wychodzą tak, jak wyjść powinny. RE: Sterowanie Led WS2812B zmiana efektu przyciskiem bez opóźnienia - brendy - 21-07-2019 Robson Kerman, dziękuję za pomoc dzisiaj jak wrócę to sprawdzę, spróbuję wstawić tak jak piszesz. To napisze czy mi się udało. Jeśli chodzi o pamięć arduino np na Uno ile można podłączyć takich ledow? |