基于树莓派的矩阵按键代码

树莓派通过GPIO口,使用Python读取矩阵按键,并电脑端输出相应按键的key数值。

import RPi.GPIO as GPIO
import time

# 设置GPIO口的模式为BCM编码方式
GPIO.setmode(GPIO.BCM)


# 定义行列针脚
keypad_row = [18, 23, 24, 25]
keypad_col = [4, 17, 27]


# 定义矩阵按键的字符
keypad = [
    ['1', '2', '3'],
    ['4', '5', '6'],
    ['7', '8', '9'],
    ['*', '0', '#']
]


# 初始化行列针脚状态
for i in range(3):
    GPIO.setup(keypad_col[i], GPIO.OUT)
    GPIO.output(keypad_col[i], 1)
for i in range(4):
GPIO.setup(keypad_row[i], GPIO.IN, pull_up_down=GPIO.PUD_UP)


# 读取矩阵按键的状态
def keypad_read():
    for i in range(3):
        GPIO.output(keypad_col[i], 0)
        for j in range(4):
            if GPIO.input(keypad_row[j]) == 0:
                time.sleep(0.05)
                if GPIO.input(keypad_row[j]) == 0:
                    return keypad[j][i]
        GPIO.output(keypad_col[i], 1)
return None


# 循环读取矩阵按键的状态
while True:
    key = keypad_read()
    if key != None:
        print(key)
        time.sleep(0.5)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值