L293D Dual DC Motor Controller কিভাবে ব্যবহার করবো?
L293D Dual DC Motor Controller এটি একটি মোটর ড্রাইভার। যা তৈরি করা হয়েছে একটি L293D Motor Driver আইসি ব্যবহার করে। এই কন্ট্রোলার ব্যবহার করে একসাথে দুটি ডিসি মোটর খুব সহজেই ড্রাইভ করা যাবে। তবে একটা বিষয় লক্ষ রাখতে হবে যে, এর কারন্ট ও ভোল্টেজ রেটিং। যদি কেউ L293D Dual DC Motor Controller এর রেটিং এর অধিক রেটিং সম্পন্ন মোটর ব্যবহার করতে চায় তাহলে এটি কাজ করবে না।
পিন ডায়াগ্রামঃ
প্রয়োজনীয় কম্পোনেন্টঃ
ক্রমিক নং | কম্পোনেন্টের নাম | মডেল | পরিমাণ | লিংক |
১ | 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(); }
আউটপুটঃ
কোড আপলোড করে পাওয়ার দেওয়ার পর-
- রোবট সামনের দিকে যাবে, ২ সেকেন্ড অপেক্ষা করবে
- পিছনের দিকে আসবে, ২ সেকেন্ড অপেক্ষা করবে
- এবার রোবট ডানে ঘুরবে, ২ সেকেন্ড অপেক্ষা করবে
- বামে ঘুরবে, ২ সেকেন্ড অপেক্ষা করে বন্ধ হয়ে যাবে।
তারপর আবার ১ নং থেকে শুরু করবে।
প্রোডাক্ট ডেমো ভিডিও: