30个Python物联网小实验3:使用按钮开灯关灯
使用按钮开灯关灯
- 接线图非常简单,LED接
GPIO17号口,按钮接GPIO2号口,负极接GND地线。
- 代码也非常简单:
from gpiozero import LED, Button from signal import pauseled = LED()button = Button()button.when_pressed = led.onbutton.when_released = led.offpause() 复制代码
- 执行代码,按下按钮,发光二极管就会亮,松开就会灭。
使用按钮开灯关灯(二)
- 还有一种
source的写法,直接把按钮的状态提供给发光二极管,达到同样的效果。
from gpiozero import LED, Buttonfrom signal import pauseled = LED()button = Button()led.source = buttonpause() 复制代码
按钮按下和松开
- 先上效果
接线非常简单,按钮一端连接
GPIO2号针脚,一端连接GND地线。代码灰常简单:
from gpiozero import Buttonbutton = Button()while True:if button.is_pressed:print()button.wait_for_press()print()button.when_pressed = say_hellopause() 复制代码
- 按下按钮,执行
say_hello()这个函数。
松开执行特定函数
- 上效果图:
- 上代码:
from gpiozero import Buttonfrom signal import pausedef )button.when_pressed = say_hellobutton.when_released = say_goodbyepause() 复制代码
- 按下会执行
say_hello()函数,松开会执行say_goodbye()函数。
长按4秒关机
- 上代码:
from gpiozero import Buttonfrom subprocess import check_callfrom signal import pausedef , hold_time=)shutdown_btn.when_held = shutdownpause() 复制代码
- 增加了一个
hold_time=4长按4秒才触发的初始化,触发之后执行shutdown()函数关机。
小游戏:谁的反应快?
- 接线图:两个按钮分别连接
GPIO2、3号口,LED连接GPIO 17号口。
- 上代码:
from gpiozero import Button, LEDfrom time import sleepimport randomled = 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!")breakif player_2.is_pressed:print("Player 2 wins!")breakled.off() 复制代码
- 程序开始执行后,在(2,5)秒随机点亮LED灯,谁抢险按下按钮,就会显示谁赢了。
好了,本次介绍就到这里,这个系列的全文会收录在我的github目录,欢迎大家star和沟通:github.com/asukafighti…
30个Python物联网小实验3:使用按钮开灯关灯的更多相关文章
- 30个Python物联网小实验5:光线感应灯
30个Python物联网小实验5:光线感应灯 光线传感器 光线变化执行函数 光线状态执行函数 30个Python物联网小实验5:光线感应灯 光线传感器 可以检测周围环境的亮度: 方向性较好,感知特定方 ...
- python :开关,开灯关灯
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- 30个物联网传感器小实验:三行代码点亮LED灯
30个物联网传感器小实验:三行代码点亮LED灯 三行代码点亮LED灯 LED灯闪烁 LED灯调亮度 LED淡入淡出 不写一行代码点亮LED灯 全彩RGB灯 面包板 30个物联网传感器小实验:三行代码点 ...
- 30个有关Python的小技巧,给程序员的 30 个基本 Python 贴士与技巧
30个有关Python的小技巧 2013/07/04 · Python, 开发 · 4 评论 · Python 分享到: 66 本文由 伯乐在线 - Kevin Sun 翻译.未经许可,禁止转载!英文 ...
- 20184302 2019-2020-2 《Python程序设计》实验四报告
20184302 2019-2020-2 <Python程序设计>实验四报告 课程:<Python程序设计> 班级: 1843 姓名: 李新锐 学号:184302 实验教师:王 ...
- 20192204 2019-2020-2 《Python程序设计》实验四报告
20192204 2019-2020-2 <Python程序设计>实验四报告 课程:<Python程序设计> 班级: 1922 姓名: 李龙威 学号:20192204 实验教师 ...
- 12岁的少年教你用Python做小游戏
首页 资讯 文章 频道 资源 小组 相亲 登录 注册 首页 最新文章 经典回顾 开发 设计 IT技术 职场 业界 极客 创业 访谈 在国外 - 导航条 - 首页 最新文章 经典回顾 开发 ...
- MongoDB 主从复制小实验
MongoDB 主从复制小实验 操作环境描述:WIN8 64位操作系统,内装虚拟机为CentOS 5.5 32位系统. 操作描述:跟其他关系型数据库类似,在主库进行数据操作,将数据同步到从节点,从节 ...
- 适合新手的Python爬虫小程序
介绍:此程序是使用python做的一个爬虫小程序 爬取了python百度百科中的部分内容,因为这个demo是根据网站中的静态结构爬取的,所以如果百度百科词条的html结构发生变化 需要修改部分内容. ...
随机推荐
- Docker中部署puppeteer导出pdf
最近在做puppeteer容器化的过程中发现问题. 在容器中npm install puppeteer仍然会报错,不能launch 随后错误提示中也给出了官方的文档,https://github.co ...
- Android之Handler使用方法总结
方法一:(java习惯,在android平台开发时这样是不行的,由于它违背了单线程模型) 刚刚開始接触android线程编程的时候,习惯好像java一样,试图用以下的代码解决这个问题 new T ...
- luoguP3066 [USACO12DEC]逃跑的BarnRunning
luoguP3066 [USACO12DEC]逃跑的BarnRunning 题目大意 给定一棵n个节点的树和参数L,查询每个节点子树中到达该节点距离<=L的数量(包括该节点) 偏模板的主席树 P ...
- Linux内核同步【转】
本文转载自:http://blog.csdn.net/a775992553/article/details/8797710 Linux设备驱动中必须解决的一个问题是多个进程对共享资源的并发访问,并发访 ...
- Linux下新建oracle用户
su - oraclesqlplus / as sysdba the procedure of dropping user are as follow: select sid,serial# from ...
- [原创]java在线打开PDF文档
步骤一:(涉及到的工具) 访问:http://www.zhuozhengsoft.com/dowm/,从官网下载PageOffice for Java. 步骤二:(配置工程) 1. 解压PageOff ...
- wordpress汇总(持续更新)
在wordpress上新建编辑了几个页面,总是不能正常发布预览.经调查是由于固定链接的设置有问题导致的.打开左侧栏目“设置”中的固定链接项,可以看到目前所选的是“自定义结构”型.将其更改为“朴素”型后 ...
- unity3d: how to display the obj behind the wall
透墙显示,遮挡显示,使用ztest Tags { "Queue"="Overlay+1" "RenderType"="Transp ...
- leetcode 66. Plus One(高精度加法)
Given a non-negative number represented as an array of digits, plus one to the number. The digits ar ...
- iOS :undefined symbols for architecture x86_64
转自:http://www.th7.cn/Program/IOS/201408/268371.shtml 问题描述:为了适配iPhone 5s的64位处理器,在编译选项中加入了arm64架构.但是发现 ...