如何使用Raspberry Pi将引脚3设置为高电平,然后将引脚2设置为高电平?

时间:2013-11-03 03:16:47

标签: python raspberry-pi gpio

我正在开发Raspberry Pi车库门开启器。我到目前为止已经编写了基本代码,但我希望再添加一个,但我不知道如何。对于那些不知道的人,Raspberry Pi具有可以使用Python脚本设置的GPIO引脚。我使用的脚本将GPIO引脚设置为高电平(5伏输出),保持0.5秒,然后保持低电平。输出连接到继电器,继电器然后连接到我的车库门。

我想要做的是使用另一个GPIO引脚触发警报2秒钟,然后将第一个GPIO引脚的状态设置为高电平,从而打开门。这是我到目前为止所拥有的。

#!/usr/bin/python

# Import required Python libraries
import RPi.GPIO as GPIO
import time

# Use BCM GPIO references instead of physical pin numbers
GPIO.setmode(GPIO.BCM)

# init list with pin numbers
pinList = [2]

# loop through pins and set mode and state to 'low'
for i in pinList:
    GPIO.setup(i, GPIO.OUT)
    GPIO.output(i, GPIO.HIGH)

def trigger() :
    for i in pinList:
      GPIO.output(i, GPIO.LOW)
      time.sleep(0.5)
      GPIO.output(i, GPIO.HIGH)
      GPIO.cleanup()

try:
    trigger()
except KeyboardInterrupt:
    print "  Quit"

# Reset GPIO settings
GPIO.cleanup()

任何人都可以帮我弄清楚如何添加另一个GPIO引脚触发2秒,然后触发主继电器打开门吗?

1 个答案:

答案 0 :(得分:0)

我在Raspberry Pi中使用了WiringPi来直接控制GPIO,并用它通过SPI和I2C连接其他设备。

这是python Libraries的link

启动并运行库后,只需使用以下代码的变体:

import wiringpi
import time
wiringpi.pinMode(1,1)       #Set GPIO 1 to Output
wiringpi.pinMode(2,1)       #Set GPIO 1 to Output
wiringpi.digitalWrite(1,1)  #Write HIGH to pin1
time.sleep(2)               #2 sec delay
wiringpi.digitalWrite(2,1)  #Write HIGH to pin2

输出和输入时要小心,因为Raspberry Pi GPIO的运行频率为3.3v而不是5v,如果用它驱动大的东西(GPIO的额定电流为16mA)或者有故障,你最终可能会破坏你的Raspberry Pi连接。