আমরা ইতিমধ্যে আরডুইনোতে একটি বোতাম সংযোগ করার দিকে নজর রেখেছি এবং "বাউন্সিং" পরিচিতিগুলির বিষয়টি স্পর্শ করেছি। এটি একটি খুব বিরক্তিকর ঘটনা যা বারবার বোতামগুলির চাপ দেয় এবং প্রোগ্রামিকভাবে বোতামের ক্লিকগুলি পরিচালনা করতে অসুবিধা বোধ করে। আসুন কীভাবে যোগাযোগের বাউন্স থেকে মুক্তি পাবেন সে সম্পর্কে কথা বলি।
প্রয়োজনীয়
- - আরডুইনো;
- - কৌশল বোতাম;
- - 10 কোহমের নামমাত্র মান সহ রোধকারী;
- - হালকা নির্গমনকারী ডায়োড;
- - সংযোগ তারের।
নির্দেশনা
ধাপ 1
কন্টাক্ট বাউন্স যান্ত্রিক সুইচ, পুশবটন, টগল সুইচ এবং রিলে একটি সাধারণ ঘটনা। পরিচিতিগুলি সাধারণত ধাতু এবং স্থিতিস্থাপকগুলির সাথে স্থিতিস্থাপকতাযুক্ত ধাতব দ্বারা গঠিত হয়, শারীরিকভাবে বন্ধ হয়ে গেলে তারা তাত্ক্ষণিকভাবে একটি নির্ভরযোগ্য সংযোগ স্থাপন করে না। অল্প সময়ের মধ্যে, পরিচিতিগুলি কয়েকবার বন্ধ হয়ে যায় এবং একে অপরকে পিছনে ফেলে দেয়। ফলস্বরূপ, বৈদ্যুতিক প্রবাহটি তাত্ক্ষণিকভাবে নয়, স্থির-রাষ্ট্রীয় মান গ্রহণ করে তবে ক্রমশ উত্থান-পতনের পরে। এই ক্ষণস্থায়ী প্রভাবের সময়কাল যোগাযোগের উপাদান, আকার এবং নকশার উপর নির্ভর করে। চিত্র বোতামের পরিচিতিগুলি বন্ধ হয়ে গেলে চিত্রটি একটি সাধারণ অসিলোগ্রাম দেখায়। এটি দেখা যায় যে স্থির অবস্থায় স্যুইচ করার মুহুর্ত থেকে সময়টি কয়েক মিলিসেকেন্ড। একে বলা হয় "বাউন্স"।
এই প্রভাবটি আলোক, মোটর বা অন্যান্য জড় সেন্সর এবং ডিভাইসগুলি নিয়ন্ত্রণ করতে বৈদ্যুতিক সার্কিটগুলিতে লক্ষণীয় নয়। তবে সার্কিটগুলিতে যেখানে তথ্য দ্রুত পড়া এবং প্রক্রিয়াকরণ করা হয় (যেখানে ফ্রিকোয়েন্সিগুলি "বাউন্স" ডালের সমান ক্রম হয়) বা এটি উচ্চতর হয়) এটি একটি সমস্যা। বিশেষত, আর্দুইনো ইউএনও, যা 16 মেগাহার্টজ এ পরিচালনা করে, একটি একক 0 থেকে 1 স্যুইচের পরিবর্তে এক এবং জিরোগুলির ক্রম গ্রহণ করে যোগাযোগের বাউন্সে ধরা কার্যকর is
ধাপ ২
আসুন দেখুন কীভাবে যোগাযোগের বাউন্সটি সার্কিটের সঠিক ক্রিয়াকে প্রভাবিত করে। আসুন ক্লক বোতামটি আরডুইনোতে একটি পুল-ডাউন রোধকারী সার্কিট ব্যবহার করে সংযুক্ত করি। বোতামটি টিপে, আমরা এলইডিটি আলোকিত করব এবং বোতামটি আবার চাপ না দেওয়া পর্যন্ত এটিকে রেখে দেব। স্পষ্টতার জন্য, আমরা একটি বাহ্যিক LED 13 ডিজিটাল পিনের সাথে সংযুক্ত করি, যদিও বিল্ট-ইনটি দিয়ে সরবরাহ করা যেতে পারে।
ধাপ 3
এই কাজটি সম্পাদন করার জন্য, প্রথম জিনিসটি যা মনে আসে:
- বোতামের পূর্বের অবস্থাটি মনে রাখবেন;
- বর্তমান রাষ্ট্রের সাথে তুলনা করুন;
- যদি রাষ্ট্রটি পরিবর্তিত হয়, তবে আমরা এলইডি রাষ্ট্র পরিবর্তন করব।
আসুন এই জাতীয় স্কেচ লিখুন এবং এটি আরডুইনো স্মৃতিতে লোড করুন।
যখন সার্কিটটি চালু হয়, তখন যোগাযোগের বাউন্সিংয়ের প্রভাব তত্ক্ষণাত দৃশ্যমান হয়। এটি এ সত্যে উদ্ভাসিত হয় যে এলইডি বাটনটি টিপানোর সাথে সাথে হালকা আলো জ্বালায় না, বা আলো জ্বলছে এবং তারপরে বাইরে চলে যায়, বা বোতাম টিপানোর সাথে সাথেই বন্ধ হয় না, তবে চালু থাকে। সাধারণভাবে, সার্কিট স্টেবলভাবে কাজ করে না। এবং যদি এলইডি চালু করার কোনও কাজের জন্য এটি এতটা সমালোচনা না হয়, তবে অন্যান্য, আরও গুরুতর কাজের জন্য, এটি কেবল অগ্রহণযোগ্য।
পদক্ষেপ 4
আমরা পরিস্থিতি ঠিক করার চেষ্টা করব। আমরা জানি যে যোগাযোগ বন্ধ হওয়ার পরে কয়েক মিলি সেকেন্ডের মধ্যে যোগাযোগের বাউন্স হয়। আসুন অপেক্ষা করুন, বলুন, বোতামের স্থিতি পরিবর্তন করার পরে 5 মাইল। এই সময় কোনও ব্যক্তির জন্য প্রায় তাত্ক্ষণিক, এবং কোনও ব্যক্তির বোতাম টিপতে সাধারণত অনেক বেশি সময় লাগে - কয়েক দশক মিলিসেকেন্ড। এবং আরডুইনো এইরকম স্বল্প সময়ের সাথে দুর্দান্ত কাজ করে এবং এই 5 এমএস এর সাহায্যে কোনও বোতাম টিপানো থেকে যোগাযোগের বাউন্স কেটে দেওয়া সম্ভব হয়।
এই স্কেচে, আমরা ডাবনো () পদ্ধতিটি (ইংরেজীতে "বাউন্স" কেবল "বাউন্স", উপসর্গ "ডি" মানে বিপরীত প্রক্রিয়া) ঘোষণা করব, যার ইনপুটটিতে আমরা বোতামটির পূর্ববর্তী অবস্থা সরবরাহ করি। যদি একটি বোতাম টিপ 5 টি এমসির বেশি স্থায়ী হয় তবে এটি সত্যিই একটি প্রেস।
প্রেস সনাক্ত করে, আমরা এলইডি এর স্থিতি পরিবর্তন করি।
স্ক্র্যাচটি আরডুইনো বোর্ডে আপলোড করুন। সবকিছু এখন অনেক ভাল! বোতামটি ব্যর্থ না হয়ে কাজ করে, যখন টিপানো হয়, তখন এলইডি রাষ্ট্র হিসাবে পরিবর্তন করে, যেমনটি আমরা চাইতাম।
পদক্ষেপ 5
অনুরূপ কার্যকারিতা বিশেষ লাইব্রেরি যেমন বাউন্স 2 লাইব্রেরি দ্বারা সরবরাহ করা হয়।আপনি "উত্স" বিভাগে বা ওয়েবসাইট https://github.com/thomasfredericks/Bounce2 এ লিঙ্ক থেকে এটি ডাউনলোড করতে পারেন। গ্রন্থাগারটি ইনস্টল করতে, এটি আরডুইনো বিকাশের পরিবেশের লাইব্রেরি ডিরেক্টরিতে রাখুন এবং আইডিই পুনরায় চালু করুন।
"বাউন্স 2" লাইব্রেরিতে নিম্নলিখিত পদ্ধতি রয়েছে:
বাউন্স () - "বাউন্স" অবজেক্টের সূচনা;
অকার্যকর ব্যবধান (এমএস) - বিলম্বের সময়টি মিলিসেকেন্ডে স্থির করে;
অকার্যকর সংযুক্তি (পিন নম্বর) - বোতামটি সংযুক্ত রয়েছে এমন পিনটি সেট করে;
int আপডেট () - অবজেক্টটি আপডেট করে এবং পিনের অবস্থা পরিবর্তিত হলে সত্য হয় এবং অন্যথায় মিথ্যা হয়;
int read () - পিনের নতুন স্থিতি পড়বে।
লাইব্রেরিটি ব্যবহার করে আমাদের স্কেচটি আবার লিখি। আপনি বর্তমানটির সাথে বোতামটির অতীতের অবস্থাও মনে রাখতে এবং তুলনা করতে পারেন, তবে আসুন অ্যালগোরিদমকে সহজ করুন। বোতামটি টিপলে, আমরা টিপুনগুলি গণনা করব এবং প্রতিটি বিজোড় প্রেস এলইডি চালু করবে এবং প্রতিটি এমনকি প্রেস এটি বন্ধ করে দেবে। এই স্কেচটি সংক্ষিপ্ত, পড়তে সহজ এবং সহজেই ব্যবহারযোগ্য বলে মনে হচ্ছে।