使用按钮开灯关灯
- 接线图非常简单,LED接
GPIO17号口,按钮接GPIO2号口,负极接GND地线。
- 代码也非常简单:
from gpiozero import LED, Button from signal import pause led = LED(17) button = Button(2) button.when_pressed = led.on button.when_released = led.off pause()
- 执行代码,按下按钮,发光二极管就会亮,松开就会灭。
使用按钮开灯关灯(二)
- 还有一种
source的写法,直接把按钮的状态提供给发光二极管,达到同样的效果。
from gpiozero import LED, Button from signal import pause led = LED(17) button = Button(2) led.source = button pause()
按钮按下和松开
- 先上效果
GPIO2
from gpiozero import Button
button = Button(2)
while True:
if button.is_pressed:
print("Button is pressed")
else:
print("Button is not pressed")
等待按钮按下才执行
- 直接上代码吧:
from gpiozero import Button
button = Button(2)
button.wait_for_press()
print("Button was pressed")
- 程序执行到
button.wait_for_press()这一句之后,会先停下,等待按钮按下之后,才会继续执行。
按下执行特定函数
- 直接上代码:
from gpiozero import Button
from signal import pause
def say_hello():
print("Hello!")
button = Button(2)
button.when_pressed = say_hello
pause()
- 按下按钮,执行
say_hello()这个函数。
松开执行特定函数
- 上效果图:
- 上代码:
from gpiozero import Button
from signal import pause
def say_hello():
print("Hello!")
def say_goodbye():
print("Goodbye!")
button = Button(2)
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 shutdown():
check_call(['sudo', 'poweroff'])
shutdown_btn = Button(2, hold_time=4)
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(17)
player_1 = Button(2)
player_2 = Button(3)
time = random.uniform(2, 5)
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和沟通: https://github.com/asukafighting/RaspberryPiHacker
以上所述就是小编给大家介绍的《30个Python物联网小实验3:使用按钮开灯关灯》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Practical Algorithms for Programmers
Andrew Binstock、John Rex / Addison-Wesley Professional / 1995-06-29 / USD 39.99
Most algorithm books today are either academic textbooks or rehashes of the same tired set of algorithms. Practical Algorithms for Programmers is the first book to give complete code implementations o......一起来看看 《Practical Algorithms for Programmers》 这本书的介绍吧!