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

১। প্রোডাক্ট পরিচিতি

L293D Dual DC Motor Controller -High Quality এটি একটি মোটর ড্রাইভার। যা তৈরি করা হয়েছে একটি L293D Motor Driver আইসি ব্যবহার করে। এই কন্ট্রোলার ব্যবহার করে একসাথে দুটি ডিসি মোটর খুব সহজেই ড্রাইভ করা যাবে। তবে একটা বিষয় লক্ষ রাখতে হবে যে, এর কারন্ট ও ভোল্টেজ রেটিং। যদি কেউ L293D Dual DC Motor Controller-High Quality এর রেটিং এর অধিক রেটিং সম্পন্ন মোটর ব্যবহার করতে চায় তাহলে এটি কাজ করবে না।

Specification:

Operating Voltage: 7V-15V

Motor Voltage Selection = VS (5V or Vin)

DPDT Power Switch

DPTD Dual Motor Enable Switch

Power Input Terminal 3 Pin (VIN – GND – 5V)

Signal Input Terminal Pin (IN1, IN2, IN3 & IN4)

PWM Input Terminal (ENA & ENB)

Output Terminal (Motor A & Motor B)

4 Pins 5V Bus  for another boards.

4 Pins & 2 Pins GND Bus  for another boards.

VIN Bus

ধাপ-১ঃ কম্পোনেন্ট সংগ্রহ

প্রয়োজনীয় কম্পোনেন্ট গুলো তালিকা থেকে সংগ্রহ করতে হবে।

প্রয়োজনীয় যন্ত্রপাতি পরিমাণ Link
L293D Dual DC Motor Controller-High Quality ১ টি https://bit.ly/2tGQuGY
Arduino Uno R3 (China) ১ টি https://bit.ly/1BpjymQ
Male To Female Jumper Wire – Single ৮ টি https://bit.ly/2N4yKyb

ধাপ-২ঃ সার্কিট কানেকশন

Arduino Uno এর সাথে মোটর কন্ট্রোলারের কানেকশন নিশ্চিত করতে হবে নিম্নরূপ ভাবে।

Arduino Uno L293D Dual DC Motor Controller-High Quality
9 IN1
8 IN2
7 IN3
6 IN4
10 ENA
5 ENB
Vin VIN
GND GND

সংযোগ প্রক্রিয়াঃ 

উপরের চার্ট দেখে Arduino Uno এর সাথে L293D Dual DC Motor Controller-High Quality এর কানেকশন সম্পন্ন করতে হবে। কানেকশনের জন্য জাম্পার ওয়্যার ব্যবহার করতে হবে। যদি মোটর ৫ ভোল্ট সম্পন্ন হয় তাহলে 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. বামে ঘুরবে, ২ সেকেন্ড অপেক্ষা করে বন্ধ হয়ে যাবে।

তারপর আবার ১ নং থেকে শুরু করবে।

প্রোডাক্ট ডেমো ভিডিও:

Nur Mohammad

Engineer Techshop Bangladesh E-mail: [email protected]

Leave a Reply

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