簡體   English   中英

ValueError:發送的通道在Raspberry Pi上無效-使用Python控制GPIO引腳2(BOARD)會導致錯誤

[英]ValueError: The channel sent is invalid on a Raspberry Pi - Controlling GPIO Pin 2 (BOARD) using Python causes Error

所以我有一個很小的風扇連接到引腳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)

我不確定如何訪問此引腳。 我做錯什么了嗎?

這可能是愚蠢的,我看上去完全一樣。 GPIO中似乎有兩種模式。 將GPIO.setmode(GPIO.BOARD)更改

GPIO.setmode(GPIO.BCM) 

它為我安裝了Raspbian的全新安裝

你不能 Raspberry Pi擴展接頭連接器的引腳2直接連接到USB電源-它不受CPU的控制。

不要嘗試將風扇直接連接到GPIO引腳。 它們不僅不能輸出正確的電壓,而且也不能提供/吸收足夠的電流來使風扇運行。 這樣做很可能會損壞引腳驅動器,並可能也會損壞BCM2835的其他部分。

如果需要打開和關閉5V風扇,則需要一些支持硬件來控制它(例如FET)。

我認為您的錯誤是您將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)

在GPIO.BOARD模式下,引腳2為5V,無法設置。

將其轉換為GPIO.BCM模式時,實際上是GPIO2。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM