创建暂停/唤醒按钮?


10

我已使用引脚5和6装配了“暂停唤醒”按钮。这两个引脚在连接时将重置电源并从暂停状态重新启动。如果可以的话,我想使用相同的按钮来运行一个命令,当按下该命令时,它将使用关闭计算机sudo halt。这可能吗?对于sudo halt按钮,我需要从GPIO 1连接到按钮,然后拆分为GPIO 6(接地)和通用GPIO引脚。我不知道是否可以/安全地将GPIO 5连接到这两者。

Answers:


8

无需添加其他GPIO引脚。您可以为停止按钮使用相同的引脚。

这是一些将轮询引脚5的python代码。当按下按钮时,引脚5被拉到地面(引脚6),该代码将显示为LOW。在这种情况下将运行halt命令

#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import subprocess

GPIO.setmode(GPIO.BOARD)
# set pin 5 to input, and enable the internal pull-up resistor
GPIO.setup(5, GPIO.IN, pull_up_down=GPIO.PUD_UP)

oldButtonState1 = True
while True:
    buttonState1 = GPIO.input(5)

    if buttonState1 != oldButtonState1 and buttonState1 == False :
        # print "Button 1 pressed"
        subprocess.call("halt", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

    oldButtonState1 = buttonState1

    time.sleep(.1)

PS。我不知道从暂停功能唤醒。谢谢你,我现在知道了!那谢谢啦。


1
辉煌!我没有意识到仅用5和6就可以完成所有操作。谢谢!:)
Ryan McClure 2014年

因此,我们俩今天都学到了一些东西(-:
Gerben 2014年

给自己的更多笔记。您甚至可以修改代码,以使印刷机重新启动,并按住以关机(反之亦然)。
Gerben 2014年

您的脚本以哪种方式连续运行(即守护进程)?您是否注意到观看电影时性能有所下降?
athanassis 2014年

1
确实,这是很长的时间,但是当解码完整的高清电影时,CPU几秒钟达到100%的时间不是。我会尝试一下,测试永远不会受伤。感谢您的反馈!
athanassis 2014年


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.