一、前言
上一讲介绍了如何点亮一个LED灯,了解了树莓派的编程方法和运行方式,其实就是控制GPIO输出。
按照惯例,这一讲应该要讲GPIO的输入了。
特别说明:关于树莓派的编程方法我这里就不再赘述了,不知道的同学可以翻一下我第5讲的内容。
二、硬件连接
硬件上要准备一个按键板,或者用导线短接GPIO模拟电平跳变也行(不懂慎用,以防短路),把按键的一端接到树莓派任意一个GPIO口,另外一端接VCC或者GND。
硬件原理我就不说了,感兴趣的同学可以自己查找相关资料,或者看下我之前发布的RT-thread按键输入教程。
我这边用的还是微雪的扩展板Pioneer600。
三、编写代码并运行
按键检测代码示例:
#!/usr/bin/python
#-*- coding:utf-8 -*-
import RPi.GPIO as GPIO #导入RPi.GPIO库
import time #导入time库
KEY = 20 #根据自己的引脚号设置
GPIO.setmode(GPIO.BCM) #引脚使用BCM编码
GPIO.setup(KEY,GPIO.IN,GPIO.PUD_UP) #KEY引脚设置为上拉输入模式
while True:
time.sleep(0.05) #延时0.05s
if GPIO.input(KEY) == 0: #如果KEY引脚为低电平(按键被按下),打印"KEY PRESS"
print("KEY PRESS")
while GPIO.input(KEY) == 0: #如果按键一直被按下(没有松开),一直在while循环中出不去(防止按键长按一直打印)
time.sleep(0.01)
注:
#!/usr/bin/env python,定义python解析脚本的绝对路径
#-*- coding:utf-8 -*-,python文件为utf-8格式,否则无法写入中文注释
运行结果:
四、结束语
按键输入本质上就是读取GPIO的电平状态,按键本质是通过短接IO口和VCC或GND,从而改变IO口的电平状态。结合原理去看代码会更容易理解。好了,这一讲的内容就这么多了,想了解更多树莓派的知识可以关注我,后续我会继续更新更多的教程。
阅读全文