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结构发生变化 需要修改部分内容. ...
随机推荐
- LigerUI java SSH小例子
1.新建web project 2.ssh框架 加入到项目中去(这里不介绍,网上搜索) 3.struts2配置 http://www.cnblogs.com/istianyu/archive/2013 ...
- Tomcat学习笔记【3】--- Tomcat目录结构
本文主要讲Tomcat包的目录结构. 1 bin目录 这个目录只要是存放了一些bat文件或者sh文件.比如说我们需要启动tomcat的bat文件就在这个目录下. 2 conf 这个目录中存放的都是一些 ...
- Why Use C++/CLI?
来源:http://www.asawicki.info/Download/Productions/Publications/CPP_CLI_tutorial.pdf Why Use C++/CLI? ...
- 我的Java开发学习之旅------>Java经典排序算法之快速排序
一.算法思想 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序.它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod).(1) 分治法的 ...
- 利用wrapper注冊的 java服务起动超时的解决方法
使用Java Service Wrapper能够把java程序注冊为一个系统服务,可是在启动服务的某些情况下会抛出例如以下错误: ERROR | wrapper | 2014/06/11 08:4 ...
- mysql忘记root密码或报错:ERROR 1044 (42000): Access denied for user ”@’localhost’ to database ‘xx‘
有的时候忘记了root密码或其他用户的密码,登录的时候报错:ERROR 1044 (42000): Access denied for user ”@’localhost’ to database ' ...
- Android Weekly Notes Issue #316
July 1st, 2018 Android Weekly Issue #316 本期内容包含教你使用Kotlin通过Annotation Processor生成代码文件, JetPack中的Andr ...
- python优缺点小结
优点: 1.语言简洁优美 例如去除了大括号,写法简单,写法更接近于英语,其他语言几十上百行的代码,十来行就能解决,而且还好看 2.跨平台,window.linux.mac通用 3.排行高,社区完善 ...
- Matlab图像处理(03)-基本概念
概念定义 动态范围:灰度跨跃的值域称为动态范围.上限取决于饱和度,下限取决于噪声. 对比度:一幅图像中最高和最低灰度级间的灰度差. 空间分辨率:图像中可辨别的最小细节的度量.常用度量每单位距离线对数和 ...
- debian下编译openwrt固件
参考文章:Ubuntu下编译OpenWRT固件 我买的路由器是RG100A-AA,采用了bcm63xx系列的芯片. 下载openwrt源码: svn co svn://svn.openwrt.org/ ...