3.7. GPIO izlaz¶
machine.LED apstrahira ožičenje ugrađenih indikatora kamere. Pobuđivanje bilo kojeg vanjskog komada hardvera počinje s machine.Pin u izlaznom načinu rada – sirovom periferijom ispod svake druge GPIO interakcije.
3.7.1. Pobuđivanje pina¶
Konstruirajte pin s Pin.OUT da bi bio izlaz, a zatim postavite njegovu vrijednost:
from machine import Pin
led = Pin("P0", Pin.OUT)
led.on() # drive high (about 3.3 V)
led.off() # drive low (about 0 V)
Tri ekvivalentna načina za postavljanje stanja, svi na machine.Pin:
pin.value(1)/pin.value(0)– eksplicitni oblik.
Pozivanje value() bez argumenata vraća trenutno stanje pina – što radi i za ulaze i za izlaze.
3.7.2. Pobuđivanje vanjskog LED-a¶
Crveni LED pri 10 mA s 3,3 V treba oko 130 Ω u seriji (stranica o elektronici izvodi račun). Spojite pin P0 preko tog otpornika na anodu LED-a, a katodu LED-a na masu. Trepćuće svjetlo:
import time
from machine import Pin
led = Pin("P0", Pin.OUT)
while True:
led.on()
time.sleep_ms(500)
led.off()
time.sleep_ms(500)
LED se uključuje i isključuje jednom u sekundi. Struju kroz LED (a time i njegovu svjetlinu) određuje otpornik; omjer uključeno / isključeno kontrolira samo koliko se često pali, a ne koliko se jako svijetli dok je upaljen.
Savjet
Konstruktor prihvaća početnu vrijednost kao ključni argument: Pin("P0", Pin.OUT, value=0) konfigurira pin kao izlaz koji počinje u niskom stanju. Bez toga, pin nakratko poprima ono što je bilo njegovo zadano stanje prije prvog poziva value().
3.7.3. Način otvorenog odvoda (open-drain)¶
Zadani način Pin.OUT je push-pull: pin aktivno pobuđuje i visoko (prema napajanju) i nisko (prema masi). Ponekad je to pogrešno. Posegnite za Pin.OPEN_DRAIN kada bi pin trebao ili povući liniju nisko ili je otpustiti (pustiti da pluta):
pin = Pin("P0", Pin.OPEN_DRAIN)
pin.off() # actively drive low
pin.on() # release; an external pull-up brings the line high
Glavna namjena je dijeljenje vodiča. Više izlaza s otvorenim odvodom može dijeliti jednu liniju jer nijedan od njih ne pobuđuje aktivno visoko. Bilo koji od njih može povući liniju nisko; ako je svi otpuste, vanjski pull-up otpornik podiže liniju u visoko stanje. To je konvencija ožičenja iza dijeljenih komunikacijskih sabirnica.
Upozorenje
Otvoreni odvod nije opće rješenje za pobuđivanje uređaja višeg napona. Spajanje pina s otvorenim odvodom na pull-up od 5 V sigurno je na pinu tolerantnom na 5 V, ali oštećuje netolerantni pin preko njegovih zaštitnih dioda na čipu čim pin otpusti liniju i ona pluta prema 5 V. Signalizacija između različitih napona zahtijeva pravi pretvarač razine (level shifter); pogledajte Pomak naponske razine za sklop.