Zum Hauptinhalt springen

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 Inkplate

Erstellt das Display-Objekt aus dem Modul inkplate7spectra.

ReturnsDas Display-Objekt.

display.begin()returns bool

Richtet 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 GpioPin

Legt 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 None

Setzt 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

→