L293D Dual DC Motor Controller কিভাবে ব্যবহার করবো?

পিন ডায়াগ্রামঃ

পিন দ্বারা সম্পূর্ণ বোর্ডে পাওয়ার সাপ্লাই হবে। এই পিনে ৭-১২ ভোল্ট সাপ্লাই দেওয়া যাবে। মনে রাখতে হবে, ৭ এর নিচে ভোল্টেজ হলে, বোর্ড কার্যকর হবেনা। VIN  সাপ্লাই দেওয়া যাবে দুইটা কানেক্টর ব্যবহার করে, ১। 2 Pin Blue Rail এবং 3 Pin Blue Connector.   পিন থেকে ৫ ভোল্টের আউটপুট পাওয়া যাবে। L293D Dual DC Motor Controller Red এর সকল GND পিন একই। বোর্ডে মোট ৭ টি GND পিন রয়েছে। এই পিনগুলো থেকে অন্য যে কোন বোর্ডেও সংযোগ দেওয়া যাবে। খুবই গুরুত্বপূর্ণ। এটি একটি তিন পিনের সাদা রেইল। ২ পিনের জাম্পার দ্বারা 5V এর পাশে সিলেক্ট করলে, মোটর ৫ ভোল্ট দিয়ে চলবে। অন্যদিকে জাম্পারকে Vin এর পাশে রাখলে, VIN এ যে ভোল্ট সাপ্লাই দিবো, সেটি দিয়ে মোটর চলবে।  দিয়ে স্পীড কন্ট্রোল হয়ে থাকে। এই দুইটি পিনকে Arduino এর PWM পিনে কানেক্ট করতে হবে। যদি স্পীড কম বেশি করার প্রয়োজন না হয়, তাহলে এই দুইট পিনকে 5V এর সাথে কানেক্ট করে রাখতে হবে। পিনে High-Low করলে কিংবা Low-High ইনপুট দিলেই মোটর একবার ক্লকওয়াইজ একবার এন্টিক্লকওয়াইজ ঘুড়বে। একই সময় IN1, IN2 = High এবং IN1, IN2 = LOW সাপ্লাই দিলে মোটর ঘুড়বেনা। পিনে High-Low করলে কিংবা Low-High ইনপুট দিলেই মোটর একবার ক্লকওয়াইজ একবার এন্টিক্লকওয়াইজ ঘুড়বে। একই সময় IN3, IN4 = High এবং IN3, IN3 = LOW সাপ্লাই দিলে মোটর ঘুড়বেনা।  

প্রয়োজনীয় কম্পোনেন্টঃ

ক্রমিক নং কম্পোনেন্টের নাম মডেল পরিমাণ লিংক
L293D Dual DC Motor Controller Red ROB-00391 ১ টি কম্পোনেন্ট লিংক
Arduino Uno R3 (China) ARD-00028 ১ টি কম্পোনেন্ট লিংক
Male To Female Jumper Wire – Single C&C-00071 ৮ টি কম্পোনেন্ট লিংক

সার্কিট কানেকশনঃ

Arduino এর সাথে মোটর কন্ট্রোলারের কানেকশন নিশ্চিত করতে হবে নিম্নরূপ ভাবে।   Arduino Uno এর সাথে L293D Dual DC Motor Controller এর কানেকশন সম্পন্ন করতে হবে। কানেকশনের জন্য জাম্পার ওয়্যার ব্যবহার করতে হবে। যদি মোটর ৫ ভোল্ট সম্পন্ন হয় তাহলে VS সিলেকশন 5V এর দিকে রাখতে হবে। অন্যথা Vin এর দিকে। প্রোগ্রাম আপলোড দেওয়ার পূর্বে সকল সুইচ বন্ধ রাখতে হবে। এবার Arduino Uno কোডটি আপলোড দিয়ে কন্ট্রোলারকে পাওয়ার দিতে হবে POWER সুইচ অন করে। সর্বশেষ Motor সুইচটি করলেই রোবট চলতে শুরু করবে। এই কোডটিতে PWM ব্যবহার করা হয়েছে। যদি PWM ব্যবহার করতে না চাই, তার জন্য ENA ও ENB এর কানেকশন Arduino থেকে খুলে ফেলতে হবে। তারপর ২ পিনের জাম্পার দিয়ে ENA ও ENB পিনকে 5V এর সাথে কানেক্ট করে রাখতে হবে মার্ক করা ছবির মত করে।

ডেমো কোডঃ

#define IN1 9     //Define Arduino_PIN-9 as IN1
#define IN2 8     //Define Arduino_PIN-8 as IN2
#define IN3 7     //Define Arduino_PIN-7 as IN3
#define IN4 6     //Define Arduino_PIN-6 as IN4
#define ENA 10    //Define Arduino_PWM_PIN-10 as ENA
#define ENB 5     //Define Arduino_PWM_PIN-5 as ENB

void setup()
{
  pinMode(IN1,OUTPUT);    //IN1 Pin set for MotorA Output-1.
  pinMode(IN2,OUTPUT);    //IN2 Pin set for MotorA Output-2.
  pinMode(IN3,OUTPUT);    //IN3 Pin set for MotorB Output-3.
  pinMode(IN4,OUTPUT);    //IN4 Pin set for MotorB Output-4.
  pinMode(ENA,OUTPUT);    //ENA Pin set for PWM of MotorA Output.
  pinMode(ENB,OUTPUT);    //ENB Pin set for PWM of MotorB Output.

  digitalWrite(ENA,HIGH);    //ENB Pin set for HIGH.
  digitalWrite(ENB,HIGH);    //ENB Pin set for HIGH.

  Serial.begin(9600);        // Start serial monitor  for Serial Communication
}

void forward()
{
     digitalWrite(IN1,HIGH);  //turn DC Motor A move clockwise
     digitalWrite(IN2,LOW);
     digitalWrite(IN3,HIGH);  //turn DC Motor B move clockwise
     digitalWrite(IN4,LOW);
}

void backward()
{
     digitalWrite(IN1,LOW);
     digitalWrite(IN2,HIGH);  //turn DC Motor A move anticlockwise
     digitalWrite(IN3,LOW);
     digitalWrite(IN4,HIGH);  //turn DC Motor B move anticlockwise
}

void quick_left()
{
     digitalWrite(IN1,HIGH);  //turn DC Motor A move clockwise
     digitalWrite(IN2,LOW);
     digitalWrite(IN3,LOW);   //turn DC Motor B move anticlockwise
     digitalWrite(IN4,HIGH);
}

void quick_right()
{
     digitalWrite(IN1,LOW);    //turn DC Motor A move anticlockwise
     digitalWrite(IN2,HIGH);
     digitalWrite(IN3,HIGH);   //turn DC Motor B move clockwise
     digitalWrite(IN4,LOW);
}

void slow_left_forward()
{
     digitalWrite(IN1,HIGH);  //turn DC Motor A move clockwise
     digitalWrite(IN2,LOW);
     digitalWrite(IN3,LOW);   //stop DC Motor B.
     digitalWrite(IN4,LOW);
}

void  slow_right_forward()
{
     digitalWrite(IN1,LOW);   //stop DC Motor A.
     digitalWrite(IN2,LOW);
     digitalWrite(IN3,HIGH);  //turn DC Motor B move clockwise
     digitalWrite(IN4,LOW);
}

void slow_left_backward()
{
     digitalWrite(IN1,LOW);   //turn DC Motor A move anticlockwise
     digitalWrite(IN2,HIGH);
     digitalWrite(IN3,LOW);   //stop DC Motor B.
     digitalWrite(IN4,LOW);
}

void  slow_right_backward()
{
     digitalWrite(IN1,LOW);   //stop DC Motor A.
     digitalWrite(IN2,LOW);
     digitalWrite(IN3,LOW);   //turn DC Motor B move anticlockwise
     digitalWrite(IN4,HIGH);
}

void stop()
{
     digitalWrite(IN1,LOW);    // stop DC Motor A.
     digitalWrite(IN2,LOW);
     digitalWrite(IN3,LOW);    // stop DC Motor B.
     digitalWrite(IN4,LOW);
}

void loop()
{
  forward();
  Serial.println("forward");
  delay(2000);
  stop();
  backward();
  Serial.println("backward");
  delay(2000);
  stop();
  quick_right();
  Serial.println("quick_right");
  delay(2000);
  stop();
  quick_left();
  Serial.println("quick_left");
  delay(2000);
  stop();
}
   

আউটপুটঃ

কোড আপলোড করে পাওয়ার দেওয়ার পর-
  1. রোবট সামনের দিকে  যাবে, ২ সেকেন্ড অপেক্ষা করবে
  2. পিছনের দিকে আসবে, ২ সেকেন্ড অপেক্ষা করবে
  3. এবার রোবট ডানে ঘুরবে, ২ সেকেন্ড অপেক্ষা করবে
  4. বামে ঘুরবে, ২ সেকেন্ড অপেক্ষা করে বন্ধ হয়ে যাবে।
তারপর আবার ১ নং থেকে শুরু করবে। প্রোডাক্ট ডেমো ভিডিও: [embed]https://www.youtube.com/watch?v=bJxL07-8RZc&feature=youtu.be[/embed]]]>

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.