首页 > 解决方案 > 使用 Raspberry Pi 和 Python3 进行继电器控制

问题描述

下面是我用来控制继电器打开电子门的一段代码,该继电器通过树莓派 GPIO 上的引脚 7 控制。闸门只需要一个瞬时电压(通过继电器触点)即可打开。

我的问题是,当引脚 7 变高时,我需要在此代码中添加什么以使继电器仅打开 0.5 秒。这将使继电器返回关闭状态,然后等待下一次 GPIO 引脚 7 变高,门不需要来自 GPIO 的任何命令在一定时间后关闭,它们在单独的门控制的控制下关闭系统。

if name=="gate":
GPIO.setmode(GPIO.BOARD) ## Use board pin numbering
GPIO.setup(int(7), GPIO.OUT)   ## Setup GPIO Pin to OUTPUT
GPIO.output(int(7), state) ## State is true/false

非常感谢

彼得

标签: python-3.x

解决方案


在这个例子中,我将使用gpiozero库而不是RPi.GPIO因为我喜欢这个库处理事件的方式。

from gpiozero import Button, OutputDevice
from time import sleep
from signal import pause

buttonPin = 4
relayPin = 7

button = Button(buttonPin)
button.when_pressed = ButtonPressedCallback
relay = OutputDevice(relayPin)

def ButtonPressedCallback():
    relay.on()
    sleep(0.5)
    relay.off()

pause()

我希望,我很好地理解了你的问题。


推荐阅读