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结构发生变化 需要修改部分内容. ...
随机推荐
- SAP RFC 的介绍
第一部分 RFC技术 什么是RFC? RFC是SAP系统和其他(SAP或非SAP)系统间的一个重要而常用的双向接口技术,也被视为SAP与外部通信的基本协议.简单地说,RFC过程就是系统调用当前系统外的 ...
- Spring Boot2.0之整合log4j
传统方式打印日志比较复杂, 每次打印需要定义全局变量 private static final Logger logger = LoggerFactory.getLogger(SjpControlle ...
- 数据库,序列化数据为json字符串
create PROCEDURE [dbo].[usp_SerializeJSON] @ParameterSQL as varchar(max) AS BEGIN declare @SQL nvarc ...
- mooc_java 集合框架中 学生所选课程2Map&HashMap
Map&HashMapMap提供映射关系,元素以键值对形式存储,Map的键值对一Entry类型的对象实例形式存在,key值不能重复,value可以键最多能映射到一个值,支持泛型 Map< ...
- Linux_学习_01_ 压缩文件夹
二.参考资料 1.Linux下压缩某个文件夹命令
- java异常的原理以及应用
父类Throwable 两个分支: error:合理的应用程序不应该出现的严重问题,可以无需声明便抛出,比如内存溢出. Exception:程序还能够克服和恢复的问题. 其中又分为系统异常和普通异常. ...
- Posix线程编程指南(1)
这是一个关于Posix线程编程的专栏.作者在阐明概念的基础上,将向您详细讲述Posix线程库API.本文是第一篇将向您讲述线程的创建与取消. 一.线程创建 1.1 线程与进程相对进程而言,线程是一 ...
- hdfs 查看报告--命令(hdfs dfsadmin -report)
[hadoop@master sbin]$ hdfs dfsadmin -reportConfigured Capacity: 8202977280 (7.64 GB)Present Capacity ...
- 「P4996」「洛谷11月月赛」 咕咕咕(数论
题目描述 小 F 是一个能鸽善鹉的同学,他经常把事情拖到最后一天才去做,导致他的某些日子总是非常匆忙. 比如,时间回溯到了 2018 年 11 月 3 日.小 F 望着自己的任务清单: 看 iG 夺冠 ...
- Django 模板 自定义context_processors
Django版本 1.8.4 为什么要自定义context_processors 在做博客的过程中,在浏览排行,评论排行,标签,文章归档,友情链接等内容每一个显示页面都是要显示的.如果在每一个view ...