Elektroda.pl
Elektroda.pl
X
PCBway
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Arduino - kilka pętli, wybór jednym przyciskiem bez opóźnień

24 Lis 2016 19:40 1287 1
  • Poziom 8  
    Witam wszystkich serdecznie!

    Pewien czas temu zacząłem swoją przygodę z Arduino i jak chyba każdy trafiam na problemy, z którymi niestety sam nie potrafię sobie poradzić. Tak stało się i teraz więc już wyjaśniam na czym polega mój problem.
    Piszę program do sterowania drzewkiem RGB zbudowanym na diodach WS2812 i bibliotece FastLED.
    Póki co mój program prezentuje się następująco:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Ta część kodu działa bez najmniejszych problemów, jednak chciałbym dodać też efekt typu:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Do tego wszystkiego ze względów estetycznych chcę dodać tylko jeden przycisk do skoków między programami oraz jeszcze kilka programów, ale w taki sposób, żeby zmiany następowały natychmiast.
    Próbowałem dodać przycisk w przerwaniu i wybór pętli w Switch Case, ale nie bardzo wiedziałem jak się za to zabrać. Przerwanie działało, ale przycisk przełączał czasem o kilka pozycji od razu, a poza tym pętla musiała się skończyć żeby nastąpiła zmiana na inną. Chodzi mi o szybkie zmiany ponieważ po dodaniu 30 diod i wyborze pętli, w której każda dioda dla każdego z trzech kolorów przechodzi 255 stopni jasności trwa bardzo długo.
    Jeżeli ktoś jest w stanie chociaż naprowadzić mnie na właściwą drogę w jaki sposób zmienić program to byłbym bardzo wdzięczny.
    Pozdrawiam i przepraszam za tak długi post ;)
  • PCBway
  • Poziom 25  
    Zamias delay() użyj odpowiednio millis() - najprościej. Możesz też użyć biblioteki ArduinoThread.