GPIO-Expander
Was dieses Beispiel zeigt
Setzen Sie alle 16 Pins des GPIO-Expanders PCAL6416A als Ausgänge und lassen Sie eine LED an P1-5 blinken. Die Header-Pins P0-0 bis P0-7 sind im Code die Pins 0 bis 7, und P1-0 bis P1-7 sind die Pins 8 bis 15. Schließen Sie vor dem Ausführen eine LED mit einem 300-Ω-Widerstand zwischen P1-5 und GND am Header GPIO EXPANDER an. Dieser Wert stammt aus diesem Beispiel; der Arduino-Sketch für den GPIO-Expander verlangt stattdessen einen 330-Ω-Widerstand an P1-7.
Beispielcode
"""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
Verwendete Funktionen
Inkplate()returns InkplateErstellt das Display-Objekt aus dem Modul inkplate7spectra.
ReturnsDas Display-Objekt.
display.begin()returns boolRichtet das Board ein, einschließlich des Expanders an der I2C-Adresse 0x20. Alle 16 Expander-Pins werden zur Stromersparnis als Ausgänge mit Low-Pegel gesetzt.
ReturnsTrue.
display.gpio_expander_pin(pin, mode)returns GpioPinLegt den Modus eines Expander-Pins fest und gibt ein Objekt dafür zurück. Modi aus dem Modul pcal6416a: mode_input, mode_output, mode_input_pullup, mode_input_pulldown.
ReturnsDas Pin-Objekt.
expander_p1_5.digital_write(value)returns NoneSetzt den Pin auf High (1) oder Low (0). digital_read() liest ihn aus.
ReturnsNichts.
Was zu erwarten ist
Die LED an P1-5 blinkt: eine halbe Sekunde an, eine halbe Sekunde aus. Der Bildschirm ändert sich nicht, und in der Shell wird nichts ausgegeben.
Die Module verwenden P1-1 für die Batteriemessung und P1-2 für die Versorgung der microSD-Karte; in diesem Beispiel werden auch diese beiden als Ausgänge gesetzt. Lassen Sie diese beiden Pins frei; siehe Jumper.
🔗Vollständiges Beispiel öffnen
examples/inkplate7spectra/gpio_expander.py