출력으로 설정된 GPIO 핀 토글


9

본인은 여기에 나는 다음과 같은 명령을 사용하여 파이썬에서 출력에 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 ()을 호출하면 포트 상태가 0으로 변경됩니다.
Diomidis Spinellis
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.