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:

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.