出力として設定されたGPIOピンの切り替え


9

次のコマンドを使用して、Pythonで出力に設定されたGPIOピンの状態を切り替えることができることをここで読みました。

GPIO.output(LED, not GPIO.input(LED))

どこLEDピン値です。次のコードを使用してLEDをオンにできます。

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
LED = 17
GPIO.setup(LED,GPIO.OUT)
GPIO.output(LED,True)

しかし、私がしようとするGPIO.output(LED, not GPIO.input(LED))と、次のエラーがスローされます。

RPi.GPIO.WrongDirectionException:GPIOチャネルがセットアップされていないか、間違った方向にセットアップされています

上記とは異なる方法でGPIOチャネルを設定することになっているのですか、それとも私が参照したサイトは間違った情報を投稿していますか?

回答:


13

出力を読み取ることができません。ピンの状態を変数に格納するだけです。

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
LED = 17
ledState = False
GPIO.setup(LED,GPIO.OUT)

ledState = not ledState
GPIO.output(LED, ledState)

8

他の場所で述べられていますが、同じGPIOピンを入力するだけで出力を読み取り、前に設定した値を返すことができます。

GPIO.setup(LED_red, GPIO.OUT) #set Pin LED_red as aoutput

GPIO.output(LED_red, GPIO.HIGH) #set Pin LED_red = HIGH (ON)

GPIO.input(LED_red) returns 1 

実際、出力ポートを読み取ることができます。ただし、別のプロセスからそれを行ってからGPIO.cleanup()を呼び出すと、ポートの状態がゼロに変わることに注意してください。
Diomidis Spinellis
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.