Arduino প্রোগ্রামিং বেসিক

Arduino এর জন্য লেখা যে কোন প্রগ্রামের দুইটা প্রধান ফাংশন থাকে
1
2
3
void setup(){
 
}
এবং
1
2
3
void loop() {
 
}
পিনমুড নির্ধারণ, ভেরিয়েবল ইনিশিয়ালাইজ করা, লাইব্র্রেরি ব্যবহার করা ইত্যাদি কাজের জন্য void setup(){} ফাংশন ব্যবহার করা হয় । প্রতিবার Arduino বোর্ডে পাওয়ার সাপ্লাই দেয়অর পর অথবা প্রতিবার Arduino বোর্ডের রিসেট বাটন চাপার পর void setup(){} ফাংশনটি মাত্র একবারের জন্য কাজ করে।
void loop(){} ফাংশনটির মধ্যেই প্রয়োজনীয় সকল কোড সমূহ রাখা হয়। void loop(){} ফাংশনটির মধ্যেকার সকল প্রোগ্রাম বারবার রিসাইকেল হতে থাকে।
Arduino এর জন্য লেখা যে কোন প্রোগ্রামকে sketch বলে । আমরা একটা sketch দেখি ।

এই প্রোগ্রামের হার্ডওয়ার সেটাপ একনজরে দেখে নেয়া যাক।
 
উপরের হর্ডওয়্যারটিতে মোট তিনটা LED ব্যবহার করা হয়েছে। প্রত্যেকটা LED কে 100ohm রেজিস্টরের মাধ্যমে Arduino বোর্ডের ১১নং, ১২নং এবং ১৩ নং ডিজিটাল ইনপুট পিন সমূহে যুক্ত করা হয়েছে।
উপরের প্রোগ্রামটি Arduino বোর্ডে লোড করলে প্রতিটা LED পর্যায়ক্রমিকভাবে জ্বলানেভা করতে থাকবে।

প্রোগ্রাম পর্যালোচনা

1
int led1 = 13;
এর মাধ্যমে একটা ইন্টিজার টাইপ ভেরিয়েবল ডিক্লেয়ার করা হয়েছে। সাধারণত কোন সংখ্যা বা ডাটা জমা রাখার জন্য ভেরিয়েবল ব্যবহার করা হয়। এখানে int হচ্ছে ভেরিয়েবলের ডাটা টাইপ, led1 ভেরিয়েবলের নাম । এবং 13 হচ্ছে ভেরিয়েবলের মান। অর্থাৎ প্রোগ্রামের মধ্যে কোথাও led1 ব্যবহার করলে তার মান 13 নির্দেশ করবে।
1
pinMode(led1, OUTPUT);
pinMode(); ফাংশন ব্যবহার করা হয় Arduino বোর্ডের বিশেষ কোন পিন কে ইনপুট হিসেবে ব্যবহার করা হবে না আউটপুট হিসেবে ব্যবহার করা হবে তা নির্দেশ করার জন্য।
pinMode(); ফাংশনের জন্য দুইটা অর্গুমেন্ট ব্যবহার করা হয়। একটা পিন নাম্বার নির্দেশ করে অন্যটা ঐ নাম্বারের পিনটা ইনপুট হবে না আউটপুট হবে তা নির্দেশ করে।
pinMode(led1, OUTPUT); এর মাধ্যমে led1 দ্বারা ১৩ নং পিনকে নির্দেশ করা হয়েছে আর OUTPUT দ্বারা বলা হয়েছে যে ১৩ নং পিনটি আউটপুট হিসেবে কাজ করবে।
আমরা যদি লেখি pinMode(9, INPUT); তাহলে ৯নং ডিজিটাল ইনপুট/আউটপুট পিনটি শুধুমাত্র ইনপুট হিসেবে কাজ করবে।
1
digitalWrite(led1, HIGH);
digitalWrite() ফাংশন ব্যবহার করা হয় কোন আউটপুট পিন কখন লজিক High আর কখন লজিক Low অবস্থায় থাকবে তা নির্ধারণ করার জন্য। এখানে কোন পিন লজিক High অবস্থায় আছে বলতে বোঝানো হচ্ছে ঐ পিনে পজিটিভ DC ভোল্টেজ আছে,  এই পজিটিভ DC ভোল্টেজ এর মান সাধারণত +5v বা তার কিছু কম হয়ে থাকে। কোন পিন লজিক Low অবস্থায় আছে বলতে বোঝানো হচ্ছে ঐ পিনে 0v রয়েছে।
digitalWrite(led1, HIGH); এর শাধ্যমে led1অর্থাৎ ১৩ নং পিন লজিক High অবস্থায় থাকবে। এই অবস্থায় ১৩ নং পিনে কোন LED সংযুক্ত থাকলে তা জ্বলতে থাকবে।
digitalWrite(led1, LOW); এর শাধ্যমে led1অর্থাৎ ১৩ নং পিন লজিক Low অবস্থায় থাকবে। এই অবস্থায় ১৩ নং পিনে কোন LED সংযুক্ত থাকলে তা জ্বলবে না।
1
delay(1000);
 delay(); ফাংশনটি ব্যবহার করে সময় বিরতি তৈরি করা হয়। এখানে আর্গুমেন্ট হিসেবে 1000 দেয়া হয়েছে এর অর্থ হচ্ছে 1000 মিলি সেকেন্ড বা ১ সেকেন্ড সময় বিরতি তৈরি করবে। আমরা যদি অর্ধ সেকেন্ড সময় বিরতি বা ডিলে তৈরি করতে চাই তাহলে লেখতে হবে। delay(500);

সম্পূর্ণ প্রোগ্রাম

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
int led1 = 13;
int led2 = 12;
int led3 = 11;
 
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
 
void loop() {
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
delay(1000);
digitalWrite(led2, HIGH);
digitalWrite(led1, LOW);
digitalWrite(led3, LOW);
delay(1000);
digitalWrite(led3, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led1, LOW);
delay(1000);
}

Find us on Facebook

Categories