Beralih pin GPIO ditetapkan sebagai output


9

Saya membaca di sini bahwa saya bisa beralih keadaan pin GPIO diatur ke output dalam Python menggunakan perintah berikut:

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

di mana LEDnilai pin. Saya dapat menyalakan LED menggunakan kode berikut:

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

Tetapi ketika saya mencoba GPIO.output(LED, not GPIO.input(LED)), kesalahan berikut dilemparkan.

RPi.GPIO.WrongDirectionException: Saluran GPIO belum diatur atau diatur ke arah yang salah

Apakah saya seharusnya mengatur saluran GPIO secara berbeda dari atas atau apakah situs yang saya rujuk memposting informasi yang salah?

Jawaban:


13

Anda tidak dapat membaca output. Cukup simpan status pin dalam variabel.

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

Meskipun dinyatakan di tempat lain, Anda DAPAT membaca keluaran hanya dengan memasukkan pin GPIO yang sama dan mendapatkan nilai yang dikembalikan seperti yang Anda tentukan sebelumnya:

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 

Memang Anda bisa membaca port output. Namun perhatikan bahwa jika Anda melakukan itu dari proses yang berbeda dan kemudian memanggil GPIO.cleanup (), ini akan menghasilkan kondisi port berubah menjadi nol.
Diomidis Spinellis
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.