Raspberry Pi Pico nie ma wbudowanego resetu na płytce dlatego podłączyłem microswitch aby nie podłączać i odłączać płytki od portu USB.
Jedną z nóżek podłączamy do dowolnego pinu GND Raspberry a drugą do pinu RUN mniej więcej na środku płytki. Dzięki temu rozwiązaniu możemy resetować naszą płytkę poprzez wciśniecie przycisku BOOTSEL oraz reset bez konieczności odłączania i podłączania do portu USB.
Nasze Raspberry ma wbudowaną diodę led na pinie GP25. Jednak w przeciwieństwie do Arduino nie możemy wpiąć się do tego pinu a jedynie sterować wbudowaną diodą.
Napiszemy prosty program zapalający i gaszący naszą wbudowaną diodę LED.
import machine
import utime
led_onboard=machine.Pin(25, machine.Pin.OUT)
while True:
led_onboard.value(1)
utime.sleep(1)
led_onboard.value(0)
utime.sleep(1)
import machine to bibioteka zawierająca wszystkie instrukcje wymagane do komunikacji MicroPythona z Pico
import utime to biblioteka czasu, opóźnień itp.
led_onboard=machine.Pin(25, machine.Pin.OUT) deklaracja zmiennej led_onboard do której przypisujemy pin 25 jako pin wyjścia, korzystając z biblioteki machin
while True: to główna pętla programu, która jest wykonywana cały czas
led_onboard.value(1) to przypisaywanie zmiennej led_onboard wartości, w tym przypadku 1 czyli zapalanie diody
utime.sleep(1) czas opóźnienia 1s przy wykorzystaniu biblioteki utime
Jeżeli chcemy zapalać i gasić diodę na taki sam czas możemy użyć prostszej wersji programu wykorzystując do tego celu funkcję toggle(). Efekt naszego programu będzie dokładnie taki sam ale zdecydowanie prostszy i krótszy.
import machine
import utime
led_onboard=machine.Pin(25, machine.Pin.OUT)
while True:
led_onboard.toggle()
utime.sleep(1)
Możemy to wykonać na 2 sposoby:
Podłącz zewnętrzną diodę LED do pinu GP15 w prawym dolnym rogu Raspberry Pi Pico. Do diody podłączamy rezystor do GND.
import machine
import utime
led_onboard=machine.Pin(15, machine.Pin.OUT)
while True:
led_onboard.toggle()
utime.sleep(1)
Jeżeli chcemy żeby nasza dioda migała z częstotliwością co 1s to używamy poprzedniego kodu jedynie zmieniając pin z 25 na 15.
Chciałbym jednak zapalić diodę zewnętrzną na 5s i zgasić na 2s, dlatego użyję następującego kodu, w którym diodę oznaczę jako czerwoną dla łatwiejszego rozpoznania w dalszych programach.
import machine
import utime
czerwona=machine.Pin(15, machine.Pin.OUT)
while True:
czerwona.value(1)
utime.sleep(5)
czerwona.value(0)
utime.sleep(3)
Podłączamy 2 dodatkowe diody LED zewnętrzne:
Program zaświecający po kolei każdą z 3 diod led:
import machine
import utime
czerwona=machine.Pin(15, machine.Pin.OUT)
zolta=machine.Pin(14, machine.Pin.OUT)
zielona=machine.Pin(13, machine.Pin.OUT)
while True:
czerwona.value(1)
utime.sleep(1)
czerwona.value(0)
utime.sleep(1)
zolta.value(1)
utime.sleep(1)
zolta.value(0)
utime.sleep(1)
zielona.value(1)
utime.sleep(1)
zielona.value(0)
utime.sleep(1)
W przypadku użycia funkcji toggle() do zaświecania pojedynczej diody led będzie ona po prostu migała. W przypadku użycia jej dla kilku diod led sytuacja będzie zupełnie inna. Każda z diod najpierw zapal się a następnie każda z nich po kolei zgaśnie. Dzieje się tak ponieważ funkcja ta zmienia stan diody przy każdym przejściu pętli.
import machine
import utime
czerwona=machine.Pin(15, machine.Pin.OUT)
zolta=machine.Pin(14, machine.Pin.OUT)
zielona=machine.Pin(13, machine.Pin.OUT)
while True:
czerwona.toggle()
utime.sleep(1)
zolta.toggle()
utime.sleep(1)
zielona.toggle()
utime.sleep(1)