【问题标题】:Raspberry Pi B+ GPIO input value is changing without connecting树莓派 B+ GPIO 输入值在没有连接的情况下发生变化
【发布时间】:2016-01-06 19:21:07
【问题描述】:

我是 Raspberry Pi 编程新手。使用 Raspberry Pi Model B+ 我试图通过GPIO 引脚读取输入值。但它最终会导致 GPIO 引脚值交替变为 HIGH and LOW(没有任何统一模式)。

为什么会这样?应该是这样吗?我期待直到用setup GPIO.INGPIO 引脚供电,它的值将是0,并且只有当电源连接时它才会是1

这是我编写的用于检查 PIN 状态的示例 Python 代码:

import RPi.GPIO as GPIO
import time

PINS = [11,13,15,16,18,22,36,37]
GPIO.setmode(GPIO.BOARD)

for pin in PINS:
    GPIO.setup(pin,GPIO.IN)

while True:
    try:
        for pin in PINS:
            print  pin, “ input value is  : “, GPIO.input(pin)
        time.sleep(2)
        print “checking pin status "
    except (KeyboardInterrupt, SystemExt)
        GPIO.cleanup()

输出如下:

checking pin status 
11 input value is  : 1
13 input value is  : 1
15 input value is  : 1 
16 input value is  : 1
18 input value is  : 1
22 input value is  : 1
36 input value is  : 1
37 input value is  : 1
checking pin status 
11 input value is  : 0
13 input value is  : 0
15 input value is  : 0 
16 input value is  : 0
18 input value is  : 0
22 input value is  : 0
36 input value is  : 0
37 input value is  : 1
checking pin status 
11 input value is  : 1
13 input value is  : 1
15 input value is  : 1 
16 input value is  : 1
18 input value is  : 1
22 input value is  : 0
36 input value is  : 0
37 input value is  : 0
checking pin status 
11 input value is  : 1
13 input value is  : 1
15 input value is  : 1 
16 input value is  : 1
18 input value is  : 1
22 input value is  : 1
36 input value is  : 1
37 input value is  : 1

那么,如何通过这些 PIN 读取输入信号?我的树莓派主板有问题吗?

【问题讨论】:

    标签: python python-2.7 input raspberry-pi raspberry-pi2


    【解决方案1】:

    这与软件无关,是硬件。

    为什么在未连接时你期望输入是LOW,为什么不是HIGH。 如果没有任何东西拉动值HIGHLOW,噪声(在空气中?)可以将输入移动到任何电压,因此输入将不会被定义。

    现在,如果你为输入配置了一个上拉/下拉电阻,那么即使没有连接它,它也会有一个稳定的值。

    所以,关于你的问题:

    那么,如何通过这些 PIN 读取输入信号?

    要读取输入信号,您首先必须有一个输入信号,因此将一个输入引脚连接到您的输入引脚。

    我的树莓派主板有问题吗?

    这还不足以知道有没有。

    【讨论】:

    • 谢谢。 configured the input with a pull-up/pull-down resistor.
    【解决方案2】:

    这很正常,你没有将 GPIO 引脚连接到任何东西,所以它们是“浮动的”,这意味着它会随机变化。

    在 GPIO 上接一个下拉电阻,它就会被稳定下来。

    【讨论】:

      猜你喜欢
      • 2012-08-21
      • 1970-01-01
      • 2021-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-28
      • 1970-01-01
      相关资源
      最近更新 更多