所以我有一个小小的风扇连接到引脚6(接地)和引脚2.我试图在需要时手动启动和停止风扇,但我在尝试时收到此错误:
ValueError:在Raspberry Pi上发送的频道无效
这是我以root身份执行的代码。它似乎在其他引脚上工作,但不是引脚2
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(2, GPIO.OUT, pull_up_down=GPIO.PUD_UP)
我不确定如何访问此引脚。有什么我做错了吗?
答案 0 :(得分:18)
这可能是一些愚蠢的事情,我看起来确实相同。 GPIO似乎有两种模式。 将GPIO.setmode(GPIO.BOARD)更改为
GPIO.setmode(GPIO.BCM)
在Raspbian的干净安装中它对我有用
答案 1 :(得分:1)
你不能。 Raspberry Pi扩展接头的引脚2直接连接到USB电源 - 它不受CPU控制。
请勿尝试将风扇直接连接到GPIO引脚;它们不仅没有输出正确的电压,而且它们也不能提供/吸收足够的电流来运行风扇。试图这样做很可能会破坏引脚驱动器,也可能会损坏BCM2835的其他部分。
如果您需要打开和关闭5V风扇,您需要一些支持硬件来控制它(例如,FET)。
答案 2 :(得分: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)
答案 3 :(得分:0)
在GPIO.BOARD模式下,引脚2为5V,无法设置。
在将其转换为GPIO.BCM模式时,实际上是GPIO2。