【微蓝课堂】机器人编程|树莓派系列|09-四角轻触按键的应用
·
一、课堂目标
- 了解四脚轻触按键的原理
- 掌握gpiozero.Button的使用
二、轻触按键和轻触开关的区别
- 轻触开关是按一下接通电路,手松开后电路依然接通,再按一次电路断开;
- 轻触按键是按下去接通电路,手松开电路就断开。
三、四脚轻触按键原理
先来看下两脚按键的电路图:两脚轻触按键的连通原理比较简单:按键按下,内部线路接通;按键松开,内部线路断开。

再来看下四脚轻触按键的电路图:

四脚轻触按键的连通原理复杂点:按键松开时,引脚1和引脚2是连通的,引脚3和引脚4是连通的,但是引脚1/2和引脚3/4是断开的;按键按下时,引脚1、2、3、4都连通了。
最后我们认识下四脚轻触按键实物:四脚按键背面有个凹槽,凹槽两边在按键按下前是断开的,按下按键凹槽两边的引脚才会接通。

注意:
- 四脚按键插入面包时需要注意方向,下图中这种插法,无论按键是否按下,四个角都是连通的。

- 旋转下,这么插发现一个区域放不下,很尴尬:

- 正确插法:

四、接线图

五、gpiozero.Button的使用
5.1 判断按键是否按下
from gpiozero import Button
button = Button(2)
while True:
if button.is_pressed:
print("Button is pressed")
break
else:
print("Button is not pressed")
程序解释:循环检测按钮是否按下,如果按钮按下,输出信息后终止循环。
5.2 等待按键按下或松开
from gpiozero import Button
button = Button(2)
button.wait_for_press()
print(button.is_pressed)
button.wait_for_release()
print(button.is_pressed)
程序解释:等待按钮是否按下,这时程序不会往下执行,直到有按钮按下,再执行下一行代码;等待按钮是否松开,松开后打印信息。
5.3 按键按下回调
from gpiozero import Button
from signal import pause
def say_hello():
print("Hello!")
button = Button(2)
button.when_pressed = say_hello
pause()
程序解释:设置按钮的回调事件后,如果按钮按下,程序会执行回调函数:输出Hello信息。Python 脚本结束时会终止进程,GPIO 可能会被重置,使用signal.pause() 会使脚本继续运行。

5.4 按键松开时回调
from gpiozero import Button
from signal import pause
def say_hello():
print("Hello!")
def say_goodbye():
print("Goodbye!")
button = Button(2)
button.when_pressed = say_hello
button.when_released = say_goodbye
pause()
程序解释:按钮松开同样可以设置事件,下面程序当按钮按下后输出Hello,当按钮释放后输出Goodbye。

原创不易,大家多多关注我下!

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)