GPIO expander
Što ovaj primjer prikazuje
Postavite svih 16 pinova GPIO expandera PCAL6416A kao izlaze i treperite LED diodom na P1-5. Pinovi headera P0-0 do P0-7 u kodu su pinovi 0 do 7, a P1-0 do P1-7 su pinovi 8 do 15. Prije pokretanja spojite LED diodu s otpornikom od 300 Ω između P1-5 i GND na headeru GPIO EXPANDER. Ta vrijednost potječe iz ovog primjera; Arduino skica za GPIO expander umjesto toga traži otpornik od 330 Ω na P1-7.
Primjer koda
"""Use the GPIO expander's pins to blink an LED."""
# This example shows you how to use the GPIO expander's pins
# See below which pins are available
# Include needed libraries
import time
from pcal6416a import *
from inkplate7spectra import Inkplate
# Create Inkplate object
display = Inkplate()
# Initialize the display, needs to be called only once
display.begin()
# pin = display.gpio_expander_pin(pin,mode)
# Supported modes: mode_input, mode_input_pullup, mode_input_pulldown, mode_output
# Supported pins on Inkplate 7SPECTRA are listed below
expander_p0_0 = display.gpio_expander_pin(0, mode_output)
expander_p0_1 = display.gpio_expander_pin(1, mode_output)
expander_p0_2 = display.gpio_expander_pin(2, mode_output)
expander_p0_3 = display.gpio_expander_pin(3, mode_output)
expander_p0_4 = display.gpio_expander_pin(4, mode_output)
expander_p0_5 = display.gpio_expander_pin(5, mode_output)
expander_p0_6 = display.gpio_expander_pin(6, mode_output)
expander_p0_7 = display.gpio_expander_pin(7, mode_output)
expander_p1_0 = display.gpio_expander_pin(8, mode_output)
expander_p1_1 = display.gpio_expander_pin(9, mode_output)
expander_p1_2 = display.gpio_expander_pin(10, mode_output)
expander_p1_3 = display.gpio_expander_pin(11, mode_output)
expander_p1_4 = display.gpio_expander_pin(12, mode_output)
expander_p1_5 = display.gpio_expander_pin(13, mode_output)
expander_p1_6 = display.gpio_expander_pin(14, mode_output)
expander_p1_7 = display.gpio_expander_pin(15, mode_output)
# Take the previously declared pin 1_5 and blink it
# To see the blinking, attatch a 300Ohm resistor and LED between that pin and GND
while 1:
expander_p1_5.digital_write(1)
time.sleep(0.5)
expander_p1_5.digital_write(0)
time.sleep(0.5)
# Infinite loop, this goes on forever
Korištene funkcije
Inkplate()returns InkplateStvara objekt zaslona iz modula inkplate7spectra.
ReturnsObjekt zaslona.
display.begin()returns boolPostavlja pločicu, uključujući expander na I2C adresi 0x20. Postavlja svih 16 pinova expandera kao izlaze s niskom razinom, radi niske potrošnje.
ReturnsTrue.
display.gpio_expander_pin(pin, mode)returns GpioPinPostavlja način rada pina expandera i vraća objekt za taj pin. Načini iz modula pcal6416a: mode_input, mode_output, mode_input_pullup, mode_input_pulldown.
ReturnsObjekt pina.
expander_p1_5.digital_write(value)returns NonePostavlja pin u visoko (1) ili nisko (0) stanje. digital_read() ga čita.
ReturnsNišta.
Što očekivati
LED dioda na P1-5 treperi: pola sekunde svijetli, pola sekunde ne svijetli. Zaslon se ne mijenja, a u shellu se ništa ne ispisuje.
Moduli koriste P1-1 za mjerenje baterije i P1-2 za napajanje microSD kartice, a ovaj primjer i njih postavlja kao izlaze. Ostavite ta dva pina slobodnima; pogledajte Jumperi.
🔗Otvorite cjeloviti primjer
examples/inkplate7spectra/gpio_expander.py