I am trying to read from 4 inputs to get an integer value but when I test my code the actual value does not match the expected
My Code:
import RPi.GPIO as GPIO
import os, time
i=0
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(22,GPIO.IN)
GPIO.setup(23,GPIO.IN)
GPIO.setup(4,GPIO.IN)
GPIO.setup(17,GPIO.IN)
GPIO.setup(27,GPIO.OUT)
a = [0,0,0,0,0]
while True:
n1=GPIO.input(22)
n2=GPIO.input(23)
n3=GPIO.input(4)
n4=GPIO.input(17)
if(n1==0):
if(n2==0):
if(n3==0):
if(n4==0):#0000
a[i]=0
if(n1==0):
if(n2==0):
if(n3==0):
if(n4==1):#0001
a[i]=1
if(n1==0):
if(n2==0):
if(n3==1):
if(n4==0):#0010
a[i]=2
if(n1==0):
if(n2==0):
if(n3==1):
if(n4==1):#0011
a[i]=3
if(n1==0):
if(n2==1):
if(n3==0):
if(n4==0):#0100
a[i]=4
if(n1==0):
if(n2==1):
if(n3==0):
if(n4==0):#0101
a[i]=5
if(n1==0):
if(n2==1):
if(n3==1):
if(n4==0):#0110
a[i]=6
if(n1==0):
if(n2==1):
if(n3==1):
if(n4==1):#0111
a[i]=7
i=i+1
print a
if(i==5):
break
Output is always a=[0,0,0,0,0] so, I want to know what is the problem in my code?
if n1==0:
over and over again?