Stacja pogodowa na KA-Nucleo-F411CE i KA-Nucleo-Weather, część 2

W zakładce Parameter Settings definiuje się ustawienia konkretnego timera. Aby timer generował przebieg PWM z określoną częstotliwością i wypełnieniem należy odpowiednio skonfigurować jego preskaler oraz rejestr w którym dokonuje się zliczanie licznika. Nie wnikając w dokładne zasady działania timera częstotliwość PWM generowaną przez timer można obliczyć ze wzoru:

F_timera = F_PWM * ilość_kroków

Natomiast presklaler dla timera można obliczyć za pomocą następującego wzoru:

Preskaler = (F_timera_sys / F_timera) – 1

Gdzie F_timera_sys to częstotliwość magistrali, do której podłączony jest timer (do odczytania w zakładce Clock Configuration):

Rys 26. Wygląd okna Clock Configurations

Dla PWM 100Hz i 100 kroków obliczenia wyglądają następująco:

F_timera = 100*100 = 10kHz

Preskaler = 100000000/10000 – 1 = 10000 – 1 = 9999

W konfiguracji timera w polu Counter Period należy wpisać liczbę kroków PWM – 1, w tym przypadku 99.

Rys 28. Okno konfiguracji timera

Warto zauważyć, że diody aktywowane są stanem niskim, więc warto zmienić polaryzację kanału na przeciwną, aby zachować zależność wzrostu jasności ze wzrostem kroku PWM.

Następnie należy odblokować przerwania w zakładce NVIC Settings i konfiguracja timera jest gotowa – można wygenerować zaktualizowany projekt.

Po otwarciu kodu i jego skompilowaniu nic się nie stanie. Należy najpierw włączyć generowanie sygnału PWM na odpowiednim kanale. Odpowiedzialne za to są funkcje przedstawione na rysunku 29.

Rys 29. Kod włączania sygnału PWM na odpowiednich kanałach

Dzięki tym funkcjom rozpoczęło się generowanie sygnału PWM na pinach podłączonych do diody. Aby płynnie przechodzić między kolorami wystarczy zmieniać wypełnienie każdego z przebiegów. Aby zmienić wypełnienie przebiegu wystarczy wpisać odpowiednią wartość z przedziału 0ilość_kroków-1 do rejestru CCRx timera, gdzie x oznacza numer kanału. Program który płynnie przechodzi między kolorami po całym spektrum barw został przedstawiony na rysunku 30.

Rys 30. Kod programu umożliwiający przemiatanie pełnego spektrum barw diody RGB

Podsumowanie

Jak łatwo zauważyć, pomimo faktu, że została przedstawiona tylko część funkcjonalności modułu wraz z ekspanderem, można go wykorzystać do zbudowania stacji pogodowej, układów kontrolujących temperaturę w urządzeniach czy jako część układów automatyki czy inteligentnego domu. Dzięki przejrzystemu opisowi w dokumentacji oraz przyjaznym narzędziom do konfiguracji mikrokontrolera oprogramowanie zestawu uruchomieniowego to czysta przyjemność. Dużym atutem zestawu jest złącze mikroUSB, dzięki czemu nie jest potrzebny coraz rzadziej spotykany przewód miniUSB.

Bartosz Cichocki, Koło Automatyków SKALP, Politechnika Gdańska