4*4薄膜键盘的电路连接和驱动(树莓派)获取密码发生错误,怎么解决了?

import RPi.GPIO as GPIO#导入GPIO库
 
import time#导入time库
 
L1 = 5 #GPIO5控制第一行
 
L2 = 6 #GPIO6控制第二行
 
L3 = 13 #GPIO13控制第三行
 
L4 = 19 #GPIO19控制第四行
 
C1 = 1 #GPIO1控制第一列
 
C2 = 12 #GPIO12控制第二列
 
C3 = 20 #GPIO20控制第三列
 
C4 = 21 #GPIO21 控制第四列
 
GPIO.setwarnings(False)#代码禁用警告
 
GPIO.setmode(GPIO.BCM)#设置模式
 
GPIO.setup(L1,GPIO.OUT)#L1设为输出口
 
GPIO.setup(L2,GPIO.OUT)#L2设为输出口
 
GPIO.setup(L3,GPIO.OUT)#L3设为输出口
 
GPIO.setup(L4,GPIO.OUT)#L4设为输出口
 
GPIO.setup(C1,GPIO.IN,pull_up_down = GPIO.PUD_DOWN)#设置某一瞬间的C1信号
 
GPIO.setup(C2,GPIO.IN,pull_up_down = GPIO.PUD_DOWN)#设置某一瞬间的C2信号
 
GPIO.setup(C3,GPIO.IN,pull_up_down = GPIO.PUD_DOWN)#设置某一瞬间的C3信号
 
GPIO.setup(C4,GPIO.IN,pull_up_down = GPIO.PUD_DOWN)#设置某一瞬间的C4信号


emptylist=[ ]
num=" "

 

def readLine(line,characters):

    GPIO.output(line,GPIO.HIGH)

    if(GPIO.input(C1) == True):
        time.sleep(0.3)
        print(characters[0])
        emptylist.append(characters[0])

    if(GPIO.input(C2) == True):
        time.sleep(0.3)
        print(characters[1])
        emptylist.append(characters[1])

    if(GPIO.input(C3) == True):
        time.sleep(0.3)
        print(characters[2])
        emptylist.append(characters[2]) 


    GPIO.output(line,GPIO.LOW)
    c=len(emptylist)
    #print(c)
    while c:
        num=emptylist[c-1]+num
        c=c-1

try:
 
    while true:
 
    #读数
 
        readLine(L2,[“1”,”2”,”3”,”A”])
 
        readLine(L1,[“4”,”5”,”6”,”B”])
 
        readLine(L3,[“7”,”8”,”9”,”C”])
 
        readLine(L4,[“*”,”0”,”#”,”D”])
 
        time.sleep(0.1)
 
except KeyboardInterrupt:
 
    print(“\nAPP stopped!”)

你可能感兴趣的:(python)