Raspberry pi关机按钮延迟

时间:2018-01-09 19:54:10

标签: python raspberry-pi

我有一个覆盆子Pi,我使用这个脚本在GPIO上添加了一个关闭按钮:

import RPi.GPIO as GPIO
import os

gpio_pin_number=21
GPIO.setmode(GPIO.BCM)
GPIO.setup(gpio_pin_number, GPIO.IN, pull_up_down=GPIO.PUD_UP)

try:
    GPIO.wait_for_edge(gpio_pin_number, GPIO.FALLING)
    os.system("sudo shutdown -h now")
except:
    pass

GPIO.cleanup()

它就像一个魅力,但我不止一次按下按钮,所以为了避免这个问题,我想修改脚本,所以它要求你按住按钮N秒而不是按下它。 / p>

所以如果有人能指出我正确的方向(我在python中不是很好),我会很高兴。

1 个答案:

答案 0 :(得分:2)

睡眠N秒,使用GPIO.input读取GPIO值,如果它仍为0,则运行shutdown命令。 - larsks 1分钟前编辑

import RPi.GPIO as GPIO
import os
import time

gpio_pin_number=21
GPIO.setmode(GPIO.BCM)
GPIO.setup(gpio_pin_number, GPIO.IN, pull_up_down=GPIO.PUD_UP)

while True:
    GPIO.wait_for_edge(gpio_pin_number, GPIO.FALLING)
    time.sleep(2)
    if GPIO.input(gpio_pin_number) == 0:
        break

os.system("sudo shutdown -h now")

以上内容需要您按住按钮两秒钟。