web-dev-qa-db-ja.com

ValueError:送信されたチャネルはRaspberry Piでは無効です-Pythonを使用してGPIOピン2(BOARD)を制御するとエラーが発生します

したがって、ピン6(Ground)とピン2に接続された小さな小さなファンがあります。必要に応じて手動でファンを起動および停止しようとしていますが、試行するとこのエラーが発生します。

ValueError:送信されたチャネルはRaspberryPiでは無効です

これが私がrootとして実行している私のコードです。他のピンでは機能しているようですが、ピン2では機能していません

import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BOARD)

GPIO.setup(2, GPIO.OUT, pull_up_down=GPIO.PUD_UP)

このピンにアクセスする方法がわかりません。私が間違っていることはありますか?

7
Georgi Angelov

それは愚かなことかもしれません、私はまったく同じように見えました。 GPIOには2つのモードがあるようです。 GPIO.setmode(GPIO.BOARD)をに変更

GPIO.setmode(GPIO.BCM) 

Raspbianのクリーンインストールでうまくいきました

19
Jesus Cepeda

できません。 Raspberry Pi拡張ヘッダーのピン2は、USB電源に直接接続されています。CPUによって制御されていません。

ファンをGPIOピンに直接接続しようとしないでください。それらは正しい電圧を出力しないだけでなく、ファンを動かすのに十分な電流をソース/シンクすることもできません。これを行おうとすると、ピンドライバーが破壊される可能性が高く、BCM2835の他の部分にも損傷を与える可能性があります。

5Vファンのオンとオフを切り替える必要がある場合は、ファンを制御するためのサポートハードウェア(FETなど)が必要になります。

1
duskwuff

あなたの間違いは、OUTで定義されたピンにpull_up_downを与えたことだと思います

#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)
1
Hernán Díaz

GPIO.BOARDモードでは、ピン2は5Vであり、セットアップできません。

それをGPIO.BCMモードに変換している間、それは実際にはGPIO2です。

0
Shalin Patel