ValueError:在Raspberry Pi上发送的通道无效 - 使用Python控制GPIO引脚2(BOARD)时发生错误
我有一个小风扇,连接在引脚6(接地)和引脚2上。我想手动启动和停止这个风扇,但在尝试的时候遇到了这个错误:
ValueError: 发送的通道在树莓派上无效
这是我以管理员身份执行的代码。它在其他引脚上似乎可以正常工作,但在引脚2上不行。
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(2, GPIO.OUT, pull_up_down=GPIO.PUD_UP)
我不太确定怎么访问这个引脚。我是不是做错了什么?
4 个回答
0
在GPIO.BOARD模式下,针脚2是5伏电压,这个是不能设置的。
而当你把它转换成GPIO.BCM模式时,它实际上是GPIO2。
0
你不能这么做。树莓派的扩展接口的第2脚直接连接到USB电源——它并不是由CPU控制的。
不要试着把风扇直接连接到GPIO引脚;不仅因为它们输出的电压不对,而且它们也无法提供足够的电流来驱动风扇。这样做很可能会损坏引脚的驱动器,甚至可能会对BCM2835的其他部分造成损害。
如果你想控制一个5V的风扇开关,你需要一些额外的硬件来帮助控制它(比如一个FET)。
1
我觉得你的错误在于,你把 pull_up_down 设置在了一个定义为输出(OUT)的引脚上。
#this is only for input pins
GPIO.setup(n, RPIO.OUT, initial=RPIO.LOW, pull_up_down=GPIO.PUD_UP)
#CORRECT ("initial" is optional)
GPIO.setup(n, RPIO.OUT, initial=RPIO.LOW)
32
这可能是个简单的问题,我也遇到过类似的情况。看起来GPIO有两种模式。你可以把 GPIO.setmode(GPIO.BOARD) 改成
GPIO.setmode(GPIO.BCM)
在我干净安装的Raspbian系统上,这样做是有效的。