Raspberry pi RaspberryPi-检查断开针脚的状态

Raspberry pi RaspberryPi-检查断开针脚的状态,raspberry-pi,gpio,Raspberry Pi,Gpio,我想写脚本来检测哪个引脚与哪个引脚连接。 例如,BCM模式I连接GPIO2与GPIO3,GPIO4与GPIO5。我的想法是互相检查是否有连接 for i in range(2,6): for j in range(2,6): check(i,j) 如果所有管脚都已连接,则可以工作,但如果相同的管脚已断开,则可以打印相同的“疯狂为我”输出。我认为所有输入都应该返回0,但正如您看到的一样,它们都处于高状态 输出: 1 2 3 0 2 4 0 2 5 1 3 2 0 3 4

我想写脚本来检测哪个引脚与哪个引脚连接。 例如,BCM模式I连接GPIO2与GPIO3,GPIO4与GPIO5。我的想法是互相检查是否有连接

for i in range(2,6):
    for j in range(2,6):
        check(i,j)
如果所有管脚都已连接,则可以工作,但如果相同的管脚已断开,则可以打印相同的“疯狂为我”输出。我认为所有输入都应该返回0,但正如您看到的一样,它们都处于高状态

输出:

1 2 3
0 2 4
0 2 5
1 3 2
0 3 4
0 3 5
1 4 2
1 4 3
0 4 5
1 5 2
1 5 3
0 5 4
代码:


我认为你的问题与上拉和下拉电阻器有关。它们用于确保数字值的已知级别为1或0

这个问题有很多解决方案-这里是Arduino的一个,但实际上每个数字IC都有这些问题,数据表应该说明如何处理未连接的管脚,以及在让它们悬空的情况下会发生什么

import RPi.GPIO as GPIO
from time import sleep

GPIO.setmode(GPIO.BCM)
for i in range(2, 6):
    for j in range(2, 6):
        if i == j:
            continue
        GPIO.setup([2, 3, 4, 5], GPIO.OUT, initial=GPIO.LOW)
        GPIO.setup(i, GPIO.OUT, initial=GPIO.HIGH)
        GPIO.setup(j, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
        sleep(0.1)
        if GPIO.input(j):
            l.add(tuple(sorted((i, j))))
print(l)