[英]Raspberry Pi GPIO error "valueerror the channel sent is invalid on a raspberry pi"
[英]How to solve "ValueError: The channel sent is invalid on a Raspberry Pi" error?
我有一個 python 代碼可以從光傳感器獲取讀數。 我也升級了樹莓派。 但是當我嘗試執行代碼時,它給了我一個錯誤,如下所示
這是我的python代碼
#!/usr/local/bin/python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
pin_to_circuit = 17
def rc_time (pin_to_circuit):
count = 0
GPIO.setup(pin_to_circuit, GPIO.OUT)
GPIO.output(pin_to_circuit, GPIO.LOW)
time.sleep(0.1)
GPIO.setup(pin_to_circuit, GPIO.IN)
while (GPIO.input(pin_to_circuit) == GPIO.LOW):
count += 1
return count
try:
while True:
print rc_time(pin_to_circuit)
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup()
我嘗試了很多在互聯網上找到的解決方案,但都沒有奏效。 請幫忙。
Raspberry Pi 有兩種方法來尋址 GPIO 引腳:GPIO.BCM 和 GPIO.BOARD。 雖然 BCM 是作為 rpi 的大腦的 Broadcom 芯片如何看到 pinheader,但 BOARD 對我們人類來說相對容易閱讀和尋址。
您已使用 GPIO.BOARD,並嘗試尋址引腳 17。下圖將清楚地表明引腳 17 是根據 GPIO.BCM 的 GPIO,但根據 GPIO.BOARD,它是引腳 11。
因此,基本上,您正在嘗試將引腳 17 配置為電源 3V3,這是用戶不可配置的。
您需要做的就是將GPIO.setmode(GPIO.BOARD)
更改為GPIO.setmode(GPIO.BCM)
或將 pin_to_circuit 更改為引腳 11。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.