image.png
image.png
#!/user/bin/env python
import time
import RPi.GPIO as GPIO
# 按钮输出针脚连接的GPIO口
key_up=16 #上键
key_down=20 #下键
#key_left= #左键
#key_right= #右键
key_mid=21 #按下
#key_set= #设置键
#key_reset= #复原键
GPIO.setmode(GPIO.BCM)
GPIO.setup(key_up, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.setup(key_down, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.setup(key_mid, GPIO.IN, pull_up_down = GPIO.PUD_UP)
# RISING FALLING BOTH 边缘检测
# bouncetime = 200 忽略由于开关抖动引起的小于 200ms 的边缘操作
# event_detected() 函数 event_detected() 函数被设计用于循环中有其它东西时使用,但不同于轮询的是,它不会错过当 CPU 忙于处理其它事物时输入状态的改变。这在类似使用 Pygame 或 PyQt 时主循环实时监听和响应 GUI 的事件是很有用的。
GPIO.add_event_detect(key_up, GPIO.FALLING, bouncetime = 200)
GPIO.add_event_detect(key_down, GPIO.FALLING, bouncetime = 200)
GPIO.add_event_detect(key_mid, GPIO.FALLING, bouncetime = 200)
while True:
if GPIO.event_detected(key_up)==1 :
print('key_up')
if GPIO.event_detected(key_down)==1 :
print('key_down')
if GPIO.event_detected(key_mid)==1 :
print('key_mid')
time.sleep(2)
网友评论