树莓派的矩阵键盘扫描程序,python开发
来源:互联网 发布:服务器数据库版本 编辑:程序博客网 时间:2024/05/30 23:01
树莓派可以很方便的拓展矩阵键盘用做人机交互,今天教大家如何驱动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键按下,先扫描行(列),即行输入,列输出高。此时接第一行的引脚必然会被拉高。设置接第一行的引脚为输出高,列输入。此时接第一列的引脚必然会被拉高。这样我们就得到了第一行第一列的按键被按下。
- 树莓派的矩阵键盘扫描程序,python开发
- 矩阵键盘扫描程序
- 矩阵键盘扫描程序
- 个人感觉很好的键盘矩阵键盘扫描程序
- C51矩阵键盘扫描程序
- 矩阵键盘扫描程序实例
- 数码管显示矩阵键盘扫描程序
- AVR单片机(ATMEGA16)矩阵键盘扫描程序
- 4X4矩阵键盘扫描程序
- 4X4矩阵键盘扫描程序
- 矩阵键盘的扫描接口函数
- FPGA矩阵键盘的扫描方法
- 关于矩阵键盘扫描的理解
- 4*4矩阵键盘的扫描原理
- 矩阵键盘扫描
- 矩阵键盘中断扫描
- 矩阵键盘中断扫描
- 矩阵键盘终端扫描
- Codeforces Round #156 (Div. 2)
- 2015.4.24.20.44_连接mysql数据库_2014.4.24_java连接mysql数据库
- (创建型模式一)单例模式
- Linux平台安装JDK1.5
- HDU 2222 Keywords Search(AC自动机)
- 树莓派的矩阵键盘扫描程序,python开发
- C 语言程序设计实践 6.5 分石头
- 面试题02
- 研究生记录(1)2015-4-24
- VS控制台中文乱码
- 时间管理
- 用户体验呓语
- MySQL日期类型和毫秒值相互转换
- java中的基本数据类型之间的转换