आउटपुट के रूप में सेट GPIO पिन को टॉगल करना


9

मैंने यहाँ पढ़ा कि मैं निम्न कमांड का उपयोग करके पायथन में आउटपुट के लिए सेट GPIO पिन की स्थिति को टॉगल कर सकता हूं:

GPIO.output(LED, not GPIO.input(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 () कहते हैं, तो इसका परिणाम पोर्ट बदलने की स्थिति में शून्य हो जाएगा।
डायोमिडिस स्पिनेलिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.