আরডুইনো টিউটোরিয়াল পর্ব – ৭: আরডুইনো ব্যবহার করে অ্যানালগ সিগনাল ইনপুট নেয়ার পদ্ধতি

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

How to recieve analog signal in arduino

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

digital signal voltage range

ছবিটা দেখে কিছু বুজতে পারলেন? মূলত ডিজিটাল ইলেক্ট্রনিক্স ডিভাইসগুলো ২ ভোল্ট থেকে ৫ ভোল্টের মধ্যে যে কোন সিগনালকেই ডিজিটালি হাই সিগনাল ধরে নেয়। অর্থ্যাৎ ডিজিটাল সিগনাল নিয়ে যখন আমরা কাজ করতে যাবো আমাদের মাইক্রোকন্ট্রোলার কিন্তু ৩ ভোল্ট এবং ৫ ভোল্টের মধ্যে কোন পার্থক্য ধরতে পারবে না। অর্থ্যাৎ দুটি সিগনালকেই সে হাই ধরে নিবে। উদাহরণ হিসেবে গত পর্বে আমরা যে PIR Motion Detector সেন্সর ব্যবহার করেছিলাম তার কথাই ধরা যাক। আমরা আমাদের কোডের মধ্যে লিখেছিলাম যে যখনই সেন্সরটি কোন হাই সিগনাল দিবে আরডুইনোর ইনপুটে, তখনই যেন আরডুইনো অ্যালার্মটাকে অন করে দেয়। আপনারা অনেকেই হয়তো তখন ভেবেছিলেন যে নিশ্চয় সেন্সরটা তার আউটপুট পিন দিয়ে বোধহয় ৫ভোল্ট আউটপুট দেয়। কিন্তু আপনারা যদি একটি ডিজিটাল মাল্টিমিটার নিয়ে সেন্সরটির আউটপুট ভোল্টেজটা মেপে দেখেন তাহলে দেখবেন যে সেখান দিয়ে মোটামুটি ৩ ভোল্টর কাছাকাছি (কম বেশি হতে পারে) আউটপুট আসে। অথচ মাইকন্ট্রোলার কিন্তু ঠিকই এটাকে হাই ধরে নিয়েছে। এখন আপনাদের মনে প্রশ্ন জাগতে পারে সমস্যা কি এতে? জ্বী সমস্যা কিছুটা তো আছেই। একটু পরই বুজতে পারবেন। তবে তার আগে অ্যানালগ সিগনালকি সেটা একটু জেনে নেই।

অ্যানালগ সিগনাল হলো ০ ভোল্ট থেকে ৫ ভোল্টের মাঝামাঝি যে কোন সিগনাল। অর্থ্যাৎ এখানে হাই-লো বলতে কোন কিছু নেই। এখানে আমরা সরাসরি সিগনালের ভোল্টেজ কত তা নিয়ে কাজ করবো। আরডুইনোতে আমরা প্রায় সময়ই বিভিন্ন সেন্সর নিয়ে কাজ করবো যারা তাদের আউটপুট গুলো অ্যানালগ সিগনালের মাধ্যমে পাঠায়। উদাহরণ হিসেবে Temperature Sensor LM35 এর কথাই বলা যাক। এই সেন্সরটা প্রতি ডিগ্রী সেলসিয়াস তাপমাত্রার জন্য ১০ মিলি ভোল্ট আউটপুট দিতে পারে। অর্থ্যাৎ যদি রুমের তাপমাত্রা বর্তমানে ৩০ ডিগ্রী সেলসিয়াস হয় তাহলে এই সেন্সরটি তার আউটপুট পিনে ৩০০ মিলি ভোল্ট বা ০.৩ ভোল্টের সিগনাল আউটপুট দিবে। এখন আপনি যদি এই সিগনালটা আরডুইনো দিয়ে ডিজিটালি রিসিভ করতে চান তখন আরডুইনো সিগনালটা রিসিভ করে আপনাকে জানাবে সে একটা ডিজিটালি লো সিগনাল ইনপুট পেল। তো? এটা দিয়ে আমি কি করবো? কারণ আমার তো ডিজিটালি হাই নাকি লো তা জানার দরকার ছিল না। আমার দরকার সিগনালের ভোল্টেজ কত সেটা। এখন আমরা কি করবো? জ্বী, এখানেই সমস্যা। আর এই সমস্যাটাই দূর করবে আরডুইনোর analogRead() ফাংশনটি। এই ফাংশনটি অ্যানালগ সিগনালকে রিসিভ করতে পারে। ফলে আমরা খুব সহজেই আমাদের তাপমাত্রা পরিমাপ করার সেন্সরটির কত ভোল্টেজ আউটপুট দিচ্ছে তা বের করতে পারতাম। যা দিয়ে আমরা পরবর্তীতে হিসাব করতে পারতাম যে রুমের তাপমাত্রা কত। এটা তো শুধু একটা সেন্সর দিয়ে উদাহরণ দিলাম। এরকম অনেক কাজ আছে যেখানে আমাদেরকে অ্যানালগ ইনপুট নিয়ে কাজ করতে হবে। আমরা ধাপে ধাপে কাজ করতে গিয়ে সেগুলো জেনে নিব।

আচ্ছা আমরা তো জানলাম যে আরডুইনো দিয়ে আমরা অ্যানালগ সিগনাল ইনপুট নিতে পারবো। কিন্তু কথা হলো আরডুইনো আমাদেরকে সিগনালের ডাটা দিবে কোন ফরম্যাটে? যেমন ডিজিটাল সিগনালের ক্ষেত্রে আমরা দেখেছিলাম যে সে আমাদেরকে সিগনালের ডাটা হাই অথবা লো এটা বা ০ অথবা ১ এই ফরম্যাটে দেয়। অ্যানালগ সিগনালের ক্ষেত্রে আরডুইনো আমাদেরকে একটা ০ থেকে ১০২৩ এর একটা মান দিবে। অর্থ্যাৎ যদি কোন সিগনালের ভোল্টেজ ৫ ভোল্ট হয় এবং তা যদি আমরা অ্যানালগ সিগনাল হিসেবে রিসিভ করি তাহলে আরডুইনো আমাদেরকে ১০২৩ এই ভ্যালুটা রিটার্ন দিবে। এভাবে যে কোন ভোল্টেজের জন্য আমরা ঐকিক নিয়ম অনুযায়ী হিসাব করে বের করতে পারবো তার জন্য আরডুইনো কত ভ্যালু রিটার্ন দিবে। যেমন আমরা যদি LM35 সেন্সরটার ৩০ ডিগ্রী সেলসিয়াসের ক্ষেত্রে যে ৩০০ মিলি ভোল্ট বা ০.৩ ভোল্ট আউটপুট দিবে তা আরডুইনোর অ্যানালগ সিগনাল ইনপুট নেয়ার ফাংশন দিয়ে ইনপুট নিতাম তাহলে আরডুইনো আমাদেরকে ৬১ অথবা ৬২ এরকম একটা ভ্যালু রিটার্ন দিত।

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

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

Share This Post

Post Comment