15 lutego 2021

Raspberry Pi Pico - diody LED. Minikurs część 2.

Podłączanie i odłączanie Raspberry Pi Pico

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.

Raspberry Pi Pico - diody LED. Minikurs część 2. 1

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.

Zapalenie wbudowanej diody LED

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)
Raspberry Pi Pico - diody LED. Minikurs część 2. 2

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

Zapalanie i gaszenie diody led z takim samym czasem

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)

Zatrzymanie działającego programu

Możemy to wykonać na 2 sposoby:

  • wciskając czerwony przycisk zatrzymujący w programie Thonny
  • wciskając podłączony przycisk reset do naszego Pico

Zewnętrzna dioda - podłączenie i programowanie

Podłącz zewnętrzną diodę LED do pinu GP15 w prawym dolnym rogu Raspberry Pi Pico. Do diody podłączamy rezystor do GND.

Raspberry Pi Pico - diody LED. Minikurs część 2. 3
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)

Pomigamy sobie - 3 diody LED

Podłączamy 2 dodatkowe diody LED zewnętrzne:

  • żółtą do pinu GP 14
  • zieloną do pinu GP13
Raspberry Pi Pico - diody LED. Minikurs część 2. 4

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)

Zaświecanie diod przy użyciu funkcji toggle()

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)

Dodaj komentarz

Copyright © 
Code Designer 2024