08-11-2016, 02:43 PM
With this setup and Python code I can confirm that all pins I added functions for work as input.
![[Image: VGGMJTq.jpg]](http://i.imgur.com/VGGMJTq.jpg)
![[Image: VGGMJTq.jpg]](http://i.imgur.com/VGGMJTq.jpg)
Code:
# -*- coding: utf-8 -*-
import time
import RPi.GPIO as GPIO
class PIN:
def __init__(self):
# Setup GPIO to input
#GPIO.cleanup()
GPIO.setmode(GPIO.BCM)
# "Left" side
GPIO.setup(2, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(3, GPIO.IN, pull_up_down=GPIO.PUD_UP)
#GPIO.setup(4, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Broken!!!
GPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(27, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(22, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(10, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(9, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(11, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(5, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(6, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(13, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(19, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(26, GPIO.IN, pull_up_down=GPIO.PUD_UP)
# "Right" side
GPIO.setup(14, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(15, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(25, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(8, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(7, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(12, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(16, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(20, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(21, GPIO.IN, pull_up_down=GPIO.PUD_UP)
self.p2 = False
self.p3 = False
self.p17 = False
self.p27 = False
self.p22 = False
self.p10 = False
self.p9 = False
self.p11 = False
self.p5 = False
self.p6 = False
self.p13 = False
self.p19 = False
self.p26 = False
self.p14 = False
self.p15 = False
self.p18 = False
self.p23 = False
self.p24 = False
self.p25 = False
self.p8 = False
self.p7 = False
self.p12 = False
self.p16 = False
self.p20 = False
self.p21 = False
self.read()
def read(self):
self.old2 = self.p2
self.old3 = self.p3
self.old17 = self.p17
self.old27 = self.p27
self.old22 = self.p22
self.old10 = self.p10
self.old9 = self.p9
self.old11 = self.p11
self.old5 = self.p5
self.old6 = self.p6
self.old13 = self.p13
self.old19 = self.p19
self.old26 = self.p26
self.old14 = self.p14
self.old15 = self.p15
self.old18 = self.p18
self.old23 = self.p23
self.old24 = self.p24
self.old25 = self.p25
self.old8 = self.p8
self.old7 = self.p7
self.old12 = self.p12
self.old16 = self.p16
self.old20 = self.p20
self.old21 = self.p21
self.p2 = False if GPIO.input(2) else True
self.p3 = False if GPIO.input(3) else True
self.p17 = False if GPIO.input(17) else True
self.p27 = False if GPIO.input(27) else True
self.p22 = False if GPIO.input(22) else True
self.p10 = False if GPIO.input(10) else True
self.p9 = False if GPIO.input(9) else True
self.p11 = False if GPIO.input(11) else True
self.p5 = False if GPIO.input(5) else True
self.p6 = False if GPIO.input(6) else True
self.p13 = False if GPIO.input(13) else True
self.p19 = False if GPIO.input(19) else True
self.p26 = False if GPIO.input(26) else True
self.p14 = False if GPIO.input(14) else True
self.p15 = False if GPIO.input(15) else True
self.p18 = False if GPIO.input(18) else True
self.p23 = False if GPIO.input(23) else True
self.p24 = False if GPIO.input(24) else True
self.p25 = False if GPIO.input(25) else True
self.p8 = False if GPIO.input(8) else True
self.p7 = False if GPIO.input(7) else True
self.p12 = False if GPIO.input(12) else True
self.p16 = False if GPIO.input(16) else True
self.p20 = False if GPIO.input(20) else True
self.p21 = False if GPIO.input(21) else True
delay=1.0/60.0
if __name__=="__main__":
counter2 = 0
counter3 = 0
counter17 = 0
counter27 = 0
counter22 = 0
counter10 = 0
counter9 = 0
counter11 = 0
counter5 = 0
counter6 = 0
counter13 = 0
counter19 = 0
counter26 = 0
counter14 = 0
counter15 = 0
counter18 = 0
counter23 = 0
counter24 = 0
counter25 = 0
counter8 = 0
counter7 = 0
counter12 = 0
counter16 = 0
counter20 = 0
counter21 = 0
pin = PIN()
while True:
loopstart=time.time()
pin.read()
if pin.p2 and pin.p2 != pin.old2:
counter2 += 1
print "Button 2", counter2
if pin.p3 and pin.p3 != pin.old3:
counter3 += 1
print "Button 3", counter3
if pin.p17 and pin.p17 != pin.old17:
counter17 += 1
print "Button 17", counter17
if pin.p27 and pin.p27 != pin.old27:
counter27 += 1
print "Button 27", counter27
if pin.p22 and pin.p22 != pin.old22:
counter22 += 1
print "Button 22", counter22
if pin.p10 and pin.p10 != pin.old10:
counter10 += 1
print "Button 10", counter10
if pin.p9 and pin.p9 != pin.old9:
counter9 += 1
print "Button 9", counter9
if pin.p11 and pin.p11 != pin.old11:
counter11 += 1
print "Button 11", counter11
if pin.p5 and pin.p5 != pin.old5:
counter5 += 1
print "Button 5", counter5
if pin.p6 and pin.p6 != pin.old6:
counter6 += 1
print "Button 6", counter6
if pin.p13 and pin.p13 != pin.old13:
counter13 += 1
print "Button 13", counter13
if pin.p19 and pin.p19 != pin.old19:
counter19 += 1
print "Button 19", counter19
if pin.p26 and pin.p26 != pin.old26:
counter26 += 1
print "Button 26", counter26
if pin.p14 and pin.p14 != pin.old14:
counter14 += 1
print "Button 14", counter14
if pin.p15 and pin.p15 != pin.old15:
counter15 += 1
print "Button 15", counter15
if pin.p18 and pin.p18 != pin.old18:
counter18 += 1
print "Button 18", counter18
if pin.p23 and pin.p23 != pin.old23:
counter23 += 1
print "Button 23", counter23
if pin.p24 and pin.p24 != pin.old24:
counter24 += 1
print "Button 24", counter24
if pin.p25 and pin.p25 != pin.old25:
counter25 += 1
print "Button 25", counter25
if pin.p8 and pin.p8 != pin.old8:
counter8 += 1
print "Button 8", counter8
if pin.p7 and pin.p7 != pin.old7:
counter7 += 1
print "Button 7", counter7
if pin.p12 and pin.p12 != pin.old12:
counter12 += 1
print "Button 12", counter12
if pin.p16 and pin.p16 != pin.old16:
counter16 += 1
print "Button 16", counter16
if pin.p20 and pin.p20 != pin.old20:
counter20 += 1
print "Button 20", counter20
if pin.p21 and pin.p21 != pin.old21:
counter21 += 1
print "Button 21", counter21
while loopstart+delay>time.time():
time.sleep(0.001) # Must be sleep or get 94.7% CPU drain