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

2 Python scripts use the same GPIO pin RPI

是否可以写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()

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

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

只有一个作品是什么意思?也许这有帮助?

It is possible that you have more than one script/circuit on the GPIO of your Raspberry Pi. As a result of this, if RPi.GPIO detects that a pin has been configured to something other than the default (input), you get a warning when you try to configure a script. To disable these warnings: GPIO.setwarnings(False)

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

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

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

我要添加行

GPIO.setwarnings(False)