[PROJEKT] Prosty sterownik listwy z diodami LED WS2812

Do układu trzeba jeszcze dołączyć przycisk, za pomocą którego będzie można zmienić tryb pracy. Należy podłączyć go do pinu 2. Podłączenie przycisku należy wykonać jak na poniższym zdjęciu:

Rysunek 4. Przycisk monostabilny na płycie stykowej podłączony do płytki KAmduino UNO

Teraz można przejść do napisania programu prostego sterownika dla taśmy z diodami adresowanymi WS2812. Przyciśniecie przycisku będzie powodowało przejście do następnego efektu. Gdy lista efektów się skończy, sterownik wróci do pierwszego efektu.

Na początku programu załączone są niezbędne biblioteki NeoPixel do sterowania diodami WS2812. Następnie znajdują się definicje: pinu obsługującego komunikacje z diodami (w tym przypadku jest to pin 6) oraz ilości diod, które są sterowane (czyli ilości diod znajdujących się na pasku, w tym przypadku jest to 60 diod).

Obsługa przycisku jest realizowana w przerwaniu – po naciśnięciu wyzwalana jest funkcja przycisk. Po 200 milisekundach sprawdzany jest stan przycisku – czy nadal jest wciśnięty (ma to zapobiec drganiom styków przycisku), a następnie zmienna licznik jest zwiększana o 1. Gdy zmienna osiągnie wartość większą niż 5 (ilość efektów), jej wartość wróci do 1.

Następnie w kodzie znajdują się funkcje obsługujące kolejne efekty (są one opisane poniżej). W funkcji konfiguracyjnej setup() znajdują się ustawienia pinu 2 jako wejście, ustawienia dotyczące pracy portu szeregowego oraz pinu 2 jako tego, od którego jest generowane przerwanie.

W pętli głównej programu sprawdzana jest zmienna licznik i w zależności od jej wartości wywoływana jest odpowiednia funkcja odpowiedzialna za tryb pracy.

Teraz przejdę do omówienia funkcji, które będą realizować efekty świetlne. W pierwszym efekcie wszystkie diody świecą kolejno na czerwono, niebiesko oraz zielono, a kolor zmienia się co 1 sekundę. Realizuje to następujący kod:

W drugiem efekcie po pasku ledowym „wędruje” pojedyncza dioda. W jedną stronę dioda ma kolor czerwony, natomiast w drugim kierunku kolor zielony. Realizuje to kod:

Trzeci efekt to stroboskop, czyli szybkie zapalanie i gaszenie całego paska ledowego (barwa biała). Oto kod realizujący ten efekt:

Kolejny efekt to zapalanie kolejnych diod na kolor zielony, następnie gaszenie ich w odwrotnej kolejności:

W ostatnim efekcie, pasek również jest zapalany stopniowo, a następnie nie jest gaszony, lecz zapala się stopniowo na kolejny kolor:

To tylko przykładowe efekty – oczywiście do kodu można dodać własne pomysły. Można np. uzależnić szybkość działania efektu od odczytu czujnika.

Powyższe efekty zaprezentowane są na materiale wideo:

Do pobrania

O autorze