2016 m. gruodžio 4 d., sekmadienis

Raspberri Pi GPIO programavimas

Diegiam gpiozero paketą, skirtą raspbery pi gpio valdymui:
$ sudo apt install python3-gpiozero -y


GPIO išvadai:
Avietės GPIO išvadai su paaiškinimais
Reiktų žinoti, kad netinkamai sujungus GPIO išvadus yra įmanoma sudeginti avietės grandinės komponentus.

Prijungimas ir programavimas

Lemputės prijungimo schema
Tam, kad apskaičiuotume rezistoriaus varžą panaudokime Omo dėsnį:
Varža = (Įtampos Šaltinis - LED praleidimo Įtampa) / LED Maksimalios srovės

GPIO programavimas su python'u

$ python3
>>> from gpiozero import LED #Iš gpiozero bibliotekos importuojam LED
>>> led = LED(18) #Pasirenkam GPIO išvadą, prie kurio prijungta lemputė
>>> led.on() #Lemputė įsijungia
>>> led.off() #Lemputė išsijungia
>>> led.blink() #Lemputė mirksi numatytu, 1 sekundės intervalu
>>> led.toggle() #Ta pačia komanda lemputė įsijungs/išsijungs 


ledblink(švietimo_būsenos_laikas, išjungimo_būsenos_laikas) 
led.blink(2, 2) -  2 sekundes bus švies, ir tiek pat laiko bus išjungta.
led.blink(0.5, 1) - pusę sekundės švies, 1 sekundę bus išjungta.


Mirksinčios lemputės pavyzdys:

Tolesnius pavyzdžius išsaugom su mėgstamiausiu teksto redaktoriumi ir paleidžiam python3 programos_pavadinimas.py komanda.

from gpiozero import LED
from time import sleep

led = LED(18)

while True:
    led.on()
    sleep(1)
    led.off()
    sleep(1)


Mygtuko prijungimo schema


Pavyzdys su mygtuku:

from gpiozero import Button
button = Button(24)
button.wait_for_press()
print('Mygtukas buvo nuspaustas')


Lemputė mirksi nuspaudus mygtuką:

from gpiozero import LED, Button
from time import sleep

led = LED(18)
button = Button(24)

button.wait_for_press()
print("Button clicked")
while True:
        led.on()
        sleep(1)
        led.off()
        sleep(1)



Lempute užsidega. tik tuomet, kai mygtukas nuspaustas:

from gpiozero import LED, Button
from signal import pause

led = LED(18)
button = Button(24)

button.when_pressed = led.on
button.when_released = led.off

pause()