反转GPIO输入

时间:2019-01-30 11:12:49

标签: python raspberry-pi gpio

这是我用来启动其他代码的代码,其中我定义了要启动的Laser。 但是在此代码中,我希望有一个按钮,如果我按它可以启动其他脚本。 但是此代码的作用是连续激活我的代码。 我可以更改什么?

#!/usr/bin/env python

import RPi.GPIO as GPIO
import time
import os
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
#GPIO.setmode(GPIO.BOARD)
GPIO.setup(15,GPIO.IN) #GPIO17

#input = GPIO.input(27)
#print ("input",input)

while True :
    #inputValue = GPIO.input(11)
    #print ("input01",inputValue)
    #time.sleep(1)
    erg= GPIO.wait_for_edge(15,GPIO.RISING, bouncetime=20)
    print ("Input",2)
    #if (GPIO.input(11) == GPIO.HIGH):
    #if erg==15:
    print ("Input",1)
    time.sleep(3)
    #inputValue = 1
    os.system("python /home/pi/gpio.py")

1 个答案:

答案 0 :(得分:0)

当您运行os.system('python /home/pi/gpio.py')时,您将启动新流程,您的主流程将重新开始其while循环工作。

据我了解,您的想法是等到按下按钮后再进入其他状态,等待新的事情发生。 您无需启动新流程,只需导入模块(doc)。单击按钮时,中断循环并从导入的模块运行代码。

另外,您可能会发现用wait_for_edge方法替换event_detected很有意思。进一步了解here