চলো শিখি আরডুইনো-ডিজিটাল পিনের ব্যবহার

<![CDATA[

ইলেক্ট্রনিক্স নিয়ে কাজ করতে অনেক পেশার মানুষই পছন্দ করেন। আর পছন্দ কেনো করবেন না! কারণ এই জগতে মানুষের এক ধরণের আনন্দের উৎস তৈরি হয়। ছোট ছোট কম্পোনেন্ট একটির সাথে অপরটি জুড়ে দিলেই চমৎকার কিছু ঘটে যায়। যখন নিজে নিজেই এই কাজগুলো করতে পারে, তখন আনন্দের আর সীমা থাকে না। কিন্তু সকল ক্ষেত্রে শুধু জুড়ে দিলেই তার কাঙ্ক্ষিত আউটপুট পাওয়া যায়না। এর জন্য দরকার হয়, একটি কম্পিউটার প্রোগ্রাম। এই প্রোগ্রামই হয়ে থাকে সার্কিটগুলো কিভাবে কাজ করবে তার পথ নির্দেশক।

যারা অন্য প্লাটফর্ম থেকে এসে এই ধরণের কাজগুলো করে থাকেন, তাদের দরকার কিছু সঠিক গাইড লাইন কিংবা রাস্তা।

উদ্দেশ্যঃ

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

 

এই সকল দিক বিবেচনা করে আমরা চেস্টা করেছি, ইলেক্ট্রনিক্স প্রেমীদের জন্য সিরিজ টিউটোরিয়ালের।  শুধু লিখে নয়, চেস্টা করেছি ভিডিও দ্বারা সম্পূর্ণ বিষয়টা বুঝিয়ে দিতে। ভিডিও দেখতে TechShop BD YouTube Channel এ কানেক্ট থাকার চেষ্টা করবো। ।

কি কি প্রয়োজন হবে?

এক্সপেরিমেন্ট করার পূর্বে আমাদের মূলত দুই ধরনের বিষয় সম্পর্কে ধারণা থাকতে হবে।-

১) হার্ডওয়্যার

২) সফটওয়্যার

হার্ডওয়্যার কি? 

হার্ডওয়্যার বলতে, যে সকল কম্পোনেন্ট ব্যবহার করে এক্সপেরিমেন্ট করা হবে। এর জন্য আমরা সিলেক্ট করেছি Arduino Advance Learning Kit এর সুবিধা হলো অনেকগুলো কম্পোনেন্ট একসাথে পাওয়া যাবে এবং এক্সপেরিমেন্ট করতে সহজ হবে। বিষয়টা এমন নয় যে ভিন্ন ভিন্ন কম্পোনেট দ্বারা এক্সপেরিমেন্ট করা যাবে না। অবশ্যই যাবে, যদি সার্কিট অনুযায়ী সকল কম্পোনেন্ট একজন ব্যাক্তির কাছে পূর্বে থেকেই থাকে, তাহলে তিনিও নিশ্চিন্তে এক্সপেরিমেন্ট করতে পারবেন।

কি কি কম্পোনেন্ট রয়েছে? 

  • Arduino Uno R3 SMD with USB Cable
  • MFRC-522 RFID Module
  • 1 Channel 5V Relay Module
  • DHT11 Temperature and Humidity Sensor
  • RTC Module
  • Servo Motor SG90
  • Stepper Motor with Driver
  • Active Buzzer
  • Passive Buzzer
  • 10K Potentiometer
  • Breadboard (830 Point)
  • Resistors (1K Ohm, 10K Ohm, 220 Ohm)
  • LED (Red, Green, Yellow)
  • LM35 Temperature Sensor
  • LDR 5mm
  • 7495 Shift Register
  • 7 Segment Display CC – 1 Digit (0.56in)
  • 16 Buttons Matrix Keyboard
  • RGB Three Color Module
  • 9V Battery Connector.
  • LCD Display (16X2) + 40 Pin Male Header (Unsoldered)
  • Breadboard Jumpers 30Pcs/pack
  • Roll Ball Switch
  • Button Switch with Cap
  • IR Remote and Receiver Head
  • Seven Segment 4 digit (0.36 inch)
  • 8*8 Dot Matrix
  • Joystick with Module
  • Water Sensor
  • Male to Female Jumper Wire 10 Pin
  • Sound Module

কম্পোনেন্ট চিত্রঃ

আজ একটি RGB LED Blink এক্সপেরিমেন্ট করবো। খুবই সহজ যদি একটু বুঝতে চেস্টা করি। এর জন্য শুরুতেই একটি সার্কিট ডায়াগ্রাম এবং কম্পোনেন্ট লিস্ট দেখে নেই।

ক্রমিক নং  কম্পোনেন্টের নাম পরিমাণ
Arduino Uno R3 SMD with USB Cable ১টি
RGB Three Color Module ১টি
Breadboard (830 Point) ১টি
Breadboard Jumpers প্রয়োজন অনুযায়ী।

সার্কিট ডায়াগ্রামঃ

 

সফটওয়্যার কি? 

সফটওয়্যার হলো প্রোগ্রাম বা কোড লিখার জন্য একটি প্লাটফর্ম। এখানে আমরা ব্যবহার করবো Arduino IDE . যেটি সম্পূর্ণ ফ্রি ভাবেই ডাউনলোড করা যাবে https://www.arduino.cc/ ওয়েব সাইট থেকে। এখানে গিয়ে SOFTWARE ট্যাবে ক্লিক করবো। এরপর DOWNLOAD OPTIONS থেকে সঠিক ফাইলটি ক্লিক করতে হবে। এরপর JUST DOWNLOAD দিলেই সফটওয়্যারটি ডাউনলোড হয়ে যাবে। সফটওয়ারের সাইজ 160MB এর মত হবে, যদি Windows ফাইলটি হয়ে থাকে।

সফটওয়্যার ইন্সটলেশনঃ

অন্য সকল সফটওয়্যারের মত করেই ইন্সটল করতে হবে। শুধুমাত্র একটা বিষয় লক্ষ রাখা যেনো কোন বিষয় স্কিপ না করি। কারণ এখানে বেশ কয়েকবার ড্রাইভার ইন্সটল করার জন্য অনুমতি দিতে হয়, এটা স্কিপ না করা যাবে না। ইন্সটল সম্পূর্ণ হলে Arduino IDE  চালু করতে হবে। এবং সঠিকভাবে চালু হলে নিচের window টি দেখতে পাবো।

Arduino Example

শুরুতেই যে বিষয়টি চোখে পড়বে তাহলো,  Examples. যেখানে বেশ অনেকগুলো প্রোগ্রাম রয়েছে। তারই মধ্যে একটি প্রোগ্রাম হলো Blink. এখানে শুধুমাত্র একটি পিনকে অন-অফ করে দেখানো হয়েছে। আমরা এই প্রোগ্রামকে আপডেট করে একটা RGB LED Blink প্রোগ্রাম তৈরি করবো। প্রোগ্রামটি ভালো করলে দেখতে পাবো,  void setup (), void loop () এর মধ্যেই শেষ হয়ে গিয়েছে। অল্প কিছু লাইন ব্যবহার করেই একটি LED অন-অফ করা হয়েছে।

 

Blink

pinMode ব্যবহার করে পিনটিকে আউটপুট হিসেবে এসাইন করা হয়েছে। LED_BUILTIN এখানে Arduino Board এর ১৩ নং পিনকে বুঝিয়েছে। এখানে যে কোন পিনের নাম সরাসরি লিখে দিলেও কাজ করবে। এইটুকুতে বুঝতে পারলাম আরডুইনোর ১৩ নং পিন আউটপুট হিসেবে কাজ করবে। ১৩ ব্যবহার করার বিশেষ কারণ হলো, বোর্ডের মধ্যে একটি বিল্টিন LED রয়েছে, অর্থাৎ আলাদা করে LED কানেক্ট না করেও প্রোগাম আপলোড দিলে কাজ করবে। 

void loop() এখানে digitalWrite দিয়ে সেই আউটপুট পিনে ভোল্টেজ পাঠানো হবে। হতে পারে তা HIGH কিংবা LOW. delay হলো কতক্ষণ অপেক্ষা করে পরবর্তী লাইনের কাজ শুরু করবে। এখানে খেয়াল করলে দেখবো তিন যায়গায় LED_BUILTIN লেখা হয়েছে। এখন যদি পিনের নাম্বার দিয়ে এসাইন করা হতো, তাহলেও প্রতিবার সেই পিন লিখে digitalWrite HIGH কিংবা LOW করতে হবে।

এই সমস্যা থেকে বেড়িতে আসতে চাইলে সরাসরি ভেরিয়েবল দিয়ে প্রোগ্রাম লিখার অভ্যাস গড়ে তুলতে হবে, ফলে ভুলত্রুটি হওয়ার সম্ভাবনা অনেকটাই কম হবে। RGB LED Blink প্রোগ্রামটি লক্ষ করলেই তা ক্লিয়ার হয়ে যাবে।

 

RGB LED Blink

RGB LED Blink প্রোগ্রামটিতে তিনটি ডিজিটাল পিনের ব্যবহার দেখানো হয়েছে। প্রত্যেকটা পিনের সাথে একটি করে LED কানেক্ট থাকবে। যেখানে আমরা একটি RGB LED ব্যবহার করেছি। সার্কিট লক্ষ্য করলে সম্পূর্ণ বিষয়টি বুঝা যাবে। নিচের প্রোগ্রামটিই আজকের এক্সপেরিমেন্টের জন্য। এখানে চারটি ভেরিএবল ব্যবহার করা হয়েছে। তিনটি LED এর জন্য একটি ডিলের জন্য। সম্পূর্ণ প্রোগ্রামটি নিচে দেওয়া রয়েছে। প্রোগ্রাম আপলোডের ক্ষেত্রে সঠিক বোর্ড এবং Com Port সিলেক্ট করতে হবে।

ডেমো কোডঃ

int red_LED   = 9;
int green_LED = 11;
int blue_LED  = 10;
int selfdelay = 1000;

void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(red_LED, OUTPUT);
  pinMode(green_LED, OUTPUT);
  pinMode(blue_LED, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {

    digitalWrite(red_LED, HIGH);
    digitalWrite(green_LED, LOW);
    digitalWrite(blue_LED, LOW);
    delay(selfdelay);
    digitalWrite(red_LED, LOW);
    digitalWrite(green_LED, HIGH);
    digitalWrite(blue_LED, LOW);
    delay(selfdelay);
    digitalWrite(red_LED, LOW);
    digitalWrite(green_LED, LOW);
    digitalWrite(blue_LED, HIGH);
    delay(selfdelay);
}

ভিডিওঃ

আরডুইনোর ব্যবহার দেখতে ক্লিক করুন। 

Servo মোটর নিয়ন্ত্রণ করি, Joystick Switch এর ব্যবহার শিখে।

Temperature and Humidity পরিমাপ শিখতে আরডুইনোর ব্যবহার

সতর্কতাঃ

প্রতিটি কম্পোনেন্ট বুঝে বুঝে ব্যবহার করতে হবে। সবগুলোর ক্ষেত্রে একই ধরণের পারফর্ম করবে না। সেই ক্ষেত্রে উচিৎ গুগলে সার্চ করে ডাটাশিট দেখে পড়ে নেওয়া। এর ফলে সঠিক ব্যবহার সম্পর্কে ধারণা লাভ করা যাবে। বেশ কিছু কম্পোনেন্ট রয়েছে যাদের ভুল কানেকশনের ফলে নস্ট হয়ে যাবে। সুতরাং এই বিষয়টি ভালো ভাবে লক্ষ্য রাখা।

]]>

Nur Mohammad
Nur Mohammad

Senior Research Engineer |
Techshop Bangladesh |
E-mail: nur@techshopbd.com

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.