2个Python脚本使用相同的GPIO引脚RPI

时间:2016-01-20 13:25:33

标签: python raspberry-pi gpio

是否可以编写2个脚本

1用于设置GPIO引脚

和1用于读出gpio引脚的状态。

我现在已经在python中编写了这两个脚本。但是当我启动它们时,只有1个可以工作

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(18,GPIO.IN)
print GPIO.input(18)

另一个人听一个按钮,如果按下按钮,则针脚18设置为高,如果再次按下它,则针脚设置为低

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

GPIO.setmode(GPIO.BCM)
pushbutton = 2
relay = 18

GPIO.setup(pushbutton, GPIO.IN)
GPIO.setup(relay, GPIO.OUT)

def main():
    ingedrukt = GPIO.input(pushbutton)
    try:
        while (True):
            if(ingedrukt == False):
                if(GPIO.input(pushbutton) == False):
                    sleep(0.5)
                    if(GPIO.input(pushbutton) ==False):
                        GPIO.output(relay, GPIO.HIGH)
                        ingedrukt = True
                        print "Pushed"
            else:
                if(GPIO.input(pushbutton) == True):
                    GPIO.output(relay, GPIO.LOW)
                    ingedrukt = False
                    print "Not pushed"
    except KeyboardInterrupt:
        print "Quit"
        GPIO.cleanup()
main()

如果可能的话,这是否可能,我做错了什么?

3 个答案:

答案 0 :(得分:2)

您不需要将继电器设置为GPIO输入来读取状态。您只需要打印GPIO.input(18)命令。所以你的第一个脚本应该是:

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
print GPIO.input(18)

我会添加一行

GPIO.setwarnings(False)

答案 1 :(得分:0)

您是否尝试同时运行两个脚本?为什么不在您的监听脚本中使用print语句?此外,您的pin脚本的打印状态需要一个while循环

答案 2 :(得分:0)

你的意思是只有一部作品?也许这有帮助吗?

  

GPIO上可能有多个脚本/电路   你的Raspberry Pi。因此,如果RPi.GPIO检测到a   引脚已配置为默认(输入)以外的其他内容,   尝试配置脚本时会收到警告。要禁用这些   警告:       GPIO.setwarnings(False)

来自:http://sourceforge.net/p/raspberry-gpio-python/wiki/BasicUsage/