def runTest(self): GPIO.setmode(GPIO.BCM) GPIO.setup(LED_PIN_BCM, GPIO.IN) self.assertEqual(GPIO.gpio_function(LED_PIN_BCM), GPIO.IN) GPIO.setup(LED_PIN_BCM, GPIO.OUT) self.assertEqual(GPIO.gpio_function(LED_PIN_BCM), GPIO.OUT) GPIO.setmode(GPIO.BOARD) GPIO.setup(LED_PIN, GPIO.IN) self.assertEqual(GPIO.gpio_function(LED_PIN), GPIO.IN) GPIO.setup(LED_PIN, GPIO.OUT) self.assertEqual(GPIO.gpio_function(LED_PIN), GPIO.OUT)
def runTest(self): # Test mode not set (BOARD or BCM) exception with self.assertRaises(RuntimeError) as e: GPIO.setup(LED_PIN, GPIO.OUT) self.assertEqual(str(e.exception), 'Please set pin numbering mode using GPIO.setmode(GPIO.BOARD) or GPIO.setmode(GPIO.BCM)') GPIO.setmode(GPIO.BOARD) # Test not set as OUTPUT message with self.assertRaises(RuntimeError) as e: GPIO.output(LED_PIN, GPIO.HIGH) self.assertEqual(str(e.exception), 'The GPIO channel has not been set up as an OUTPUT') GPIO.setup(LED_PIN, GPIO.IN) # Test setup(..., pull_up_down=GPIO.HIGH) raises exception with self.assertRaises(ValueError): GPIO.setup(LED_PIN, GPIO.IN, pull_up_down=GPIO.HIGH) # Test 'already in use' warning GPIO.cleanup() with open('/sys/class/gpio/export','wb') as f: f.write(str(LED_PIN_BCM).encode()) with open('/sys/class/gpio/gpio%s/direction'%LED_PIN_BCM,'wb') as f: f.write(b'out') with open('/sys/class/gpio/gpio%s/value'%LED_PIN_BCM,'wb') as f: f.write(b'1') with warnings.catch_warnings(record=True) as w: GPIO.setup(LED_PIN, GPIO.OUT) # generate 'already in use' warning self.assertEqual(w[0].category, RuntimeWarning) with open('/sys/class/gpio/unexport','wb') as f: f.write(str(LED_PIN_BCM).encode()) GPIO.cleanup() # test initial value of high reads back as high GPIO.setup(LED_PIN, GPIO.OUT, initial=GPIO.HIGH) self.assertEqual(GPIO.input(LED_PIN), GPIO.HIGH) GPIO.cleanup() # test initial value of low reads back as low GPIO.setup(LED_PIN, GPIO.OUT, initial=GPIO.LOW) self.assertEqual(GPIO.input(LED_PIN), GPIO.LOW) GPIO.cleanup()
#!/usr/bin/env python import RaPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) GPIO.setup(7, GPIO.IN, pull_up_down=GPIO.PUD_UP) print "\n value_7 = %d\n" %(GPIO.input(7)) GPIO.setup(8, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) print "\n value_8 = %d\n" %(GPIO.input(8)) GPIO.setup(12, GPIO.IN, pull_up_down=GPIO.PUD_UP) print "\n value_12 = %d\n" %(GPIO.input(12)) GPIO.setup(12, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) print "\n value_12 = %d\n" %(GPIO.input(12)) #GPIO.cleanup()
import RaPi.GPIO as GPIO import time #channel = 15 GPIO.setmode(GPIO.RAW) GPIO.setup(GPIO.PI+17,GPIO.IN,GPIO.PUD_DOWN) print " Now input is Low\n Our task is performed when it becomes High" while True: if GPIO.input(GPIO.PI+17): print "Input was High,begin to perform" print "Count Down" for i in range(7,0,-1): print "%d" %i time.sleep(1) print "Performed!" exit() GPIO.cleanup(GPIO.PI+17)