Zadzwoń +48 601 595 618

Witamy w technovade.pl!

4. Modulacja szerokości impulsów

Oceń ten produkt jako pierwszy

     Tematem poradnika jest wykorzystanie modulacji szerokości impulsów w celu sterowania jasnością diody. Na pewno zauważyłeś, że na płytce Arduino niektóre piny cyfrowe oznaczone są symbolem PWM~. To właśnie te piny, z których musimy korzystać chcąc sterować urządzeniem wykorzystując modulację szerokości impulsów.

Nazwa produktu Cena Ilość
Genuino UNO R3 - Arduino z dystrybucji arduino.cc
93,00 zł
Arduino UNO R3
93,00 zł
  • Kup 10 po 88,00 zł za każdy i oszczędź 6%
Płytka stykowa (prototypowa) 830 otworów
11,00 zł
Zestaw diod LED 5mm - 30 szt.
3,90 zł
Zestaw rezystorów THT 1/4W 1% - 220 szt.
12,90 zł

Zamówienia powyżej 200 zł wysyłamy za darmo!

Każde zamówienie możesz odebrać w naszym sklepie stacjonarnym w Poznaniu.

Sprzedajemy wyłącznie towar nowy i gwarantujemy jego sprawność!

Z każdym zamówieniem otrzymujesz kupony rabatowe na kolejne zakupy!

Opis produktu

Szczegóły

Poziom trudności: ★★

Szacowany czas: 20min

Wymagane elementy:

  • płytka Arduino, np. Arduino UNO R3
  • płytka stykowa z przewodami połączeniowymi
  • dioda LED czerwona
  • rezystor 220Ω

 

Wstęp

     Tematem poradnika jest wykorzystanie modulacji szerokości impulsów w celu sterowania jasnością diody. Na pewno zauważyłeś, że na płytce Arduino niektóre piny cyfrowe oznaczone są symbolem PWM~. To właśnie te piny, z których musimy korzystać chcąc sterować urządzeniem wykorzystując modulację szerokości impulsów.

 

Co to jest PWM?

     Modulacja szerokości impulsów polega na zmianie szerokości impulsu sygnału. W generowanym sygnale amplituda i częstotliwość są stałe, a wypełnienie ulega zmianie. Najłatwiej zobrazować to na podstawie przebiegu sygnału z różnymi stopniami wypełnienia. W tym celu posłużę się obrazkiem zamieszczonym na stronie https://www.arduino.cc/en/Tutorial/PWM, do której również odsyłam w kwestii znalezienia dodatkowym informacji.

 

img01

 

     Działanie modulacji szerokości impulsów chciałbym wytłumaczyć na przykładzie zwykłego wentylatora pokojowego. Włączając go, a następnie szybko wyłączając na pewno zauważyłeś, że wentylator nie zdążył nabrać odpowiedniej prędkości. Jeśli jeszcze raz przeprowadzisz takie samo doświadczenie, ale tym razem silnik będzie pracował dłużej to zauważysz, że wentylator rozpędzi się bardziej niż w poprzednim przypadku. Na czas włączenia naszego urządzenia wpływa parametr wypełniania. Łatwo wywnioskować, że im większy procent wypełnienia, tym nasz wentylator będzie miał więcej czasu na rozpędzenie się. Zatem dla wypełnienia 50% prędkość będzie znacznie większa niż dla 25%.

 

     Schemat układu przedstawia poniższy rysunek.

img02

Połączenia:

  • anodę diody podłączamy do pinu cyfrowego oznaczonego symbolem PWM, np. pin 3
  • katodę diody podłączamy do pinu GND
  • pomiędzy anodę diody a pin cyfrowy wpinamy rezystor 220Ω

 

Tworzymy kod

     Naszym zadaniem jest utworzenie kodu, który będzie stopniowo rozjaśniał a następnie wygaszał diodę led. Standardowo kod rozpoczynamy od definicji pinu, do którego podłączymy diodę. (linia 1)

     Następnie musimy zdefiniować początkową wartość PWM (zakres 0-255). Dla wartości 0 dioda jest zgaszona, dla 255 świeci maksymalną mocą. W kolejnej części musimy ustawić krok PWM, tzn. wartość z jaką będzie się zwiększała szerokość wypełnienia w kolejnych przejściach funkcji loop. (linie 2-3)

      W funkcji setup ustawiamy pin do którego podłączona jest dioda, jako wyjście. (linia 6)

     Funkcja odpowiadająca za działanie pinów PWM nosi nazwę analogWrite. Wykorzystujemy ją w pętli loop podając wartość wypełnienia jako drugi argument. (linia 10)

     Oczywiście powinno się w każdym kroku zwiększać wartość wypełnienia, ponieważ w przeciwnym wypadku wypełnienie przez cały czas miałoby wartość równą 0, zatem dioda nigdy by się nie zapaliła. (linia 11)

     Należałoby również zabezpieczyć nasz kod, tak, aby po osiągnięciu wartości 0 lub 255 nie wyjść poza zakres możliwych wartości. W związku z tym musimy zmienić znak zmiennej krok_pwm, gdy wartość zmiennej wartosc_pwm osiągnie 0 lub 255. (linie 13-15)

     Na końcu dodajemy opóźnienie, które co określony czas będzie zwiększało wartość wypełnienia. (linia 16)

 

Kod programu:

Informacje dodatkowe

Informacje dodatkowe

Kraj pochodzenia

Recenzje

Napisz własną recenzję

Tylko zarejestrowani kiienci mogą pisać opinie. Prosimy zalogować się lub zarejestrować

Tagi produktu

Tagi produktu

Użyj spacji aby rozdzielić tagi, apostrofów (') aby wpisać frazy.