জিপিআইও পিনগুলি কেন পরিষ্কার করবেন?


13

পাইথনে একটি প্রোগ্রাম চলাকালীন, জিপিআইও ব্যবহার করার সময় আমি কেন ক্লিনআপ কমান্ড চাইব?


পার্শ্ব দ্রষ্টব্য হিসাবে, সি প্রোগ্রামগুলির সাথে ব্যবহৃত ওয়্যারিংপি লাই লাইব্রেরিতে কোনও Cleanup()ফাংশন নেই। এটি উপস্থিত রয়েছে বলে মনে GPIO.cleanup()হয় কারণ পাইথনের কার্যকারিতা এই পরিবর্তনগুলি পরিষ্কার করতে একটি লগ পরিবর্তন করে রাখে। দেখুন raspberrypi.stackexchange.com/questions/44807/…
রিচার্ড চেম্বারস

উত্তর:


14

এই নিবন্ধে উল্লিখিত হিসাবে RPi.GPIO বেসিক 3 - GPIO প্রোগ্রামগুলি কীভাবে পরিষ্কারভাবে প্রস্থান করা যায়, সতর্কতাগুলি এড়ানো এবং আপনার পাই সুরক্ষিত করুন , GPIO.cleanup () এর সঠিক ব্যবহার,

GPIO.cleanup () এর সঠিক ব্যবহার

আপনার ব্যবহৃত সমস্ত পোর্ট পরিষ্কার করার জন্য RPI.GPIO একটি বিল্ট-ইন ফাংশন GPIO.cleanup () সরবরাহ করে। তবে এটি কী করে তা খুব পরিষ্কার হয়ে যান। এটি কেবলমাত্র বর্তমান প্রোগ্রামে আপনি যে কোনও পোর্টকে সেট করেছেন তা প্রভাবিত করে। এটি আপনি এই প্রোগ্রামটিতে যে কোনও পোর্ট ব্যবহার করেছেন তা ইনপুট মোডে পুনরায় সেট করে। এটি ক্ষতির হাত থেকে রক্ষা করে, বলুন, এমন একটি পরিস্থিতি যেখানে আপনার পোর্টটি HIGH কে আউটপুট হিসাবে সেট করে এবং আপনি দুর্ঘটনাক্রমে এটি GND (LOW) এর সাথে সংযুক্ত করেন, এটি বন্দরকে শর্ট সার্কিট করে এবং সম্ভবত এটি ভাজতে পারে। ইনপুটগুলি 0V (LOW) বা 3.3V (এইচআইএটি) হ্যান্ডেল করতে পারে, সুতরাং পোর্টগুলি ইনপুট হিসাবে ছেড়ে দেওয়া নিরাপদ।

আশা করি এটি আপনার সন্দেহ কেটে ফেলেছে।


5

আপনাকে পরিষ্কার করার পদ্ধতিটি ব্যবহার করতে হবে না।

আমি যতটা অবগত রয়েছি কেবলমাত্র RPi.GPIO এবং RPIO.GPIO পাইথন মডিউলগুলির একটি ক্লিনআপ পদ্ধতি রয়েছে। ক্লিনআপ পদ্ধতিটি আপনি ইনপুট হিসাবে ব্যবহৃত সমস্ত জিপিওগুলি সেট করে এবং সেই জিপিওসের জন্য অভ্যন্তরীণ পুল-আপগুলি / ডাউনগুলি অক্ষম করে।

আমার পিগ্পিও পাইথন মডিউলে কোনও সাফ করার পদ্ধতি নেই, আমি জানি যতদূর ওয়্যারিংপিপাই পাইথন মডিউলও নেই।


ক্লিনআপ কমান্ডের উদ্দেশ্য তখন কী?
মানব

1
@ হুমান আমি মনে করি না যে এর উদ্দেশ্য খুব বেশি আছে, আমি যদি মনে করি যে এটির প্রয়োজন আছে তবে আমি এই জাতীয় পদ্ধতি যুক্ত করতাম। দাস্তান তার উত্তরে আরপিআই.জিপিআইও লেখক দ্বারা ব্যবহৃত যুক্তির দিকে ইঙ্গিত করেছেন। এটি একটি ফিলোসফিক্যাল বাঁক বেশি হতে পারে, আমি ধরে নিয়েছি ব্যবহারকারীরা যা করেন বা না করেন তার করার কারণ রয়েছে। প্রোগ্রামটি শেষ হওয়ার পরে যদি তারা কোনও জিপিওকে একটি ইনপুট হিসাবে ছেড়ে যেতে চায় তবে তাদের এটিকে একটি ইনপুট হিসাবে সেট করা উচিত।
Joan

1

আমি জিপিআইও ব্যবহার করে কয়েকটি সমস্যার মুখোমুখি হয়েছি, মূলত পূর্ববর্তী সেশনে ইতিমধ্যে সেট করা মোডগুলি এবং পিনের দিক পরিবর্তন করার চেষ্টা করার সাথে সম্পর্কিত। উদাহরণস্বরূপ, কখনও কখনও আমি যদি এমন কোনও প্রোগ্রাম চালিত করি যা আউটপুটে পিন সেট করে এবং আমি আবার এমন কোনও প্রোগ্রাম চালিত করি যা পাই পুনরায় আরম্ভ না করে একই পিনগুলি ইনপুটতে সেট করে, আমি একটি গুচ্ছ সতর্কতা পাই (যেমন "রানটাইম ওয়ার্নিং: এই চ্যানেলটি ইতিমধ্যে রয়েছে ব্যবহার ")। একক প্রোগ্রাম থেকে জিপিআইও সম্পর্কিত বিভিন্ন ফাংশন কল করার সময় এটি বিশেষত সমস্যাযুক্ত হয়, কখনও কখনও প্রোগ্রাম ক্রাশ হওয়ার সাথে সাথে।

জিপিআইও সেটিংস পরিবর্তন করার আগে বা পরে ক্লিনআপ কমান্ডটি ব্যবহার করা সতর্কতা থেকে মুক্তি পায় এবং কোডটি কোনও জিপিআইও-সেটিংসের সতর্কতা না দিয়ে সহজেই চলতে দেয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.