30个Python物联网小实验3:使用按钮开灯关灯
2024-08-23 12:47:51
使用按钮开灯关灯
- 接线图非常简单,LED接
GPIO17
号口,按钮接GPIO2
号口,负极接GND地线。
- 代码也非常简单:
from gpiozero import LED, Button from signal import pause
led = LED()
button = Button()
button.when_pressed = led.on
button.when_released = led.off
pause() 复制代码
- 执行代码,按下按钮,发光二极管就会亮,松开就会灭。
使用按钮开灯关灯(二)
- 还有一种
source
的写法,直接把按钮的状态提供给发光二极管,达到同样的效果。
from gpiozero import LED, Button
from signal import pause
led = LED()
button = Button()
led.source = button
pause() 复制代码
按钮按下和松开
- 先上效果
接线非常简单,按钮一端连接
GPIO2
号针脚,一端连接GND地线。代码灰常简单:
from gpiozero import Button
button = Button()
while True:
if button.is_pressed:
print()
button.wait_for_press()
print()
button.when_pressed = say_hello
pause() 复制代码
- 按下按钮,执行
say_hello()
这个函数。
松开执行特定函数
- 上效果图:
- 上代码:
from gpiozero import Button
from signal import pause
def )
button.when_pressed = say_hello
button.when_released = say_goodbye
pause() 复制代码
- 按下会执行
say_hello()
函数,松开会执行say_goodbye()
函数。
长按4秒关机
- 上代码:
from gpiozero import Button
from subprocess import check_call
from signal import pause
def , hold_time=)
shutdown_btn.when_held = shutdown
pause() 复制代码
- 增加了一个
hold_time=4
长按4秒才触发的初始化,触发之后执行shutdown()
函数关机。
小游戏:谁的反应快?
- 接线图:两个按钮分别连接
GPIO2、3
号口,LED连接GPIO 17
号口。
- 上代码:
from gpiozero import Button, LED
from time import sleep
import random
led = LED()
player_1 = Button()
player_2 = Button()
time = random.uniform(, )
sleep(time) led.on()
while True:
if player_1.is_pressed:
print("Player 1 wins!")
break
if player_2.is_pressed:
print("Player 2 wins!")
break
led.off() 复制代码
- 程序开始执行后,在(2,5)秒随机点亮LED灯,谁抢险按下按钮,就会显示谁赢了。
好了,本次介绍就到这里,这个系列的全文会收录在我的github目录,欢迎大家star和沟通:github.com/asukafighti…
最新文章
- Bzoj2850 巧克力王国
- PHP 输入流 php://input
- paramiko模块-2
- c++接口实现与分离(转载)
- JS---如何避免用户在请求时“猛击”
- GitHub开源项目总结
- iOS阶段学习第15天笔记(NSDictionary与NSMutableDictionary 字典)
- win10安装软件被阻止后
- WebApi简单使用
- work4
- [置顶] iptables 性能 测试
- html的特质语义:微格式及其他(重点介绍其中两种)
- php5.3 appache phpstudy win7win8win10下 运行速度慢
- jsp Ajax请求(返回json数据类型)
- web前端学习就这9个阶段,你属于哪个阶段?
- python学习资料整理
- Linux Platform Device and Driver
- 第五章 JS典型特效
- IdentityServer4-Resource定义-翻译
- Fixed Partition Memory Management UVALive - 2238 建图很巧妙 km算法左右顶点个数不等模板以及需要注意的问题 求最小权匹配