簡體   English   中英

如何解決“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。

rpi gpio 標頭

暫無
暫無

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

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