ValueError:发送的通道在 Raspberry Pi 上无效 - 使用 Python 控制 GPIO Pin 2 (BOARD) 会导致错误
Posted
技术标签:
【中文标题】ValueError:发送的通道在 Raspberry Pi 上无效 - 使用 Python 控制 GPIO Pin 2 (BOARD) 会导致错误【英文标题】:ValueError: The channel sent is invalid on a Raspberry Pi - Controlling GPIO Pin 2 (BOARD) using Python causes Error 【发布时间】:2014-08-05 06:03:09 【问题描述】:所以我有一个小风扇连接到引脚 6(接地)和引脚 2。我正在尝试在需要时手动启动和停止风扇,但尝试时出现此错误:
ValueError:发送的通道在树莓派上无效
这是我以 root 身份执行的代码。它似乎在其他引脚上工作,但不是 Pin 2
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(2, GPIO.OUT, pull_up_down=GPIO.PUD_UP)
我不确定如何访问此图钉。是不是我做错了什么?
【问题讨论】:
【参考方案1】:这可能是一些愚蠢的事情,我看起来完全一样。 GPIO中似乎有两种模式。 将 GPIO.setmode(GPIO.BOARD) 更改为
GPIO.setmode(GPIO.BCM)
它在 Raspbian 的全新安装上对我有用
【讨论】:
这也对我有用。但请删除“强调文字” 已删除。迟到总比没有好 这是我的错误。我觉得自己很笨! 解决问题的原因:raspberrypi.stackexchange.com/questions/12966/… 隔了好久才看到最后一条评论,解决了我的疑惑。谢谢【参考方案2】:你不能。 Raspberry Pi 扩展接头的引脚 2 直接连接到 USB 电源——它不受 CPU 控制。
不要尝试将风扇直接连接到 GPIO 引脚;它们不仅不能输出正确的电压,而且它们也不能提供/吸收足够的电流来运行风扇。尝试这样做很可能会损坏引脚驱动器,并且还可能损坏 BCM2835 的其他部分。
如果您需要打开和关闭 5V 风扇,则需要一些支持硬件来控制它(例如 FET)。
【讨论】:
【参考方案3】:我认为您的错误是您将 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)
【讨论】:
【参考方案4】:在 GPIO.BOARD 模式下,引脚 2 为 5V,无法设置。
将其转换为 GPIO.BCM 模式时,它实际上是 GPIO2。
【讨论】:
以上是关于ValueError:发送的通道在 Raspberry Pi 上无效 - 使用 Python 控制 GPIO Pin 2 (BOARD) 会导致错误的主要内容,如果未能解决你的问题,请参考以下文章
Python:ValueError:类的数量必须大于一;得到 1
自定义 DataGenerator tensorflow 错误“ValueError:无法找到可以处理输入的数据适配器”