czwartek, 12 marca 2026

Język Python i Raspberry Pi Pico

 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