রাস্পবেরি পাই বুট হয়ে গেলে কেন কিছু জিপিআইও পিন উচ্চ হয়?


18

আমার কাছে একটি সহজ সার্কিট ওয়্যার্ড হয়েছে, বোর্ডের রেফারেন্সে 18 টি পিনের সাথে একটি LED সংযুক্ত রয়েছে। আমি হাই থেকে পিন 18 এ রাখার জন্য একটি সাধারণ প্রোগ্রাম চালাচ্ছি যা LED চালিত করে, এবং তারপরে কয়েক সেকেন্ড পরে আমি পিন 18 টি কম সেট করি এবং শেষ পর্যন্ত আমি GPIO.cleanup () দিয়ে আমার প্রোগ্রামটি শেষ করি।

এই মুহুর্তে এলইডি বন্ধ রয়েছে, যার অর্থ পিন 18 বন্ধ রয়েছে (LOW)। এখন আমি আমার রাস্পবেরি পাই রিবুট করি বা পুনরায় চালু করি এবং এটি পুনরায় বুট হয়ে গেলে পিনের এলইডি আবার চালু হয়, যদিও আমি রাস্পবেরি পাই রিবুট করার আগে পিনটি বন্ধ ছিল।

কেন এমন হতে পারে? রাস্পবেরি পাই বুট হয়ে গেলে আমি কীভাবে একটি নির্দিষ্ট পিনটি কনফিগার করব? আর আমি চাই না যে রাস্পবেরি পাই বুট হয়ে গেলে কোনও জিপিআইও পিন হাইতে থাকবে।

আমি এই সমস্যাটি সম্পর্কে উদ্বিগ্ন, কারণ আসুন বলি যে পিন 18 একটি রোবোটের একটি ডিসি মোটরের সাথে সংযুক্ত এবং যখন রাস্পবেরি পাই বুট হবে তখন মোটরটি চালু হবে, এবং এটি এমন কিছু নয় যা আমি হস্তক্ষেপ করবে রোবটের পুরো কাঠামো, এবং কিছু মোটর শুরু হতে পারে এবং অন্যরা তাদের সংযুক্ত পিনের উপর নির্ভর করে না। আমি ম্যানুয়ালি সমস্ত মোটর একটি সিঙ্ক্রোনাইজড পদ্ধতিতে চালু করতে চাই।

অন্য একটি জিনিস হ'ল সমস্ত পিনের এই সমস্যা নেই। রাস্পবেরি পাই বুট করার সময় কিছু লোক বন্ধ থাকে, তবে অন্যরা তা করে না।


আপনি যখন এটি উচ্চ স্থাপন করেছেন তখন কি সেই এলইডি তেমন উজ্জ্বলভাবে জ্বলছে, বা এটি কেবল ম্লানভাবে জ্বলছে?
স্বর্ণলোকস

এটিতে 3.3 ভোল্ট প্রয়োগ রয়েছে।
ভিক্টর রাস্পবেরি

সুতরাং আপনি যদি /sys/class/gpioপিন 18 এ গিয়ে রফতানি করেন তবে সিস্টেমটি কোন রাজ্যটি বলে যদি আপনি কিছুই পরিবর্তন করেন না তবে এটি কী অবস্থায় আছে?
স্বর্ণলোকস

আমি যখন "/ sys / class / gpio" লিখি তখন এটি "-বাশ: / সিএস / শ্রেণি / জিপিও: একটি ডিরেক্টরি" বলে। আমি নির্দিষ্ট পিনটি কীভাবে রফতানি করব তা নিশ্চিত নই।
ভিক্টর রাস্পবেরি

এর ব্যাখ্যাগুলির ওডলস রয়েছে , তাই আমি পুনঃব্যবহার করতে বিরক্ত করব না। উদাহরণটি হ'ল এক ধরণের ভারী echo, যা লিখেছে, যা কিছু সেট করে। আপনি এটি রফতানি করার পরে আপনি তা থেকে বিরত থাকতে চান এবং catদিক এবং মানটি পরীক্ষা করতে কেবল যা ব্যবহার করে ।
স্বর্ণলোকস

উত্তর:


25

পাওয়ারআপে GPIO গুলি অভ্যন্তরীণ প্রতিরোধকের মাধ্যমে উচ্চ বা নিম্নে টানা হয়। কোনও নির্দিষ্ট জিপিআইওর জন্য টানটি উচ্চ বা কম কিনা তা বিসিএম 2835 এআরএম পেরিফেরিয়ালের 102 পৃষ্ঠায় বিশদ রয়েছে ।

লিনাক্স কার্নেলটি শুরু হওয়ার সাথে সাথে এবং যদি ডিভাইস ট্রি সক্ষম করা হয় (সম্ভবত) তবে এটি ডিভাইস ট্রি সেটিংস অনুযায়ী জিপিআইওগুলিকে পুনরায় কনফিগার করবে ig এগুলি থেকে লোড হওয়া মডিউলগুলি /etc/modulesজিপিআইও রাষ্ট্র আপডেট করতে পারে।

আরম্ভের সময় আপনি যে কোনও সফ্টওয়্যার চালু করছেন তা ডিভাইস ট্রি সেটিংস এবং মডিউল লোডের পরে জিপিআইওগুলি পুনরায় কনফিগার করতে পারে।

আপনার যদি এমন হার্ডওয়্যার থাকে যা সিস্টেম শুরুতে ভুলভাবে ট্রিগার হতে পারে তবে একটি হার্ডওয়্যার সমাধান পাওয়া সবচেয়ে নিরাপদ।


10

যখন রাস্পবেরি পাই বুট হয় জিপিআইও লাইনগুলি চিপ ডিফল্টটিতে পুনরায় সেট করা হয়, তখন ওএস লোড হয় এবং সেগুলি ওএস ডিফল্টে পুনরায় সেট করে। একটি রিবুট জুড়ে সেটিংস "মনে রাখার" উপায় নেই। আরও দেখুন জিপিআইওগুলির স্থিতির ক্ষমতা কী? এবং GPIO বুট পরে স্থিতি


2

আমি জানি বেশ দেরি হয়ে গেছে উত্তর দিতে. আপনি একটি পাইথন স্ক্রিপ্ট বা বাশ স্ক্রিপ্ট লিখতে পারেন যা ম্যানুয়ালি পিনটি কমতে সেট করে এবং প্রতিটি বুটে চালানোর জন্য ক্রোন কাজের সময় নির্ধারণ করে। আপনার কোনও সিস্টেম / সমালোচনামূলক ফাইল সংশোধন করার প্রয়োজন হবে না। ক্রোন ছাড়াও

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