コード例 #1
0
# ================================================

# This example shows how to use the interrupt methods on the Expander Pi IO port.
# The interrupts will be enabled and set so that a voltage applied to pins 1 and 16 will trigger INT A and B respectively.
# using the read_interrupt_capture or read_port methods will reset the
# interrupts.


# Initialise the IOPi and create an instance called io.
"""

io = IO()

# Set all pins on the IO bus to be inputs with internal pull-ups disabled.

io.set_port_pullups(0, 0x00)
io.set_port_pullups(1, 0x00)
io.set_port_direction(0, 0xFF)
io.set_port_direction(1, 0xFF)

# Set the interrupt polarity to be active high and mirroring disabled, so
# pins 1 to 8 trigger INT A and pins 9 to 16 trigger INT B
io.set_interrupt_polarity(1)
io.mirror_interrupts(0)

# Set the interrupts default value to trigger when 5V is applied to pins 1
# and 16
io.set_interrupt_defaults(0, 0x01)
io.set_interrupt_defaults(0, 0x80)

# Set the interrupt type to be 1 for ports A and B so an interrupt is
コード例 #2
0
run with: sudo python3 demo-ioread.py
================================================

This example reads the first 8 pins of on the Expander Pi Digital I/O
port.  The internal pull-up resistors are enabled so each pin will read
as 1 unless the pin is connected to ground.

Initialise the IO class and create an instance called io.
"""

io = IO()

# We will read the inputs 1 to 16 from the I/O bus so set port 0 and port 1 to be
# inputs and enable the internal pull-up resistors
io.set_port_direction(0, 0xFF)
io.set_port_pullups(0, 0xFF)

io.set_port_direction(1, 0xFF)
io.set_port_pullups(1, 0xFF)

while True:
    # clear the console
    os.system('clear')

    # read the pins 1 to 16 and print the results
    print ('Pin 1:  ' + str(io.read_pin(1)))
    print ('Pin 2:  ' + str(io.read_pin(2)))
    print ('Pin 3:  ' + str(io.read_pin(3)))
    print ('Pin 4:  ' + str(io.read_pin(4)))
    print ('Pin 5:  ' + str(io.read_pin(5)))
    print ('Pin 6:  ' + str(io.read_pin(6)))
        # check the value of intA to see if an interrupt has occurred
        if (intA != 0):
            callback_function()

        # sleep this thread for 0.5 seconds
        time.sleep(0.5)


i2c_helper = ABEHelpers()
bus = i2c_helper.get_smbus()
io = IO(bus)

# Set all pins on the IO bus to be inputs with internal pull-ups enabled.

io.set_port_pullups(0, 0xFF)
io.set_port_pullups(1, 0xFF)
io.set_port_direction(0, 0xFF)
io.set_port_direction(1, 0xFF)

# invert the ports so pulling a pin to ground will show as 1 instead of 0
io.invert_port(0, 0xFF)
io.invert_port(1, 0xFF)

# Set the interrupt polarity to be active high and mirroring enabled, so
# pin 1 will trigger both INT A and INT B when a pin is grounded
io.set_interrupt_polarity(1)
io.mirror_interrupts(1)

# Set the interrupts default value to 0
io.set_interrupt_defaults(0, 0x00)
コード例 #4
0
# ================================================

# This example shows how to use the interrupt methods on the Expander Pi IO port.
# The interrupts will be enabled and set so that a voltage applied to pins 1 and 16 will trigger INT A and B respectively.
# using the read_interrupt_capture or read_port methods will reset the
# interrupts.


# Initialise the IOPi and create an instance called io.
"""

io = IO()

# Set all pins on the IO bus to be inputs with internal pull-ups disabled.

io.set_port_pullups(0, 0x00)
io.set_port_pullups(1, 0x00)
io.set_port_direction(0, 0xFF)
io.set_port_direction(1, 0xFF)

# Set the interrupt polarity to be active high and mirroring disabled, so
# pins 1 to 8 trigger INT A and pins 9 to 16 trigger INT B
io.set_interrupt_polarity(1)
io.mirror_interrupts(0)

# Set the interrupts default value to trigger when 5V is applied to pins 1
# and 16
io.set_interrupt_defaults(0, 0x01)
io.set_interrupt_defaults(0, 0x80)

# Set the interrupt type to be 1 for ports A and B so an interrupt is