Blink LED with Arduino | আরডুইনো বেসিক-৩ঃ এলইডি ব্লিংকিং
এবার শুরু হবে আরডুইনো দিয়ে আমাদের প্রথম এক্সপেরিমেন্ট-এলইডি ব্লিংকিং। অর্থ্যাৎ একটি এলইডি নির্দিষ্ট সময় পরপর জ্বলানেভা করবে এবং করতেই থাকবে। এই কোডটিসহ আরও অনেক এক্সপেরিমেন্টের কোড আরডুইনো আইডিইর এক্সামপলেই দেওয়া আছে। আরডুইনো আইডিইর Examples অপশনে গিয়ে Basics এ গিয়ে Blink এ ক্লিক করলেই এলইডি ব্লিংকিং এর কোডটি ওপেন হবে।
আগেই উল্লেখ করা হয়েছে এই এক্সপেরিমেন্টে একটি এলইডি ব্লিংক করা হবে। এই এলইডি কিন্তু আমরা আলাদাভাবে নেব না। এটি আরডুইনো বোর্ডেই দেওয়া আছে। আরডুইনো বোর্ডের ১৩ নং পিনের সাথে একটি এলইডি যুক্ত করা আছে। আরডুইনো উনোসহ অন্যান্য সকল আরডুইনোতেই তেরো নাম্বার পিনে একটি এলইডি যুক্ত থাকে। একে বোর্ডে L দ্বারা চিহ্নিত করা থাকে। এই L চিহ্নিত এলইডিকেই আমরা প্রতি এক সেকেন্ড পরপর জ্বালাব এবং নেভাব। অর্থ্যাৎ এই তেরো নাম্বার পিনটিকে যদি আমরা প্রতি এক সেকেন্ড পরপর হাই এবং লো করি তাহলেই এই পিনে যুক্ত এলইডি একবার জ্বলবে , আবার নিভবে, এভাবে জ্বলানেভা করতেই থাকবে।
বিল্ট ইন লাইব্রেরি ও ফাংশনঃ
আরডুইনোর অনেক বিল্ট ইন ফাংশন ও লাইব্রেরি আছে। এগুলো আরডুইনো আইডিইতে ইন-বিল্ট। অর্থ্যাৎ, আপনি যখন আপনার কম্পিউটারে আরডুইনো আইডিই ইন্সটল করবেন তখন এই লাইব্রেরি ও ফাংশনগুলোও সাথে সাথেই ইন্সটল হয়ে যাবে।
এগুলোকে আলাদাভাবে লেখার বা ইন্সটল করার কোনো প্রয়োজন নেই।
ইন-বিল্ট ফাংশনগুলো আরডুইনো আইডিইতে লিখলে কমলা রঙ দিয়ে চিহ্নিত হয়। ইন –বিল্ট ফাংশনগুলোর মধ্যে তিনটি ফাংশন নিয়ে কাজ করব। একটি হচ্ছে PinMode , digitalWrite এবং delay.
প্রোগ্রামের শুরুতে setup ফাংশনে আমরা PinMode ফাংশনটি ডিক্লেয়ার করব। PinMode ফাংশনটি লেখা হয় এভাবে,
pinMode(pin number, mode);
এখানে,
Pin number= আরডুইনোর যত নম্বর পিনকে ডিক্লেয়ার করা হবে।
Mode=ইনপুট অথবা আউটপুট।
এখানে, আমরা আরডুইনোর তেরো নাম্বার পিনকে পর্যায়ক্রমে হাই ও লো করব।
এজন্য, তেরো নম্বর পিনটিকে আউটপুট পিন হিসেবে ডিক্লেয়ার করতে হবে। তাই, আমাদের pinMode ফাংশনটি হবে এরকম-
pinMode(13,OUTPUT);
তেরো নাম্বার পিনে একটি এলইডি সংযুক্ত থাকায় আরডুইনো আইডিইতে তেরো নাম্বার পিনকে ডিফাইন করা হয়েছে LED_BUILTIN নামে।
pinMode(LED_BUILTIN,OUTPUT) আর pinMode(13,OUTPUT) আসলে একই কথা। আমাদের সেটআপ ফাংশনটি এই এক লাইনেই শেষ।
লুপ ফাংশনঃ
লুপ ফাংশনে আমরা সেটাই লিখব, যে কাজটা আমরা চাইছি বারবার হোক। যেমন এই এক্সপেরিমেন্টে আমরা চাইছি এক সেকেন্ড পরপর ১৩ নং পিনের এলইডি জ্বলুক আর নিভুক। এভাবে চলতেই থাকুক যতক্ষন না আরডুইনোতে অন্যকোনো কোড আপলোড করা হয়।
তাই আমরা এলইডি জ্বলানেভার প্রোগ্রামটুকু লিখব এই লুপ ফাংশনের ভিতরেই। এজন্য আমাদের প্রয়োজন digitalWrite ফাংশন। ফাংশনটি লেখা হয় এভাবে,
digitalWrite(pin number, value);
এখানে, Value=HIGH অথবা LOW.
এবার আসি delay() ফাংশনবিষয়ক আলোচনায়। ডিলে ফাংশনের প্যারামিটার হল, মিলিসেকেন্ড। delay(1000) লেখার অর্থ হল আরডুইনোর প্রসেসরকে ১০০০ মিলিসেকেন্ড অর্থ্যাৎ এক সেকেন্ডের জন্য অপেক্ষা করতে বলা।
আমাদের প্রোগ্রামটা হবে এমন, প্রথমে আমরা তেরো নম্বর পিনকে হাই করব। তারপর এক সেকেন্ড যাবৎ পিনটিকে হাই করেই রাখব। এক সেকেন্ড পর পিনটিকে লো করব। এক সেকেন্ড ধরে লো করেই রাখব। এক সেকেন্ড পরে আবার হাই করব। এভাবে এক সেকেন্ড পরপর তেরো নম্বর পিনটি পর্যায়ক্রমে হাই ও লো হতেই থাকবে। আমাদের লুপ ফাংশনটি হবে এরকমঃ
Void loop()
{
digitalWrite(LED_BUILTIN,HIGH);
delay(1000);
digitalWrite(LED_BUILTIN,LOW);
delay(1000);
}
আগের পর্বে দেখানো নিয়ম অনুযায়ী এই প্রোগ্রামটি আরডুইনোতে আপলোড করলে আমরা দেখতে পাব এক সেকেন্ড পরপর L চিহ্নিত এলইডি জ্বলছে আর নিভছে।
যদি আমরা চাই তাহলে delay ফাংশনের প্যারামিটার বাড়িয়ে কমিয়ে যেমন delay(500), delay(2000) এলইডি জ্বলানেভার মধ্যবর্তী সময় কমাতে বা বাড়াতে পারি।