使用按钮开灯关灯

  • 接线图非常简单,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…

30个Python物联网小实验3:使用按钮开灯关灯的更多相关文章

  1. 30个Python物联网小实验5:光线感应灯

    30个Python物联网小实验5:光线感应灯 光线传感器 光线变化执行函数 光线状态执行函数 30个Python物联网小实验5:光线感应灯 光线传感器 可以检测周围环境的亮度: 方向性较好,感知特定方 ...

  2. python :开关,开灯关灯

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  3. 30个物联网传感器小实验:三行代码点亮LED灯

    30个物联网传感器小实验:三行代码点亮LED灯 三行代码点亮LED灯 LED灯闪烁 LED灯调亮度 LED淡入淡出 不写一行代码点亮LED灯 全彩RGB灯 面包板 30个物联网传感器小实验:三行代码点 ...

  4. 30个有关Python的小技巧,给程序员的 30 个基本 Python 贴士与技巧

    30个有关Python的小技巧 2013/07/04 · Python, 开发 · 4 评论 · Python 分享到: 66 本文由 伯乐在线 - Kevin Sun 翻译.未经许可,禁止转载!英文 ...

  5. 20184302 2019-2020-2 《Python程序设计》实验四报告

    20184302 2019-2020-2 <Python程序设计>实验四报告 课程:<Python程序设计> 班级: 1843 姓名: 李新锐 学号:184302 实验教师:王 ...

  6. 20192204 2019-2020-2 《Python程序设计》实验四报告

    20192204 2019-2020-2 <Python程序设计>实验四报告 课程:<Python程序设计> 班级: 1922 姓名: 李龙威 学号:20192204 实验教师 ...

  7. 12岁的少年教你用Python做小游戏

    首页 资讯 文章 频道 资源 小组 相亲 登录 注册       首页 最新文章 经典回顾 开发 设计 IT技术 职场 业界 极客 创业 访谈 在国外 - 导航条 - 首页 最新文章 经典回顾 开发 ...

  8. MongoDB 主从复制小实验

    MongoDB 主从复制小实验 操作环境描述:WIN8  64位操作系统,内装虚拟机为CentOS 5.5 32位系统. 操作描述:跟其他关系型数据库类似,在主库进行数据操作,将数据同步到从节点,从节 ...

  9. 适合新手的Python爬虫小程序

    介绍:此程序是使用python做的一个爬虫小程序  爬取了python百度百科中的部分内容,因为这个demo是根据网站中的静态结构爬取的,所以如果百度百科词条的html结构发生变化 需要修改部分内容. ...

随机推荐

  1. Docker中部署puppeteer导出pdf

    最近在做puppeteer容器化的过程中发现问题. 在容器中npm install puppeteer仍然会报错,不能launch 随后错误提示中也给出了官方的文档,https://github.co ...

  2. Android之Handler使用方法总结

    方法一:(java习惯,在android平台开发时这样是不行的,由于它违背了单线程模型) 刚刚開始接触android线程编程的时候,习惯好像java一样,试图用以下的代码解决这个问题    new T ...

  3. luoguP3066 [USACO12DEC]逃跑的BarnRunning

    luoguP3066 [USACO12DEC]逃跑的BarnRunning 题目大意 给定一棵n个节点的树和参数L,查询每个节点子树中到达该节点距离<=L的数量(包括该节点) 偏模板的主席树 P ...

  4. Linux内核同步【转】

    本文转载自:http://blog.csdn.net/a775992553/article/details/8797710 Linux设备驱动中必须解决的一个问题是多个进程对共享资源的并发访问,并发访 ...

  5. Linux下新建oracle用户

    su - oraclesqlplus / as sysdba the procedure of dropping user are as follow: select sid,serial# from ...

  6. [原创]java在线打开PDF文档

    步骤一:(涉及到的工具) 访问:http://www.zhuozhengsoft.com/dowm/,从官网下载PageOffice for Java. 步骤二:(配置工程) 1. 解压PageOff ...

  7. wordpress汇总(持续更新)

    在wordpress上新建编辑了几个页面,总是不能正常发布预览.经调查是由于固定链接的设置有问题导致的.打开左侧栏目“设置”中的固定链接项,可以看到目前所选的是“自定义结构”型.将其更改为“朴素”型后 ...

  8. unity3d: how to display the obj behind the wall

    透墙显示,遮挡显示,使用ztest Tags { "Queue"="Overlay+1" "RenderType"="Transp ...

  9. leetcode 66. Plus One(高精度加法)

    Given a non-negative number represented as an array of digits, plus one to the number. The digits ar ...

  10. iOS :undefined symbols for architecture x86_64

    转自:http://www.th7.cn/Program/IOS/201408/268371.shtml 问题描述:为了适配iPhone 5s的64位处理器,在编译选项中加入了arm64架构.但是发现 ...