# Version 1.1 Created 30/04/2014
#
# Requires python smbus to be installed with: sudo apt-get install python-smbus 
# run with: sudo python iopiread.py
# ================================================

# This example reads the first 8 pins of bus 1 on the IO Pi board.  The internal pull-up resistors are enabled so each pin will read as 1 unless the pin is connected to ground.

# Initialise the IOPi device using the default addresses, you will need to change the addresses if you have changed the jumpers on the IO Pi
bus1 = IOPI(0x20)

# We will read the inputs 1 to 8 from bus 2 so set port 0 to be inputs and enable the internal pull-up resistors 
bus1.setPortDirection(0, 0xFF)
bus1.setPortPullups(0, 0xFF)

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

    # read the pins 1 to 8 and print the results
    print 'Pin 1: ' + str(bus1.readPin(1))
    print 'Pin 2: ' + str(bus1.readPin(2))
    print 'Pin 3: ' + str(bus1.readPin(3))
    print 'Pin 4: ' + str(bus1.readPin(4))
    print 'Pin 5: ' + str(bus1.readPin(5))
    print 'Pin 6: ' + str(bus1.readPin(6))
    print 'Pin 7: ' + str(bus1.readPin(7))
    print 'Pin 8: ' + str(bus1.readPin(8))
    
    # wait 0.5 seconds before reading the pins again
    time.sleep(0.1)
# This example uses the writePin and writePort methods to switch pin 1 on and off on the IO Pi.


#!/usr/bin/python 
from ABElectronics_IOPi import IOPI
import time

bus = IOPI(0x21)

bus.setPinDirection(1, 1) # set pin 1 as an input

bus.setPinDirection(8, 0) # set pin 8 as an output

bus.writePin(8,0) # turn off pin 8

bus.setPinPullup(1, 1) # enable the internal pull-up resistor on pin 1

bus.invertPin(1, 1) # invert pin 1 so a button press will register as 1



while True:
 
   if bus.readPin(1) == 1: # check to see if the button is pressed
      print 'button pressed' # print a message to the screen
      bus.writePin(8, 1) # turn on the led on pin 8
      time.sleep(2) # wait 2 seconds
   else:
      bus.writePin(8, 0) # turn off the led on pin 8