উত্তর:
এই নিবন্ধে উল্লিখিত হিসাবে RPi.GPIO বেসিক 3 - GPIO প্রোগ্রামগুলি কীভাবে পরিষ্কারভাবে প্রস্থান করা যায়, সতর্কতাগুলি এড়ানো এবং আপনার পাই সুরক্ষিত করুন , GPIO.cleanup () এর সঠিক ব্যবহার,
GPIO.cleanup () এর সঠিক ব্যবহার
আপনার ব্যবহৃত সমস্ত পোর্ট পরিষ্কার করার জন্য RPI.GPIO একটি বিল্ট-ইন ফাংশন GPIO.cleanup () সরবরাহ করে। তবে এটি কী করে তা খুব পরিষ্কার হয়ে যান। এটি কেবলমাত্র বর্তমান প্রোগ্রামে আপনি যে কোনও পোর্টকে সেট করেছেন তা প্রভাবিত করে। এটি আপনি এই প্রোগ্রামটিতে যে কোনও পোর্ট ব্যবহার করেছেন তা ইনপুট মোডে পুনরায় সেট করে। এটি ক্ষতির হাত থেকে রক্ষা করে, বলুন, এমন একটি পরিস্থিতি যেখানে আপনার পোর্টটি HIGH কে আউটপুট হিসাবে সেট করে এবং আপনি দুর্ঘটনাক্রমে এটি GND (LOW) এর সাথে সংযুক্ত করেন, এটি বন্দরকে শর্ট সার্কিট করে এবং সম্ভবত এটি ভাজতে পারে। ইনপুটগুলি 0V (LOW) বা 3.3V (এইচআইএটি) হ্যান্ডেল করতে পারে, সুতরাং পোর্টগুলি ইনপুট হিসাবে ছেড়ে দেওয়া নিরাপদ।
আশা করি এটি আপনার সন্দেহ কেটে ফেলেছে।
আপনাকে পরিষ্কার করার পদ্ধতিটি ব্যবহার করতে হবে না।
আমি যতটা অবগত রয়েছি কেবলমাত্র RPi.GPIO এবং RPIO.GPIO পাইথন মডিউলগুলির একটি ক্লিনআপ পদ্ধতি রয়েছে। ক্লিনআপ পদ্ধতিটি আপনি ইনপুট হিসাবে ব্যবহৃত সমস্ত জিপিওগুলি সেট করে এবং সেই জিপিওসের জন্য অভ্যন্তরীণ পুল-আপগুলি / ডাউনগুলি অক্ষম করে।
আমার পিগ্পিও পাইথন মডিউলে কোনও সাফ করার পদ্ধতি নেই, আমি জানি যতদূর ওয়্যারিংপিপাই পাইথন মডিউলও নেই।
আমি জিপিআইও ব্যবহার করে কয়েকটি সমস্যার মুখোমুখি হয়েছি, মূলত পূর্ববর্তী সেশনে ইতিমধ্যে সেট করা মোডগুলি এবং পিনের দিক পরিবর্তন করার চেষ্টা করার সাথে সম্পর্কিত। উদাহরণস্বরূপ, কখনও কখনও আমি যদি এমন কোনও প্রোগ্রাম চালিত করি যা আউটপুটে পিন সেট করে এবং আমি আবার এমন কোনও প্রোগ্রাম চালিত করি যা পাই পুনরায় আরম্ভ না করে একই পিনগুলি ইনপুটতে সেট করে, আমি একটি গুচ্ছ সতর্কতা পাই (যেমন "রানটাইম ওয়ার্নিং: এই চ্যানেলটি ইতিমধ্যে রয়েছে ব্যবহার ")। একক প্রোগ্রাম থেকে জিপিআইও সম্পর্কিত বিভিন্ন ফাংশন কল করার সময় এটি বিশেষত সমস্যাযুক্ত হয়, কখনও কখনও প্রোগ্রাম ক্রাশ হওয়ার সাথে সাথে।
জিপিআইও সেটিংস পরিবর্তন করার আগে বা পরে ক্লিনআপ কমান্ডটি ব্যবহার করা সতর্কতা থেকে মুক্তি পায় এবং কোডটি কোনও জিপিআইও-সেটিংসের সতর্কতা না দিয়ে সহজেই চলতে দেয়।
Cleanup()
ফাংশন নেই। এটি উপস্থিত রয়েছে বলে মনেGPIO.cleanup()
হয় কারণ পাইথনের কার্যকারিতা এই পরিবর্তনগুলি পরিষ্কার করতে একটি লগ পরিবর্তন করে রাখে। দেখুন raspberrypi.stackexchange.com/questions/44807/…