Multitasking এবং millis() ফাংশন ব্যবহার

Computer Programming - আরডুইনো (Arduino) Advanced Arduino Programming (এডভান্সড Arduino প্রোগ্রামিং) |
209
209

Arduino প্রোগ্রামিংয়ে multitasking হলো একটি সময়ে একাধিক কাজ সম্পাদন করার ক্ষমতা। যদিও Arduino মাইক্রোকন্ট্রোলারটি একক থ্রেডে কাজ করে, তবুও আপনি কিছু কৌশল ব্যবহার করে multitasking এর মতো আচরণ তৈরি করতে পারেন। এর মধ্যে একটি গুরুত্বপূর্ণ টুল হলো millis() ফাংশন, যা সময় ট্র্যাক করার জন্য ব্যবহৃত হয়।

millis() ফাংশন

millis() ফাংশন Arduino বোর্ডটি চালু হওয়ার পর থেকে মোট মিলিসেকেন্ড পরিমাপ করে। এটি মূলত একটি কাউন্টার হিসেবে কাজ করে যা নিরবচ্ছিন্নভাবে সময় গুণে।

গঠন

unsigned long currentMillis = millis();
  • ফলাফল: প্রোগ্রাম শুরু হওয়ার পর থেকে চলমান মিলিসেকেন্ডের সংখ্যা রিটার্ন করে।

উদাহরণ

void setup() {
  Serial.begin(9600);
}

void loop() {
  unsigned long currentMillis = millis();
  Serial.println(currentMillis); // সময় প্রিন্ট করা
  delay(1000); // ১ সেকেন্ড অপেক্ষা
}

Multitasking এর জন্য millis() ফাংশনের ব্যবহার

Arduino-তে multitasking করার জন্য, millis() ফাংশন ব্যবহার করে টাইমার সিস্টেম তৈরি করা যায়, যা আপনাকে বিভিন্ন কাজ সম্পাদন করতে দেয়, যেমন LED নিয়ন্ত্রণ, সেন্সর পড়া ইত্যাদি।

উদাহরণ: LED ব্লিঙ্কিং এবং সিরিয়াল প্রিন্টিং

const int ledPin = 13;
unsigned long previousMillis = 0; // শেষ ব্লিঙ্কের সময়
const long interval = 1000; // ১ সেকেন্ডের সময়

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  unsigned long currentMillis = millis();

  // LED ব্লিঙ্কিং
  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis; // শেষ ব্লিঙ্কের সময় আপডেট করা
    digitalWrite(ledPin, !digitalRead(ledPin)); // LED অবস্থা পরিবর্তন করা
  }

  // সিরিয়াল প্রিন্টিং
  Serial.println(currentMillis); // সময় প্রিন্ট করা
}

উদাহরণ বিশ্লেষণ

  • LED ব্লিঙ্কিং: millis() ফাংশন ব্যবহার করে নির্দিষ্ট সময় অন্তর LED-এর অবস্থা পরিবর্তন করা হচ্ছে।
  • সিরিয়াল প্রিন্টিং: LED ব্লিঙ্ক হওয়ার সময়, millis() ফাংশনের মাধ্যমে সময়কে প্রিন্ট করা হচ্ছে।
  • কোনো delay() ব্যবহার করা হয়নি: এতে loop() ফাংশন অব্যাহত থাকে, এবং একাধিক কাজ একসাথে সম্পাদন করা যায়।

Multitasking এর সুবিধা

  1. একাধিক কার্যক্রম: একসাথে বিভিন্ন কার্যক্রম সম্পাদন করার ক্ষমতা।
  2. প্রতিক্রিয়াশীলতা: ইভেন্টস বা ইনপুটের উপর দ্রুত প্রতিক্রিয়া জানাতে সক্ষমতা।
  3. পাওয়ার সাশ্রয়: পাওয়ার সাশ্রয়ী যন্ত্রপাতি ব্যবহার করে বোর্ডের সামগ্রিক কার্যকারিতা বাড়ানো।

সীমাবদ্ধতা

  • সাধারণ থ্রেডিং সাপোর্ট নেই: Arduino এর হার্ডওয়্যারটি সিঙ্গল থ্রেডেড, তাই প্রকৃত মাল্টিটাস্কিং নয়।
  • জটিলতা: কোডের জটিলতা বাড়তে পারে যখন একাধিক কাজ একই সময়ে করা হয়।

millis() ফাংশন ব্যবহার করে Arduino প্রোগ্রামিংয়ে multitasking কার্যকরীভাবে করা যায়। এটি সঠিক সময়ের সাথে বিভিন্ন কার্যক্রম সম্পাদন করতে সহায়তা করে এবং প্রোগ্রামারদের উন্নত মানের প্রকল্প তৈরি করতে সহায়ক।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion