Przez kilka następnych spotkań będziemy zgłębiać programowanie w języku tekstowym. Wykorzystamy płytkę Raspberry Pi Pico i środowisko programistyczne Thonny IDE.
Raspberry Pi Pico występują w różnych wersjach. Na rysunku macie najnowszą Pico 2W z obsługą protokołów WiFi i Bluetoth.
Najpierw trzeba pobrać ze strony
thonny.org wersję instalacyjną, zainstalować ją i już będziemy mogli wprowadzać kod w języku Python, testować i uruchamiać swoje programy.
___________________________________________________________________________________
Zasada działania metody PWM (Pulse Width Modulation)
Jest to modulacja szerokości impulsu, polegająca na regulacji czasu trwania stanu wysokiego sygnału prostokątnego. Metodę PWM stosuje się np. do płynnego rozjaśniania i gaszenia świateł, czy regulacji obrotów silników prądu stałego.
W systemach komputerowych istnieje wiele metod generowania sygnału PWM. Zaczniemy od najłatwiejszego do zrozumienia. Napiszemy program pozwalający wygenerować cyfrowy sygnał prostokątny i zmieniać jego wypełnienie. Na załączonym rysunku mamy właśnie taki przebieg: w czasie high_t ten przebieg jest f stanie wysokim czyli ma poziom logiczny 1, a w czasie low_t jest w stanie 0. Teraz ułożymy kod który będzie generował właśnie taki przebieg.
Uruchamiamy Thonny i piszemy:
# Generowanie sygnału PWM według podstawowych poleceń
from machine import Pin
import time
# Na tym pinie zostanie utworzony sygnał PWM o zadanym wypełnieniu
pin = Pin(16, Pin.OUT) # Lub wybierz dowolny pin
duty = 0,1 # wypełnienie od 0.0 do 1.0
freq = 100 # częstotliwość w Hz
period_us = int(1_000_000 / freq) # Okres w milisekundach
high_t = int(period_us * duty)
low_t = period_us - high_t
while True
pin.value(1)
time.sleep_us(high_t)
pin.value(0)
time.sleep_us(low_t)
Uwaga ten kod zawiera błędy, proszę je odszukać i poprawić!
Po wpisaniu tego kodu zapisz go pod nazwą np. PWM_quasi.py Podłącz diodę LED do wyjścia GP16. Diodę łączymy przez rezystor o wartości 220 do 470 Ohm, Pamiętaj aby zachować odpowiednią biegunowość. W zmiennej duty wpisz najpierw wartość 1.0 i uruchom program. W kolejnych uruchomieniach wprowadzaj wartość duty 0.1, 0.2, 0.3 aż do 1.0 Obserwuj świecenie diody.
A teraz poznasz inny sposób generowania sygnału PWM za pomocą metod wbudowanych.
Wpisz następujący kod:
# Sterowanie jasnością diody LED za pomocą wbudowanych narzędzi PWM
# Użyjemy potencjometru do zmiany wartości napięcia
from machine import Pin, PWM, ADC
# inicjalizacja elementów zewnętrznych
# GP 28 Tu podłącz środkowe wyprowadzenie potencjometru, prawe do +3.3V, lewe do GND
POT_Value = ADC(2)
LED = PWM(Pin(16)) # GP 16
LED.freq(1000)
# pętla główna
while True:
LED.duty_u16(POT_Value.read_u16())
Zapisz go pod nazwą PWM_LED&POT.py