সিরিয়াল বা ইউজার্ট কমিউনিকেশনের মাধ্যমে দুটি মাইক্রোকন্ট্রোলার একে অন্যের সাথে তথ্য আদানপ্রদান করতে পারে। মাইক্রোকন্ট্রোলার থেকে কম্পিউটারে তথ্য পাঠাতেও প্রয়োজন হয় সিরিয়াল কমিউনিকেশন।
বিভিন্ন জিএসএম মডিউল,জিপিএস মডিউল, আরএফআইডি রিডার ইত্যাদি সিরিয়াল কমিউনিকেশনের মাধ্যমেই মাইক্রোকন্ট্রোলারের সাথে তথ্য আদান-প্রদান করে।
সিরিয়াল কমিউনিকেশন প্রটোকল ব্যবহার করেই মাইক্রোকন্ট্রোলার দিয়ে এসএমএসভিত্তিক লোড কন্ট্রোল, ভেহিকল ট্র্যাকিং সিস্টেম, বেশকিছু আরএফআইডি ও ফিঙ্গারপ্রিন্টভিত্তিক অ্যাটেন্ডেন্স সিস্টেম তৈরী করা হয়।
সিরিয়াল কমিউনিকেশনের জন্য একটি মাইক্রোকন্ট্রোলারের চেয়ে একটি আরডুইনো বোর্ড ব্যবহার করা অনেক দিক দিয়েই সুবিধাজনক। কারন, আরডুইনোর আছে ইন –বিল্ট ইউএসবি টু সিরিয়াল কনভার্টার।
এভিআর মাইক্রোকন্ট্রোলারের ইউজার্টের মাধ্যমে পাঠানো বা প্রাপ্ত তথ্য কম্পিউটারে দেখতে চাইলে একটি আলাদা ইউএসবি টু সিরিয়াল কনভার্টারের প্রয়োজন হয়।কিন্তু আরডুইনো উনো ব্যবহার করার ক্ষেত্রে এই ঝামেলা নেই।
আরডুইনোর সিরিয়াল মনিটর ব্যবহার করলেই আমরা সিরিয়াল কমিউনিকেশনের মাধ্যমে পাঠানো বা প্রাপ্ত তথ্য দেখতে পারি। এটি যে আরডুইনোর কত উপকারী একটি ফিচার তা বলার অপেক্ষা রাখে না। কোড ডিবাগ করার সময় ভুলত্রুটি খুঁজে পেতে আরডুইনোর সিরিয়াল মনিটর যেমন কাজে দেয়, তেমনি এই মনিটর ব্যবহার করা যায় প্রজেক্টের ডিস্প্লে হিসেবে।
ছোটখাটো এক্সপেরিমেন্টের জন্য সেভেন সেগমেন্ট, এলসিডি বা অন্য যেকোনো ডিসপ্লে ব্যবহারের খরচ ও ঝামেলা এড়িয়ে ডিসপ্লে হিসেবে সিরিয়াল মনিটরকেই ব্যবহার করা যায়। দেখা যায় যেকোনো সেন্সরের অ্যানালগ বা ডিজিটাল ভ্যালু; ভোল্টেজ, কারেন্ট, রেজিস্টেন্সের মতো গুরুত্বপূর্ণ প্যারামিটার।
আরডুইনো বেসিক সিরিজের এই পর্বে থাকছে সিরিয়াল কমিউনিকেশন এবং সিরিয়াল মনিটরের ব্যবহার সংক্রান্ত ছোট্ট একটি উদাহরণ।
এই এক্সপেরিমেন্টে আমরা একটি প্রোগ্রাম লিখব। এই প্রোগ্রামটি সিরিয়াল মনিটরে 1 থেকে 10 পর্যন্ত সংখ্যা দেখাবে।
প্রোগ্রামঃ
এই প্রোগ্রামে দুটি ফাংশন নিয়ে কাজ করা হয়েছে। serial.begin ()এবং serial.print().
Serial.begin() ফাংশন দিয়ে সিরিয়াল কমিউনিকেশনের Baud Rate সিলেক্ট করা হয়।
ইতোমধ্যে আমরা এভিআর সিরিজে বড রেট সম্পর্কে জেনেছি। বিট/সেকেন্ডকে বড(Baud rate) দ্বারা প্রকাশ করা হয়। সোজা বাংলার ডাটা ট্রান্সফারের হারকে বড রেট বলে ।কয়েকটি স্ট্যান্ডার্ড বড রেট হলঃ ১২০০,২৪০০,৪৮০০,৯৬০০,১৯২০০,৩৮৪০০,৫৭৬০০,১১৫২০০,ইত্যাদি।
আমাদের প্রোগ্রামটিতে আমরা Serial.begin(9600); দ্বারা ৯৬০০ বড রেট সিলেক্ট করেছি।
Serial.print() ফাংশনটি দিয়ে সিরিয়াল মনিটরে যেকোনো সংখ্যা বা বাক্য প্রিন্ট করা যায়। উপরের কোডটি আরডুইনোতে আপলোড করুন। এবার সিরিয়াল মনিটর ওপেন করতে হবে। আরডুইনো আইডিইর ডানদিকে এরকম একটি চিহ্ন দেখা যায়। এখানে ক্লিক করুন।
সিরিয়াল মিনিটরেও বড রেট 9600 সিলেক্ট করুন। নিচের ছবির মতো 1 থেকে 10 পর্যন্ত সংখ্যা একেকটি সংখ্যা ১ সেকেন্ড পরপর প্রিন্ট হবে। 10 পর্যন্ত প্রিন্ট করা শেষ হলে আবারও 1 থেকে শুরু হবে।
প্রশ্নঃ
serial.print() ফাংশটির ডানপাশে একটি ln যুক্ত করা হয়েছে আমাদের প্রোগ্রামে। serial.println() এর বদলে যদি Serial.print() লেখা হত তাহলে কী হত?
]]>
Arduino Serial Monitor এ অনেক সময় সঠিক প্রিন্ট করে না । কিছু গার্বেজ প্রিন্ট করে । এর কারণ কি ?
প্রিয় গ্রাহক, সমস্যাটি হতে পারে Baud Rate বিষয়ক। কোডের অভ্যন্তরে Baud Rate এবং টার্মিনাল Baud Rate ভিন্ন থাকতে পারে। অথবা যে হার্ডওয়ার থেকে ডাটা আসছে তার ডিফল্ট Baud Rater এর সাথে অমিল থাকলেও এটি হতে পারে।