繁体   English   中英

Raspberry Pi B + GPIO输入值无需连接即可更改

[英]Raspberry Pi B+ GPIO input value is changing without connecting

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

为什么会那样? 这应该是那样的吗? 我期待着直到通过setup GPIO.INGPIO引脚setup GPIO.IN它的值将为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读取输入信号? 我的Raspberry Pi Board上有什么问题吗?

这与软件无关,它是硬件。

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

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

所以,关于你的问题:

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

要读取输入信号,首先必须输入一个输入信号,然后将一个连接到输入引脚。

我的Raspberry Pi Board上有什么问题吗?

这还不足以知道它是否有。

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

将下拉电阻连接到GPIO,它将稳定下来。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM