जवाबों:
जैसा कि इस लेख में उल्लेख किया गया है RPi.GPIO मूल बातें 3 - GPIO प्रोग्रामों को कैसे साफ़ करें, चेतावनी से बचें और अपने Pi की रक्षा करें , GPIO.cleanup () का सही उपयोग करें,
GPIO.cleanup () का सही उपयोग
RPi.GPIO आपके द्वारा उपयोग किए जाने वाले सभी पोर्ट को साफ करने के लिए एक अंतर्निहित फ़ंक्शन GPIO.cleanup () प्रदान करता है। लेकिन यह स्पष्ट है कि यह क्या करता है। यह केवल वर्तमान कार्यक्रम में आपके द्वारा सेट किए गए किसी भी पोर्ट को प्रभावित करता है। यह आपके द्वारा इस प्रोग्राम में उपयोग किए गए किसी भी पोर्ट को इनपुट मोड पर रीसेट करता है। यह क्षति को रोकता है, कहते हैं, ऐसी स्थिति जहां आपके पास पोर्ट सेट है आउटपुट के रूप में उच्च है और आप गलती से इसे जीएनडी (एलओडब्ल्यू) से जोड़ते हैं, जो पोर्ट को शॉर्ट-सर्किट करेगा और संभवतः इसे भूनेंगा। इनपुट्स 0V (LOW) या 3.3V (हाई) को हैंडल कर सकते हैं, इसलिए इनपुट के रूप में पोर्ट्स को छोड़ना ज्यादा सुरक्षित है।
आशा है कि यह आपके संदेह को साफ करता है।
आपको सफाई विधि का उपयोग करने की आवश्यकता नहीं है।
जहाँ तक मुझे पता है केवल RPi.GPIO और RPIO.GPIO पायथन मॉड्यूल की सफाई पद्धति है। क्लीनअप विधि उन सभी gpios को सेट करती है जिनका आपने इनपुट किया है और उन gpios के लिए आंतरिक पुल-अप / डाउन को निष्क्रिय करता है।
मेरे पिगपिओ पायथन मॉड्यूल में सफाई विधि नहीं है, न ही वायरिंगपीआई 2 पायथन मॉड्यूल के बारे में जहां तक मुझे पता है।
मुझे GPIO का उपयोग करने में कुछ समस्याओं का सामना करना पड़ा है, मुख्य रूप से मोड और पिन दिशाओं को बदलने की कोशिश करने से संबंधित है जो पहले से ही पिछले सत्र में सेट किए गए हैं। उदाहरण के लिए, कभी-कभी अगर मैं एक प्रोग्राम चलाता हूं जो पिंस को आउटपुट में सेट करता है, और फिर मैं एक प्रोग्राम चलाता हूं जो पी को रिस्टार्ट किए बिना उसी पिन को इनपुट पर सेट करता है, तो मुझे चेतावनियों का एक गुच्छा मिलता है (जैसे कि "रनटाइमवार्डिंग: यह चैनल पहले से ही है।" उपयोग")। किसी एकल प्रोग्राम से विभिन्न GPIO संबंधित फ़ंक्शन को कॉल करते समय यह विशेष रूप से समस्याग्रस्त होता है, जैसा कि कभी-कभी प्रोग्राम क्रैश हो जाता है।
GPIO सेटिंग बदलने से पहले या बाद में या तो क्लीनअप कमांड का उपयोग करने से चेतावनियों से छुटकारा मिल जाता है और कोड किसी भी GPIO- सेटिंग चेतावनी के बिना आसानी से चलने देता है।
Cleanup()
फ़ंक्शन नहीं है । ऐसा प्रतीत होता है किGPIO.cleanup()
उपलब्ध है क्योंकि पायथन कार्यक्षमता उन परिवर्तनों को साफ करने के लिए परिवर्तनों का एक लॉग रखती है। देखें raspberrypi.stackexchange.com/questions/44807/...