Requires python smbus to be installed with: sudo apt-get install python3-smbus run with: sudo python3 demo-iowrite.py ================================================ This example uses the write_pin and writeBank methods to switch the pins on and off on the I/O bus. Initialise the IO class and create an instance called io. """ io = IO() # We will write to the pins 9 to 16 so set port 1 to be outputs turn off # the pins io.set_port_direction(1, 0x00) io.write_port(1, 0x00) while True: # count to 255 and display the value on pins 9 to 16 in binary format for x in range(0, 255): time.sleep(0.05) io.write_port(1, x) # turn off all of the pins on bank 1 io.write_port(1, 0x00) # now turn on all of the leds in turn by writing to one pin at a time io.write_pin(9, 1) time.sleep(0.1)
================================================ This example uses the write_pin and writeBank methods to switch the pins on and off on the I/O bus. Initialise the IO class and create an instance called io. """ i2c_helper = ABEHelpers() bus = i2c_helper.get_smbus() io = IO(bus) # We will write to the pins 9 to 16 so set port 1 to be outputs turn off # the pins io.set_port_direction(1, 0x00) io.write_port(1, 0x00) while True: # count to 255 and display the value on pins 9 to 16 in binary format for x in range(0, 255): time.sleep(0.05) io.write_port(1, x) # turn off all of the pins on bank 1 io.write_port(1, 0x00) # now turn on all of the leds in turn by writing to one pin at a time io.write_pin(9, 1) time.sleep(0.1)
# 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 # fired when the pin matches the default value io.set_interrupt_type(0, 1)
Requires python smbus to be installed with: sudo apt-get install python3-smbus 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)))