使用按钮开灯关灯

  • 接线图非常简单,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. Golang 环境变量及工作区概念

    GOROOT go的安装路径 GOPATH 可以有多个目录,每个目录就是一个工作区,放置源码文件,以及安装后的归档文件和可执行文件: 第一个工作区比较重要,go get会自动从一些主流公用代码仓库下载 ...

  2. 我的Android进阶之旅------>Android中可替换string的使用,getString(int resId, Object... formatArgs)

    官方文档如下描述: 地址:http://developer.android.com/reference/android/content/Context.html#getString%28int,%20 ...

  3. linux卸载软件

    rpm -q -a 查询当前系统安装的所有软件包 rpm -e 软件包名 参数e的作用是使rpm进入卸载模式,对名为某某某的软件报名进行卸载 rpm -e 软件包名 -nodeps 由于系统中各个软件 ...

  4. LightOJ - 1274 Beating the Dataset —— 期望

    题目链接:https://vjudge.net/problem/LightOJ-1274 1274 - Beating the Dataset    PDF (English) Statistics ...

  5. ActiveMQ持久化机制

    用户注册成功后发短信提醒 同步http 异步mq JMS中两种通讯模式: 发布订阅   一对多  topic   去过消费者集群的话 都会消费 消息队列   点对点 queue  去过消费者集群的话 ...

  6. Springboot2.0入门介绍

    Springboot目前已经得到了很广泛的应用,why这么牛逼? Springboot让你更容易上手,简单快捷的构建Spring的应用 Spring Boot让我们的Spring应用变的更轻量化.比如 ...

  7. IP地址-计算机网络

    如需转载请联系:fengxw6@mail2.sysu.edu.cn 未经许可,禁止转载. ---Sun Yat-sen University 冯兴伟 1.  MAC地址和IP地址都是全局的(全球分配) ...

  8. IDEA编译less插件LESS CSS Compiler的安装

    1.IDEA插件地址:LESS CSS Compiler 百度云盘下载地址 2.安装Node.js,下载 3.打开idea→settings→plugins 安装:“nodejs”插件,并按以下步骤进 ...

  9. leetcode 307. Range Sum Query - Mutable(树状数组)

    Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive ...

  10. 1111 Online Map (30)(30 分)

    Input our current position and a destination, an online map can recommend several paths. Now your jo ...