使用按钮开灯关灯

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

最新文章

  1. Bzoj2850 巧克力王国
  2. PHP 输入流 php://input
  3. paramiko模块-2
  4. c++接口实现与分离(转载)
  5. JS---如何避免用户在请求时“猛击”
  6. GitHub开源项目总结
  7. iOS阶段学习第15天笔记(NSDictionary与NSMutableDictionary 字典)
  8. win10安装软件被阻止后
  9. WebApi简单使用
  10. work4
  11. [置顶] iptables 性能 测试
  12. html的特质语义:微格式及其他(重点介绍其中两种)
  13. php5.3 appache phpstudy win7win8win10下 运行速度慢
  14. jsp Ajax请求(返回json数据类型)
  15. web前端学习就这9个阶段,你属于哪个阶段?
  16. python学习资料整理
  17. Linux Platform Device and Driver
  18. 第五章 JS典型特效
  19. IdentityServer4-Resource定义-翻译
  20. Fixed Partition Memory Management UVALive - 2238 建图很巧妙 km算法左右顶点个数不等模板以及需要注意的问题 求最小权匹配

热门文章

  1. 在非OnPaint里应该使用ClientDC来画图
  2. 一文读懂实用拜占庭容错(PBFT)算法
  3. ABAP div / mod的用法
  4. 多线程(三) iOS中的锁
  5. HTML5/CSS3鼠标滑过图片滤镜动画效果
  6. uboot移植添加nfs支持
  7. Win7、Win8、Win10始终以管理员身份运行程序。
  8. ES BM25 TF-IDF相似度算法设置——
  9. Java_泛型_01_T与?
  10. leetcode 290 Word Pattern(map的应用)