Spis treści

Nie zagłębiając się zanadto w zasadę pracy licznika TC1 i komparatora porównującego możemy go po prostu ustawić w tryb PWM, bo twórcy mikrokontrolera stworzyli taką właśnie możliwość co znacznie ułatwi nam prace i zmniejszy stopień komplikacji programu do minimum. W trybie PWM licznik zachowuje się trochę inaczej niż w normalnych trybach liczenia czy odmierzania czasu. Przede wszystkim na przemian liczy w górę i w dół, co przypomina "schodkowy" przebieg trójkątny. Ponadto licznik w tym trybie nie jest już 16-bitowy, możemy ustawić go jako: 8- 9- lub 10-bitowy, czyli np. dla ustawienia 8-bitowego będzie zliczał od 0 do 255 i z powrotem. Z tego wniosek, że okres sygnału na wyjściu będzie stały - w zależności od ustawienia będziemy mieć stałą częstotliwość, na którą współczynnik wypełnienia nie będzie miał wpływu.
Teraz, gdy nasz licznik liczy sobie w górę i w dół od 0 do 255 i z powrotem, wpiszemy do rejestru porównania dowolną liczbę z zakresu (oczywiście cały czas mowa o trybie 8-bitowym) 0-255 to na wyjściu OC1 (nóżka nr. 15) otrzymamy przebieg o stałej częstotliwości ale wypełnieniu całkowicie zależnym od liczby wpisanej do rejestru porównania OCR1 (Compare1a lub Pwm1a).
Pora zabrać się do testów. Na poprzedniej stronie umieściłem schemat układu z mikrokontrolerem, do wyjścia OC1 możemy bezpośrednio podłączyć małą diodę LED i obserwować intensywność jej świecenia lub zastosować tranzystorowy układ wzmacniający by podłączyć np. żarówkę zasilaną napięciem 12 V (można oczywiście zastosować duży tranzystor i sterować piecykiem).

Napisałem program, który za pomocą przycisków S1 i S2 umożliwi nam płynną zmianę stanu licznika porównania od 0 do 255 a tym samym płynną zmianę współczynnika wypełnienia od 0 do 100 %. Program możecie pobrać poniżej:
POBIERZ PROGRAM: Sterownik_pwm.bas

 

Ponadto program wyświetla aktualny stan rejestru porównania na wyświetlaczu LCD, można oczywiście kazać mu też obliczać wypełnienie.

Na początek w rejestrze ustawiłem małą liczbę 12, na oscyloskopie widzimy, że nasza żaróweczka zasilana jest dosłownie szpilkami ale przy tak dużej częstotliwości czasy trwania tych szpilek są malutkie i żarówka słabo się żarzy. Pobierana moc średnia jest bardzo mała.

Liczba jest już większa, na oscyloskopie widzimy, że przebieg ma wypełnienie równe 50 %, żarówka świeci już całkiem jasno.

Teraz już liczba w rejestrze porównania jest bliska maksimum dla trybu 8-bitowego. Na oscyloskopie widzimy, że napięcie zasilające jest praktycznie stałe, przerywane na bardzo krótkie odcinki czasu, które jednak wystarczą by obniżyć moc średnią o kilka %. Zapraszam do obejrzenia filmu przedstawiającego zmianę wypełnienia sygnału:

Małe zbliżenie płytki prototypowej.

A tutaj powiększony oscylogram ilustrujący przebieg napięcia na drenie tranzystora.

Przeprowadzony eksperyment miał na celu jedynie pokazać zasadę sterowania mocą urządzeń z zastosowaniem sygnału PWM, już niedługo opublikuję kompletny projekt regulatora mocy do laboratoryjnych płaszczów grzejnych. Jako element wykonawczy zastosuję w nim tyrystor oddzielony galwanicznie od mikrokontrolera transoptorem.
Jako ciekawostkę dodam, że sygnał PWM może być także modulowany w czasie, tzn. szerokość impulsu w każdej chwili jest inna i można w ten sposób wymusić w układzie przebieg prądu sinusoidalnego.

Sygnał PWM możemy także podać na filtr dolnoprzepustowy i na wyjściu otrzymać napięcie otrzymując najprawdziwszy przetwornik cyfrowo-analogowy o całkiem niezłych parametrach.