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 tu skomplikowanej matematyki.

Tym razem omówimy sobie PWM, czyli pewien sposób sterowania elementami elektronicznymi – będziesz spotykał się z nim bardzo często.

PWM – o co tu chodzi?

Krótki skrót PWM zna prawie każdy, kto miał styczność z silnikami elektrycznymi lub z modelarstwem. Jego pełne rozwinięcie to pulse width modulation, co tłumaczy się jako „modulacja szerokością impulsu”. Brzmi to mądrze, ale co tak naprawdę oznacza? Sprawdźmy to w praktyce!

Zacznijmy od razu od prostego ćwiczenia. Tym razem potrzebne są:

  • 1 × kondensator 1000 μF,
  • 1 × rezystor 10 kΩ,
  • 1 × rezystor 330 Ω,
  • 1 × dioda świecąca (wybierz ulubiony kolor),
  • 1 × microswitch,
  • 4 × bateria AA,
  • 1 × koszyk na 4 baterie AA,
  • 1 × płytka stykowa,
  • komplet przewodów połączeniowych.

Na płytce stykowej montujemy bardzo prosty układ. Nic nie powinno sprawić Ci tutaj trudności, trzeba tylko pamiętać o odpowiedniej polaryzacji kondensatora elektrolitycznego.

Schemat układu imitującego działanie PWM

Schemat układu imitującego działanie PWM

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

Jeśli kondensator był rozładowany, to po włączeniu zasilania nic nie powinno się dziać. Po wciśnięciu przycisku dioda będzie się powoli rozjaśniać, aby po pewnej chwili „świecić z pełną mocą”. Dzieje się tak, bo po naciśnięciu przycisku powoli ładuje się kondensator C1, a dopiero po jego naładowaniu cały prąd dopływa do diody. Z kolei puszczenie przycisku sprawi, że dioda powoli zgaśnie. Dzieje się tak, ponieważ po odcięciu od baterii LED jest zasilany tylko z naładowanego kondensatora.

Mamy więc układ, który powoli rozjaśnia i gasi diodę. A co się stanie, jeśli cyklicznie będziemy naciskać i puszczać przycisk tak, aby każdy stan trwał około pół sekundy? Sprawdź to w praktyce! Zobacz też, co stanie się, gdy wydłużysz ten czas. Nie będzie to łatwe, ale jeśli uda Ci się utrzymać odpowiednią regularność, to powinno to wyglądać tak, jakby dioda świeciła cały czas, tyle że trochę ciemniej.

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, gdzie:

  • x to czas dostarczania napięcia do układu,
  • T to czas jednego cyklu/okresu.
Sygnał prostokątny – jest napięcie, nie ma, jest, nie ma itd.

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

Rozjaśnianie diody świecącej zachodzi, gdy wciśniesz przycisk 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, to napięcie osiąga na nim pewną wartość i zmienia się tylko nieznacznie (pulsowanie diody jest słabo widoczne).

Zakładając, że będziemy wciskać przycisk w regularnych odstępach, 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.

Mniejsze wypełnienie – dioda świeci przez krótszą część cyklu,większe wypełnienie – dioda świeci przez większą część cyklu

Mniejsze wypełnienie – dioda świeci przez krótszą część cyklu,
większe wypełnienie – dioda świeci przez większą część cyklu

Ten eksperyment był dużym uproszczeniem tematu. Właściwie była to prosta symulacja generatora PWM, czyli właśnie modulacji szerokością sygnału. Przejdźmy teraz do dokładnego omówienia tematu.

Do czego wykorzystywany jest PWM?

Jak może już wiesz, mikrokontrolery (np. te z Arduino) są układami cyfrowymi. Oznacza to, że sygnały przez nie przetwarzane to tylko logiczne zera oraz jedynki, a patrząc z punktu widzenia elektroniki:

  • logiczne zero to brak napięcia,
  • logiczna jedynka to napięcie zasilania układu (np. 3,3 V lub 5 V).

Dużo więcej informacji na ten temat znajdziesz w kursie techniki cyfrowej:

Technika cyfrowa – #1 – wstęp, spis treści
Technika cyfrowa – #1 – wstęp, spis treści

Jeśli znasz już podstawy elektroniki, a do tej pory jedynie słyszałeś o technice cyfrowej, bramkach oraz układach CMOS, to ten…... Czytaj dalej »

Jeśli układ cyfrowy może operować tylko zerami i jedynkami, to powstaje pytanie: jak np. płynnie regulować jasnością świecenia diody, skoro na wyjściu może pojawić się tylko jedno z dwóch napięć (tzn. 0 V lub 5 V)? Z pomocą przyjdzie nam właśnie PWM.

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 do włączania i wyłączania diody wykorzystamy możliwości mikrokontrolera, zamiast ręcznie naciskać przycisk, to diodą będziemy mogli sterować znacznie szybciej, z dużo większą częstotliwością. Ludzki wzrok nie jest doskonały i już przy 24 Hz (czyli 24 zmianach na sekundę) oko przestaje widzieć kolejne fazy obrazu i uśrednia wynik – znamy to z kina oraz telewizji!

Dla współczesnych procesorów, które taktowane są w gigahercach, takie częstotliwości są bardzo małe – ale dla naszego mocno niedoskonałego zmysłu wzroku w zupełności wystarczą. Więcej o sterowaniu PWM przy użyciu mikrokontrolera znajdziesz w kursie podstaw Arduino.

Gotowe zestawy do kursów Forbota

 Komplet elementów  Gwarancja pomocy  Wysyłka w 24h

Chcesz zrozumieć elektronikę? Zamów zestaw elementów do wykonania wszystkich ćwiczeń z kursu i przejdź do praktyki!

Zamów w Botland.com.pl »

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ć w praktyce do uśredniania napięcia. Odpowiednio dobierając wartość kondensatora (oraz rezystorów), na jego zaciskach otrzymalibyśmy napięcie (prawie) stałe, regulowane płynnie w zakresie 0–6 V, 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ęcie 0 V oraz, powiedzmy, 5 V, o tyle 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 0–5 V.

Możesz to w prosty sposób sam przetestować, podłączając multimetr do wyprowadzeń kondensatora 1000 μF. Naciskaj szybko przycisk i zobacz, co będzie wskazywał miernik. Zamiast 6 V, którymi zasilamy nasz układ, na kondensatorze zmierzymy np. 1,7 V. Co więcej, wartość tego napięcia będzie zmieniała się wraz z „wypełnieniem” sygnału sterującego układem – w tym przypadku oznacza to, że im dłużej przycisk będzie wciśnięty (względem czasu, gdy nie jest wciśnięty), tym napięcie na kondensatorze będzie wyższe.

Tutaj od razu smutna wiadomość: nie można tak prostego układu wykorzystać do bezpośredniego zasilania układu pobierającego znaczny prąd. Aby uzyskać taki układ, konieczne byłoby wzmocnienie prądu np. za pomocą tranzystora lub wzmacniacza operacyjnego.

Wykorzystanie PWM do przesyłania informacji

Okazuje się, że PWM może być też wykorzystany do przekazywania sygnałów między urządzeniami. Jednym z najbardziej znanych układów tego typu jest serwomechanizm modelarski, który znajduje się w zestawach do tego kursu. Jest to mały silnik, który potrafi obracać się w zakresie (najczęściej) od 0° do 180°. Co najważniejsze, możemy „rozkazać” mu, aby ustawił się w konkretnej pozycji, np. 45°.

Takie sterowanie jest możliwe, bo serwomechanizm posiada wbudowany sterownik silnika – najczęściej analogowy, ale może być również 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 dostarczanego impulsu sterownik ustawia pozycję ramienia serwomechanizmu.

Przykładowy serwomechanizm modelarski, który sterowany jest przez PWM

Przykładowy serwomechanizm modelarski, który sterowany jest przez PWM

Sygnał sterujący typowym serwomechanizmem musi trwać równo 20 ms, natomiast szerokość impulsu musi zmieniać się w zakresie od 1 ms do 2 ms. Wbudowany sterownik interpretuje sygnał w taki sposób, że ustawia orczyk (element przyczepiony do osi) proporcjonalnie do czasu trwania impulsu. Na przykład impuls o szerokości 1 ms oznacza wychylenie maksymalnie w lewo, impuls o szerokości 1,5 ms ustawia serwomechanizm w położeniu centralnym, a 2 ms to skrajnie prawa pozycja.

Zasada działania serwomechanizmu

Zasada działania serwomechanizmu

Dołączone do zestawu serwo wykorzystamy, gdy tylko będziemy w stanie wygenerować prawdziwy sygnał PWM (tutaj naciskanie przycisku to zbyt mało). Musimy jednak najpierw poznać układ scalony – konkretnie mowa o NE555. Zajmiemy się tym w jednej z kolejnych części kursu.

Przykładowe zastosowanie serwomechanizmu

Przykładowe zastosowanie serwomechanizmu

Stabilizatory impulsowe

Sygnał PWM jest też związany z zupełnie innym rodzajem elementów, a konkretnie ze stabilizatorami impulsowymi. Podczas pierwszego kursu elektroniki omawialiśmy popularne stabilizatory liniowe. Tu nieśmiertelnym przykładem, który powinien być znany każdemu elektronikowi, jest LM7805.

Popularny stabilizator LM7805

Popularny stabilizator LM7805

Układy te są tanie i proste w użyciu. Mają jednak dużą wadę, tzn. niską sprawność. Jeśli użyjemy takiego stabilizatora do zasilania np. silnika, to zachowa się on jak „rezystor”. Załóżmy, że mamy źródło zasilania, które daje nam 10 V, chcielibyśmy za jego pomocą zasilić silnik, który wymaga 5 V. W tym celu (bo jeszcze nie poznaliśmy lepszych metod) moglibyśmy wykorzystać stabilizator liniowy.

Rozkład napięć przy zasilaniu silnika przez stabilizator

Rozkład napięć przy zasilaniu silnika przez stabilizator

W układzie widocznym na poniższym schemacie prąd płynący przez stabilizator i silnik będzie taki sam (silnik zasilany jest ze stabilizatora). W rozważaniu tym pomijamy prąd pobierany przez sam stabilizator, ponieważ w takim przypadku będzie on niewielki (wręcz pomijalny).

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 pobieraną przez silnik obliczamy następująco:

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

Policzmy, jaka moc jest pobierana ze źródła zasilania:

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

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…

Jest jednak taki element jak stabilizator impulsowy. Działa on na innej zasadzie – takiej, która jest podobna do naszego eksperymentu z diodą świecącą i kondensatorem. W tym przypadku wbudowany do stabilizatora impulsowego 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.

Zasilanie przez stabilizator impulsowy ze źródła o napięciu 10 V

Zasilanie przez stabilizator impulsowy ze źródła o napięciu 10 V

Dzięki temu straty mocy na stabilizatorze są bardzo małe i prawie cała moc jest przekazywana dalej. Oczywiście takiego napięcia nie można przekazać prosto do odbiornika, np. mikrokontrolera. Musimy je jeszcze odfiltrować – poznaliśmy już wcześniej filtr RC. W stabilizatorach impulsowych wykorzystuje się bardziej zaawansowane filtry, wyposażone w cewkę, która odgrywa 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.

Przy zachowaniu odpowiedniej częstotliwości i wypełnienia sygnału (tak jak na powyższym wykresie) do naszego silnika dopływałoby uśrednione napięcie, czyli 5 V. Działanie stabilizatorów impulsowych, a konkretnie przetwornic impulsowych, omówimy w osobnej części kursu. Na razie wystarczy zapamiętać, że zmiana stabilizatora liniowego na impulsowy pozwala na znaczne zwiększenie sprawności układu.

Zasilanie silników przez PWM?

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

Okazuje się jednak, że akurat w przypadku silników DC układ może być uproszczony – uzwojenie silnika posiada pewną, często dość znaczną, indukcyjność. Dzięki temu może on być bezpośrednio sterowany sygnałem PWM – samo uzwojenie będzie działało jak filtr wygładzający przebieg prądu.

Temat sterowania silników jest bardzo obszerny, jednak 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 można użyć do sterowania silnikami prądu stałego. Układ taki można dodatkowo wysterować sygnałem PWM, aby regulować prędkość silnika.

Jak działają szczotkowe silniki DC? Budowa i pomiary
Jak działają szczotkowe silniki DC? Budowa i pomiary

Na temat silników elektrycznych powiedziano już bardzo dużo. Wiedza ta, rozsiana po internecie, bywa trudna do znalezienia. Niniejszy cykl... Czytaj dalej »

Przykładem jest chociażby stary, ale sprawdzony L293D. Do odpowiednich wyprowadzeń podłączamy zasilanie oraz sygnały sterujące (w tym PWM), a do innych – silnik. Zmiana wypełnienia sygnału PWM dostarczanego do tego układu przekłada się bezpośrednio na zmianę prędkości silnika.

Przykładowe sterowniki silników DC

Przykładowe sterowniki silników DC

Co zmienia częstotliwość sygnału PWM?

Wykonując ćwiczenie z diodą i kondensatorem, można było się przekonać na własne oczy, że wyższa częstotliwość powtarzania impulsów PWM jest korzystna, bo lepiej zachodzi uśrednianie. Zatem czy należy zawsze stosować częstotliwość najwyższą, jaką tylko możemy wygenerować?

Otóż nie, bo:

  1. każde przełączenie generuje straty,
  2. niektóre odbiorniki prądu źle reagują na zbyt wysoką częstotliwość.

Punkt pierwszy obowiązuje niestety zawsze. Wynika on z faktu, że przełączanie (czyli 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 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 on linię prostą. Bardziej wnikliwa analiza wykaże jednak istnienie zaokrąglonych fragmentów przy podstawie i szczycie takiego „prostokąta”.

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

Wygląd sygnału prostokątnego, który lepiej odzwierciedla rzeczywisty sygnał

Wygląd sygnału prostokątnego, który lepiej odzwierciedla rzeczywisty sygnał

Warto tutaj zwrócić uwagę, że każdy punkt ukośnego zbocza przypomina sytuację 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 tym samym 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.

Przejaskrawione straty wynikające z przełączania (zaznaczone na czerwono)

Przejaskrawione straty wynikające z przełączania (zaznaczone na czerwono)

Jeden okres sygnału prostokątnego na sekundę wymaga dwóch przełączeń (załączenia i wyłączenia). Dziesięć okresów wymaga już dwudziestu przełączeń na sekundę. 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 dla mikrokontrolera. 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 m.in. 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, to częstotliwość PWM, albo chociaż jej przedział, jest często narzucona (zasugerowana) przez producenta. Na przykład dla serw potrzebujemy 20 ms, czyli częstotliwości 50 Hz.

W przypadku silników wybiera się znacznie wyższe częstotliwości – od setek herców do częstotliwości ponadakustyczynych, czyli powyżej 20 kHz. Na ogół łatwiej jest zbudować sterownik działający z niższymi częstotliwościami, niestety wadą może okazać się wyraźnie słyszalne „piszczenie” silnika.

Oczywiście taka metoda dobierania nie jest idealna, bo najlepiej byłoby policzyć odpowiednią częstotliwość. Do tego potrzebne jest nieco większe doświadczenie – osoby rozważające studiowanie elektroniki na pewno poznają to zagadnienie bardzo dobrze. Do nauczenia będzie dużo teorii, ale za to można będzie policzyć np. parametry filtru, zamiast dobierać je losowo.

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 funkcję generatora spełni właśnie mikrokontroler, a wszystkie parametry PWM będziesz mógł ustawić programowo.

Sygnał PWM podglądany na oscyloskopie

Oczywiście, jak pewnie się domyślasz, wykresy zaprezentowane w tym tekście narysowano tak, aby dobrze ilustrowały omawiane przykłady. Przy testowaniu budowanych urządzeń może jednak zajść czasami potrzeba zmierzenia parametrów faktycznego PWM-u i narysowania prawdziwego wykresu.

Tutaj (kolejny raz) przydaje się oscyloskop, czyli przyrząd pomiarowy, który pozwala na wizualizację zmian napięcia w czasie. Przykład sygnału PWM narysowanego przez oscyloskop znajduje się poniżej. Widać tutaj sygnał o częstotliwości 20,2 kHz, w którym stan wysoki trwa 14,6 μs, a stan niski 34,8 μs. Z tego wynika więc, że okres sygnału to 49,4 μs, a jego wypełnienie to 14,6 / 49,4, czyli ~30%.

Przykładowy, zmierzony sygnał PWM.

Przykładowy zmierzony sygnał PWM

Podsumowanie

Ta część była trochę bardziej teoretyczna, ale spokojnie – z dalszych części tego kursu (i innych naszych poradników) dowiesz się, jak wygenerować samodzielnie prawdziwy sygnał PWM i jak wykorzystać go w praktyce. Na ten moment najważniejsze jest, aby kojarzyć hasło PWM z sygnałem prostokątnym o zmiennym wypełnieniu, który może być wykorzystywany do zasilania lub przenoszenia informacji.

Czy wpis był pomocny? Oceń go:

Średnia ocena 4.7 / 5. Głosów łącznie: 333

Nikt jeszcze nie głosował, bądź pierwszy!

Artykuł nie był pomocny? Jak możemy go poprawić? Wpisz swoje sugestie poniżej. Jeśli masz pytanie to zadaj je w komentarzu - ten formularz jest anonimowy, nie będziemy mogli Ci odpowiedzieć!

W kolejnych częściach tego kursu wykorzystamy informacje o sygnale PWM, gdy będziemy budować sterownik serwomechanizmów modelarskich. Więcej przykładów użycia PWM w praktyce znaleźć można np. w kursie podstaw Arduino lub w naszym kursie budowy robotów.

Nawigacja kursu


Autorzy kursu: Damian Szymański, Michał Kurzela, ilustracje: Piotr Adamczyk. Zakaz kopiowania treści kursów oraz grafik bez zgody FORBOT.pl. Data ostatniego sprawdzenia tego wpisu: 19.09.2021.

elektronika, kursElektroniki2, PWM, sterowanie

Trwa ładowanie komentarzy...