【问题标题】:How can I Set pin 3 to High, then pin 2, with a Raspberry Pi?如何使用 Raspberry Pi 将引脚 3 设置为高电平,然后将引脚 2 设置为高电平?
【发布时间】:2013-11-13 23:54:03
【问题描述】:

我正在开发 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秒,然后触发主继电器开门?

【问题讨论】:

  • 您想同时将引脚 2 和 3 设置为低电平,然后在 2 秒后将引脚 2 设置为高电平,以便开门?
  • 请指定设置引脚状态的顺序以实现您的最终目标。

标签: python raspberry-pi gpio


【解决方案1】:

我在 Raspberry Pi 中经常使用WiringPi 来直接控制 GPIO 以及通过 SPI 和 I2C 与其他设备连接。

这是 python 库的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连接。

【讨论】:

    猜你喜欢
    • 2017-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多