树莓派的矩阵键盘扫描程序,python开发

树莓派可以很方便的拓展矩阵键盘用做人机交互,今天教大家如何驱动4*4矩阵键盘。


先贴上代码:

import time

class keypad(object):
KEYPAD=[
['1','2','3','*'],
['4','5','6','#'],
['7','8','9','$'],
['CLR','0','Set','OK']]

ROW    =[12,16,20,21]
COLUMN =[6,13,19,26]


def __init__(self):
GPIO.cleanup()
GPIO.setmode(GPIO.BCM)

def getkey(self):
import RPi.GPIO as GPIO
#设置列输出低
for i in range(len(self.COLUMN)):
GPIO.setup(self.COLUMN[i],GPIO.OUT)
GPIO.output(self.COLUMN[i],GPIO.LOW)

#设置行上拉输入
for j in range(len(self.ROW)):
GPIO.setup(self.ROW[j],GPIO.IN,pull_up_down=GPIO.PUD_UP)

#检测行是否有键按下,有则读取行值(0~3)
RowVal=-1
for i in range(len(self.ROW)):
RowStatus=GPIO.input(self.ROW[i])
if RowStatus==GPIO.LOW:
RowVal=i
# print 'RowVal=%s' % RowVal 

#若无键按下,返回
if RowVal<0 or RowVal>3:
self.exit()
return 

#若第RowVal行有键按下,翻转输入输出模式
#第RowVal行输出高电平,
GPIO.setup(self.ROW[RowVal],GPIO.OUT)
GPIO.output(self.ROW[RowVal],GPIO.HIGH)
#列为下拉输入
for j in range(len(self.COLUMN)):
GPIO.setup(self.COLUMN[j],GPIO.IN,pull_up_down=GPIO.PUD_DOWN)

#读取按键所在列值
ColumnVal=-1
for i in range(len(self.COLUMN)):
ColumnStatus=GPIO.input(self.COLUMN[i])
if ColumnStatus==GPIO.HIGH:
ColumnVal=i
#等待按键松开
while GPIO.input(self.COLUMN[i])==GPIO.HIGH:
time.sleep(0.5)
# print 'ColumnVal=%s' % ColumnVal
#若无键按下,返回
if ColumnVal<0 or ColumnVal>3:
self.exit()
return

self.exit()
return self.KEYPAD[RowVal][ColumnVal]


def exit(self):
import RPi.GPIO as GPIO
for i in range(len(self.ROW)):
GPIO.setup(self.ROW[i],GPIO.IN,pull_up_down=GPIO.PUD_UP)
for j in range(len(self.COLUMN)):
GPIO.setup(self.COLUMN[j],GPIO.IN,pull_up_down=GPIO.PUD_UP)

if __name__='__main__':

kp=keypad()

key=None

while True:

key=kp.getkey()

if not key==None:

print 'You enter the  key:',key

编程思路:假如S1键按下,先扫描行(列),即行输入,列输出高。此时接第一行的引脚必然会被拉高。设置接第一行的引脚为输出高,列输入。此时接第一列的引脚必然会被拉高。这样我们就得到了第一行第一列的按键被按下。

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在这个指导下,我们解释了如何连接16x2 LED和4x4矩阵键盘与Raspberry Pi3。 我们使用Python 3.4开发软件。你也可以选择Python 2.7,几乎没有任何改动。 步骤1:所需材料我们需要以下组件 树莓派3 用于Pi的5V 2A适配器 8GB micro SD 16x2字母数字LCD 4x4矩阵键盘 点PCB(中等大小) 或面包板 伯格地带 跳线 10K锅 以太网电缆(用于与笔记本电脑建立VNC连接) 第2步:硬件设置我们没有包括硬件设置的步骤,例如将操作系统刻录到micro SD和VNC接口。您必须为这些过程找到其他资源。 将操作系统预装的8GB Micro SD卡插入到Rapberry Pi 3.通过以太网电缆将树莓派连接到笔记本电脑。按照接线图中的描述制作硬件。 16x2液晶 我们使用4位模式的 LCD接口,因此控制信号所需的引脚是连接到树莓派的GPIO的RS,EN,D4,D5,D6,D7。 4x4矩阵键盘 安装用于4x4和4x3矩阵键盘Python包,以便执行基于中断的操作。因此不需要始终扫描键盘的行和列。这里使用内部上拉电阻,因此不需要外部上拉电阻。 将树莓派连接到网络,然后打开终端并键入以下内容: sudo python3.4 -m pip安装pad4pi 第3步:接线图LCD引脚: LCD_RS = 21 LCD_E = 20 LCD_D4 = 26 LCD_D5 = 19 LCD_D6 = 13 LCD_D7 = 6 键盘插针: 立柱= 17,15,14,4排立柱= 24,22,27,18 您可以选择任何GPIO引脚来连接LCD和键盘,只需更改代码中的引脚号。您可以使用面包板或PCB来连接LCD和键盘。 第4步:Python代码您可以直接下载代码。在Raspberry Pi 3中使用python 3.4运行code.py。或复制文本并将其粘贴到python 3.4的新脚本文件中。 运行程序: 如果您所做的连接是正确的,液晶显示屏将在第一行显示文字“欢迎”。键盘数据显示在第二行。 第5步:输出预览我已经添加了键盘中断,所以,如果你终止程序LCD将显示再见

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值