Kurs elektroniki II – #6 – sterowanie sygnałem PWM

Kurs elektroniki II – #6 – sterowanie sygnałem PWM

Kurs elektroniki to nie tylko poznawanie nowych układów elektronicznych, ale również garść porad i informacji teoretycznych.

Nie przejmuj się, nie będzie skomplikowanej matematyki. Sprawdzimy tylko, czym jest PWM. Postaramy się również omówić jego wady i zalety. Informacje zawarte w tej części, będą często wykorzystywane w późniejszej praktyce.

Skrót PWM zna prawie każdy, kto chociaż trochę miał styczności ze sterowaniem silników. Jego rozwinięcie to Pulse Witdh Modulation - modulacja szerokości impulsu. Te trzy słowa brzmią bardzo mądrze, ale co tak naprawdę oznaczają? Zaraz sprawdzimy to w praktyce!

Zestaw elementów do kursu

Gwarancja pomocy na forum Błyskawiczna wysyłka

Elementy konieczne do wykonania ćwiczeń zebrane zostały w gotowe zestawy, które można nabyć w Botlandzie. W wygodnym kuferku znajdziecie ponad 160 części elektronicznych!

Kup w Botland.com.pl

PWM - idea działania

Na początek, proponuję proste doświadczenie. Będziesz potrzebował:

  • płytki stykowej,
  • baterii wraz z koszykiem,
  • kondensatora 1000μF,
  • rezystora 10kΩ,
  • rezystora 330Ω,
  • diody świecącej (np. czerwonej),
  • microswitcha.

Zmontuj na płytce poniższy układ. Pamiętając o prawidłowej biegunowości kondensatora!

Schemat układu testującego działanie PWM.

Schemat układu testującego działanie PWM.

W praktyce może to wyglądać następująco:

Przykładowa realizacja ćwiczenia na płytce stykowej.

Przykładowa realizacja ćwiczenia na płytce stykowej.

Naciśnij przycisk, gdy układ będzie gotowy. Dioda rozjaśnia się powoli, po kilku sekundach osiąga jasność maksymalną. Postaraj się ją zapamiętać. Teraz puść klawisz i poczekaj kilka sekund, aż dioda niemal całkowicie zgaśnie. Następnie cyklicznie wciskaj i puszczaj przycisk w ten sposób, aby każda faza trwała ok. pół sekundy. Zwróć uwagę, jak zachowuje się dioda. Co się dzieje, gdy dwukrotnie wydłużysz czas każdej fazy?

Takie równomierne wciskanie i puszczanie przycisku sprawiło, że do układu napięcie docierało w formie poniższego sygnału prostokątnego:

Sygnał prostokątny (jest napięcie, nie ma, jest, nie ma itd).

Sygnał prostokątny
(jest napięcie, nie ma, jest, nie ma itd).

Gdzie:

  • X, to czas dostarczania napięcia do układu
  • T, to czas jednego cyklu/okresu.

Rozjaśnianie zachodzi, gdy wciśniesz microswitch i kondensator ładuje się energią z baterii. Po odłączeniu zasilania, dioda gaśnie, ponieważ jest zasilana wyłącznie energią zgromadzoną w kondensatorze, która "kończy się" dość szybko. Jeżeli ładowanie i rozładowywanie kondensatora zachodzi wystarczająco często, wówczas napięcie na nim ustala się na pewnej wartości i zmienia nieznacznie (pulsowanie diody jest słabo widoczne).

Działanie powyższego układu w praktyce przedstawia poniższy film:

Zakładając, że nasze wciskanie będzie odbywało się w regularnych odstępach, to wygenerujemy sygnał prostokątny, taki jak na wcześniejszym wykresie. Oczywiście czas, gdy przycisk jest wciśnięty i czas, gdy do obwodu nie dostarczamy prądu nie musi być taki sam.

Większe wypełnienie – dioda świeci przez większą część cyklu.

Większe wypełnienie – dioda świeci przez większą część cyklu.

Mniejsze wypełnienie - dioda świeci przez krótszą część cyklu.

Mniejsze wypełnienie - dioda świeci przez krótszą część cyklu.

Powyższy eksperyment był dużym uproszczeniem tematu, właściwie była to prosta symulacja generatora PWM. Teraz pora przejść do szczegółowego omówienia tego zagadnienia!

Do czego wykorzystywany jest PWM?

Jak pewnie wiesz mikrokontrolery (np. te z Arduino) są układami cyfrowymi. Oznacza to, że sygnały przez nie przetwarzane to logiczne zera oraz jedynki, a patrząc z punktu widzenia elektronika - napięcia.

Powstaje jednak pytanie - jak np. płynnie regulować jasnością świecenia diody, skoro na wyjściu może pojawić się tylko jedno z dwóch napięć (0V lub 5V)? Łatwo odgadnąć, że z pomocą przyjdzie nam właśnie PWM.

Okazuje się, że sterowanie diodą jest bardzo proste - wystarczy rezystor oraz sama dioda, nie potrzebujemy nawet kondensatora. We wcześniejszym przykładzie był on niezbędny z innego powodu - bez niego dioda gasłaby natychmiast po zwolnieniu przycisku, więc widzielibyśmy migającą diodę, a nie łagodnie zapalającą się i gasnącą.

Jednak jeśli zamiast naciskać mikroswitch wykorzystamy procesor, będziemy mogli sterować diodą znczanie szybciej (z większą częstotliwością). Okazuje się, że ludzki wzrok nie jest doskonały i już przy 24 Hz (24 zmianach na sekundę) oko przestaje widzieć kolejne fazy obrazu i uśrednia wynik.

Dla współczesnych procesorów, które często taktowane są zegarami liczonymi w GHz takie częstotliwości są bardzo małe - ale dla naszego mocno niedoskonałego zmysłu wzroku w zupełności wystarczą.

Do czego potrzebny był kondensator?

Wróćmy jeszcze raz do naszego przykładu z kondensatorem - do czego taki układ mógłby się przydać? Jak wiemy do sterowania diodą kondensator nie jest potrzebny, nasze oko uśrednia efekt świecenia diody. No właśnie, kondensator można wykorzystać do uśredniania - napięcia. Odpowiednio dobierając wartość kondesnatora (oraz rezystorów), na jego zaciskach otrzymalibysmy napięcie (prawie) stałe, regulowane płynnie w zakresie 0V - 6V w zależności od wypełnienia sygnału PWM.

W przypadku mikroprocesora taki układ jest bardzo popularny do uzyskania płynnie regulowanego napięcia wyjściowego. O ile sam procesor może dostarczyć tylko napięcia 0V oraz powiedzmy 5V, to sterując za pomocą PWM oraz podłączając rezystor i kondensator, możemy na wyjściu układu uzyskać dowolne napięcie z przedziału 0V - 5V.

Możesz to w prosty sposób sam przetestować: podłącz multimetr do wyprowadzęń kondensatora 1000μF. Klikaj szybko microswitchem i zapamiętaj wskazywane wartości napięcia.

Na koniec niestety smutna wiadomość:

Aby uzyskać taki układ konieczne byłoby wzmocnienie prądu np. za pomocą tranzystora lub wzmacniacza operacyjnego.

PWM do przesyłania sygnałów sterujących

Okazuje się, że PWM może być wykorzystany do przekazywania sygnałów między urządzeniami. Jednym z najbardziej znanych układów tego typu jest serwomechanizm.

serwo-towerpro-sg-90-micro

Przykładowy serwomechanizm.

Popularne serwo posiada wbudowany własny sterownik silnika - najczęściej analogowy, ale może być wyposażone w bardziej skomplikowany układ cyfrowy (tzw. serwo cyfrowe). W obu przypadkach PWM jest wykorzystany jako sygnał sterujący. Na podstawie szerokości impulsu, sterownik ustawia pozycję ramienia serwomechanizmu.

Typowy sygnał sterujący serwomechanizmem ma okres 20 ms, natomiast szerokość impulsu zmienia się w zakresie od 1ms do 2ms - od minimalnego do maksymalnego wychylenia. Impuls o szerokości 1.5 ms ustawia serwomechanizm w położeniu centralnym:

serwomechanizm

Zasada działania serwomechanizmu.

Jak pewnie zauważyłeś serwomechanizm taki znajduje się w zestawie elementów do tego kursu. Oznaczać może to tylko jedno - będziemy nim sterować! Jednak trochę później, musimy najpierw poznać kilka dodatkowych elementów!

Jeśli jesteś zainteresowany już teraz praktycznym wykorzystaniem serw, to możesz zapoznać się z 6 częścią kursu Arduino, w której na podstawie tego małego silnika zbudowany został prosty, wskaźnik analogowy widoczny na poniższej animacji:

Wskaźnik analogowy z wykorzystaniem Arduino.

Wskaźnik analogowy z wykorzystaniem Arduino.

Stabilizatory impulsowe

Wszyscy znamy stabilizatory liniowe, jak chociażby nieśmiertelny LM7805, który omawiany był podczas I poziomu kursu elektroniki.

Stabilizator 7805

Stabilizator 7805

Układy te są tanie i proste w użyciu. Mają jednak dużą wadę - niską sprawność. Gdy użyjemy takiego stabilizatora do zasilania np. silnika, zachowa się on jak rezystor:

Rozkład napięć przy zasilaniu ze stabilizatora.

Rozkład napięć przy zasilaniu ze stabilizatora.

Stabilizator i silnik połączone są szeregowo, zatem będzie przez nie płynął ten sam prąd - z dokładnością do prądu pobieranego przez sam stabilizator (jest on niewielki).

Połączenie silnika ze stabilizatorem.

Połączenie silnika ze stabilizatorem.

Moc wyraża się jako iloczyn płynącego prądu i odkładającego się napięcia - policzmy więc przykładowy bilans. Niech nasz silnik pobiera 200 mA prądu. Wówczas moc pobierana przez silnik obliczamy:

Pmot = I * Umot = 0,2A * 5V = 1W

Policzmy, jaka moc jest pobierana z zasilania, powiedzmy z baterii:

Pbat = I * Ubat = 0,2A * 10V = 2W

Jak widzimy silnik ma do dyspozycji połowę mocy pobranej z baterii. Pozostała część jest tracona w postaci ciepła - dlatego LM7805 się grzeje, a bateria szybko rozładowuje. Oczywiście prawdziwy silnik może pobierać więcej prądu - ale wtedy tracona moc byłaby tak duża, że nasz LM7805 musiałby być chłodzony chyba ciekłym azotem, aby pracował poprawnie...

Stabilizator impulsowy działa na innej zasadzie, podobnej to znanej nam ze sterowania diodą. Klucz tranzystorowy działa jak przełącznik i albo przekazuje pełne napięcie zasilania do dalszej części układu, albo je w pełni odcina.

14-pwm-przebieg-v2

Dzięki temu straty mocy na tranzystorze są bardzo małe i prawie cała moc jest przekazywana dalej. Oczywiście takiego napięcia nie można przekazać do odbiornika, np. mikrokontrolera. Musimy je jeszcze odfiltrować - poznaliśmy już wcześniej filtr RC zbudowany z rezystora oraz kondensatora.

W stabilizatorach impulsowych wykorzystuje się bardziej zaawansowane filtry, wyposażone w cewkę, która spełnia podobną rolę, wygładzając tym razem przebieg prądu (a nie napięcia) oraz sprawia, że na wyjściu stabilizatora prąd płynie nawet w okresach wyłączenia PWM.

Działanie stabilizatorów impulsowych zostanie omówione w dalszej części kursu, w tej chwili warto zapamiętać, że zmiana zasilacza liniowego na impulsowy pozwala na znaczne zwiększenie sprawności układu.

W omawianym przykładzie stabilizator liniowy zapewniał sprawność poniżej 50%, natomiast zastosowanie stabilizatora impulsowego pozwoliłoby osiągnąć sprawność bliską 100% (np. 95%).

Zasilanie silników

Budowanie zasilaczy impulsowych, a nawet stosowanie stabilizatorów impulsowych jest zadaniem skomplikowanym - w najprostszym wypadku konieczne jest zastosowanie układu scalonego oraz pewnej liczby elementów pomocniczych (diod, tranzystorów, cewek, itd.).

Okazuje się że w przypadku sterowania pracą silników układ może być uproszczony - uzwojenie silnika posiada pewną, często dość znaczną, indukcyjność. Dzięki temu może być wykorzystane do bardziej bezpośredniego sterowania z PWM, ponieważ samo uzwojenie będzie działało jako filtr wygładzający przebieg prądu.

Temat sterowania silników jest bardzo obszerny, nie możemy niestety opisać go dokładniej na tym etapie kursu. Warto natomiast wspomnieć, że dostępne są gotowe układy scalone, które wystarczy wysterować sygnałem PWM. Przykładem jest chociażby stary, ale sprawdzony L293D:

Układ L293D.

Układ L293D.

Układ ten został opisany i wykorzystany w 8 części kursu programowania Arduino.

Wpływ częstotliwości

Mogłeś się przekonać na własne oczy, że wyższa częstotliwość powtarzania impulsów PWM jest korzystna: lepiej zachodzi uśrednianie. Zatem, czy należy zawsze stosować częstotliwość najwyższą, jaką tylko możemy wygenerować?

Punkt pierwszy obowiązuje, niestety, zawsze. Wynika on z faktu, że przełączanie (wyłączanie i załączanie) nie zachodzi natychmiast. Ograniczeniem są istniejące w układzie pojemności pasożytnicze oraz właściwości samych tranzystorów, służących do kluczowania (przerywania) zasilania dla odbiornika.

Czas, jaki musi upłynąć podczas zmiany napięcia nie jest zerowy. Przebieg zboczy może być bardzo zróżnicowany. Najczęściej przypomina linię prostą. Bardziej wnikliwa analiza wykaże istnienie zaokrąglonych fragmentów przy podstawie i szczycie takiego "prostokąta".

Na zielono zaznaczono napięcie, jakim zasilany jest nasz przykładowy odbiornik. Założono, że zbocza są liniowe, tj. kształt impulsu napięcia jest trapezoidalny. Ta sytuacja jest zdecydowanie przejaskrawiona (bardzo długie czasy przełączania w stosunku do całego okresu), za to dobrze obrazuje ideę.

Rzeczywisty wygląd sygnału prostokątnego

"Rzeczywisty" wygląd sygnału prostokątnego

Zobacz, że każdy punkt ukośnego zbocza przypomina sytuację z z odbiornikiem i stabilizatorem liniowym: napięcie, które nie odkłada się w danym momencie na silniku, musi odłożyć się na stabilizatorze, generując straty.

Dokładnie tak samo jest tutaj, z tą różnicą, że rozdział tych napięć nie jest stały. Ulega on zmianie podczas przełączania. Czerwone trójkąty obrazują straty wynikające z tego, że suma napięć na kluczu i odbiorniku zawsze musi być równa napięciu zasilającemu.

Straty wynikające z przełączania.

Straty wynikające z przełączania.

Jeden okres sygnału prostokątnego na sekundę wymaga dwóch przełączeń: załączenia i wyłączenia. Dziesięć okresów już dwudziestu przełączeń w ciągu sekundy. Tysiąc okresów, dwóch tysięcy itd.

Pamiętaj, że częstotliwość i czas przełączania (narastania lub opadania) są od siebie niezależne: na częstotliwość mamy wpływ, pisząc np. odpowiedni program. Z kolei, na ten drugi parametr mamy niewielki wpływ i wynika on z właściwości elektrycznych układu.


Mamy zatem dwa przeciwstawne zdania. Pierwsze mówi, aby częstotliwość była możliwie wysoka, ze względu na efekt uśredniania. Drugie zaś głosi, że trzeba minimalizować straty i tym samym redukować częstotliwość do minimum. Sztuka projektowania układów polega między innymi na uzyskiwaniu kompromisów. Musimy więc tak dobrać częstotliwość, żeby z jednej strony uzyskać stabilną wartość średnią, z drugiej strony pozostać na akceptowalnym poziomie strat mocy.

Jak dobrać częstotliwość?

Przede wszystkim musimy nauczyć się poszukiwania dokumentacji oraz podpatrywania dobrych rozwiązań. Jeśli nasz projekt bazuje na układzie scalonym lub gotowym kontrolerze, częstotliwość PWM, albo chociaż przedział częstotliwości jest często narzucony (zasugerowany) przez producenta. Przykładowo do sterowania serwomechanizmów potrzebujemy okresu 20ms, czyli częstotliwości 50Hz.

W przypadku silników wybiera się znacznie wyższe częstotliwości - od setek Hz do częstotliwości ponad-akustyczynych, czyli powyżej 20kHz. Na ogół łatwiej jest zbudować sterownik działający z niższymi częstotliwościami, niestety wadą może okazać się "piszczenie" silnika.

Oczywiście taka metoda dobierania nie jest idealna - najlepiej byłoby policzyć odpowiednią częstotliwość. Do tego będziemy potrzebowali nieco więcej wiedzy - osoby rozważające studiowanie elektroniki niech potraktują to jako motywację!

PWM w praktyce

W artykule w ramach "symulacji" sygnału PWM wykorzystaliśmy ręcznie wciskany przycisk. Oczywiście, jeśli budujemy układ wymagający takiego sterowania, to nikt nie będzie stał i klikał cały czas w przełączniki. Sygnały PWM generuje się najczęściej za pomocą układów cyfrowych.

W dalszych częściach kursu będziemy w tym celu wykorzystywać bardzo popularny układ NE555, jeśli zdecydujesz się (a naprawdę warto!) zająć się programowaniem np. Arduino, to rolę generatora spełni właśnie mikrokontroler, a wszystkie parametry PWM będziesz mógł ustawić programowo.

Poniższy film pochodzi z 8 części kursu Arduino, w której omówiono wykorzystanie PWM do sterowania prędkością obrotową silników (zmieniając wypełnienie sygnału PWM):

Oscyloskop - lepsza wersja miernika?

Oczywiście, jak pewnie się domyślasz, wykresy zaprezentowane w tym tekście narysowano, tak aby dobrze ilustrowały omawiane przykłady.

Testując budowane urządzenia może jednak czasami zajść potrzeba zmierzenia parametrów faktycznego sygnału PWM i narysowanie prawdziwego wykresu. Tutaj przydaje się oscyloskop, czyli przyrząd pomiarowy, który pozwala na wizualizację zmian napięcia w czasie.

Przykład sygnału PWM narysowanego przez prawdziwy oscyloskop widoczny jest poniżej:

Przykładowy, zmierzony sygnał PWM.

Przykładowy, zmierzony sygnał PWM.

Urządzenie jest bardzo pomocne w warsztacie każdego elektronika, ma jednak pewną wadę. Niestety cena nowego oscyloskopu, dla większości hobbystów jest zbyt duża. Za urządzenie tego typu trzeba zapłacić od około 1000 zł wzwyż (lub od 200 zł za przystawki do PC). Dlatego w kursie staramy się działać w taki sposób, aby pokazać, że można poradzić sobie bez oscyloskopu.

Podsumowanie

Jak się przekonasz w dalszych częściach tego kursu, PWM jest wykorzystywany nie tylko do zasilania. Jest to naprawdę szerokie pojęcie, które tutaj zostało omówione w odniesieniu do popularnych przykładów. Miałeś okazję sam przekonać się o wadach i zaletach tego rozwiązania.

W kolejnych odcinkach będziemy wykorzystywać PWM w praktycznych projektach, takich jak sterownik serwomechanizmów modelarskich. Więcej przykładów użycia PWM w praktyce znaleźć można w kursie Arduino.

Nawigacja kursu

W kolejnym odcinku kursu elektroniki zajmiemy się omówieniem podczerwieni. Konkretnie mówiąc sprawdzimy, gdzie i jakie może mieć ona zastosowanie.  Nie chcesz przeoczyć kolejnych części kursu? Skorzystaj z poniższego formularza i zapisz się na powiadomienia o nowych artykułach!

Autor pierwszej wersji: Michał Kurzela
Konsultacje, użytkownicy: Elvis oraz marek1707
Redakcja: Damian (Treker) Szymański

elektronika, kursElektroniki2, PWM, sterowanie

Komentarze

Dodaj komentarz