Çıkış olarak ayarlanmış bir GPIO pinini değiştirme


9

Burada , aşağıdaki komutu kullanarak Python'da çıkışa ayarlanmış bir GPIO pininin durumunu değiştirebileceğimi okudum :

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

LEDpin değeri nerede . Aşağıdaki kodu kullanarak LED'i açabilirim:

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

Ama denediğimde GPIO.output(LED, not GPIO.input(LED)), aşağıdaki hata atılır.

RPi.GPIO.WrongDirectionException: GPIO kanalı ayarlanmadı veya yanlış yönde ayarlandı

GPIO kanalını yukarıdakinden farklı bir şekilde mi ayarlamam gerekiyor veya referans verdiğim site yanlış bilgi yayınlıyor mu?

Yanıtlar:


13

Bir çıktıyı okuyamazsınız. Sadece pimin durumunu bir değişkende saklayın.

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

Başka bir yerde belirtilmesine rağmen, sadece aynı GPIO pinini girerek ve daha önce ayarladığınız döndürülen değeri elde ederek bir çıktı okuyabilirsiniz:

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 

Gerçekten bir çıkış portu okuyabilirsiniz. Ancak, bunu farklı bir işlemden yapar ve GPIO.cleanup () öğesini çağırırsanız, bağlantı noktasının durumunun sıfıra değişmesine neden olacağını unutmayın.
— Diomidis Spinellis
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.