Çı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.