TB6612FNG এবং Arduino দিয়ে DC মোটর নিয়ন্ত্রণ
এই টিউটোরিয়ালে, আমরা TB6612FNG মোটর ড্রাইভার মডিউল ব্যবহার করে DC মোটরের গতি এবং দিক নিয়ন্ত্রণ করতে শিখব। এই সেটআপটি আমাদের দুটি মোটর স্বাধীনভাবে চালানোর সুযোগ দেবে, যা চাকাযুক্ত রোবট বা যান্ত্রিক প্রকল্প তৈরির জন্য একটি কার্যকরী উপায় প্রদান করবে। অতিরিক্তভাবে, আমরা পালস উইডথ মডুলেশন (PWM) ব্যবহার করে প্রতিটি মোটরের গতি সঠিকভাবে নিয়ন্ত্রণ করার পদ্ধতি অন্বেষণ করব, যা আপনার প্রকল্পের চলাচলের ক্ষমতা বৃদ্ধি করবে।
এই গাইড জুড়ে, আমরা একটি Arduino বোর্ডের সাথে TB6612FNG ব্রেকআউট বোর্ড এবং দুটি DC গিয়ার মোটর ব্যবহার করব। TB6612FNG হল পুরানো বাইপোলার ড্রাইভার যেমন L298N-এর তুলনায় একটি বিশাল উন্নতি কারণ এটি উচ্চ-দক্ষতা MOSFET ব্যবহার করে। এটি ব্যাটারি-চালিত অ্যাপ্লিকেশনগুলিতে বিশেষভাবে কার্যকর যেখানে স্থায়িত্ব এবং পাওয়ার দক্ষতা প্রয়োজন, কারণ এই ড্রাইভারটি অতিরিক্ত গরম না হয়ে বা বিশাল হিটসিংকের প্রয়োজন ছাড়াই মোটরগুলিতে আরও বেশি শক্তি সরবরাহ করে।
সেটআপ এবং প্রোগ্রামিং সম্পর্কে আরও স্পষ্টতার জন্য, (ভিডিওতে 00:00 সময়ে) সংশ্লিষ্ট ভিডিওটি দেখতে ভুলবেন না।
হার্ডওয়্যার ব্যাখ্যা
এই প্রকল্পের প্রধান উপাদানগুলির মধ্যে রয়েছে TB6612FNG মোটর ড্রাইভার, একটি মাইক্রোকন্ট্রোলার (Arduino), এবং দুটি DC মোটর। TB6612FNG ড্রাইভার Arduino থেকে কম-কারেন্ট লজিক সিগন্যাল গ্রহণ করে এবং সেগুলি ব্যবহার করে ব্যাটারি থেকে মোটরগুলিতে উচ্চ-কারেন্ট পাওয়ার সুইচ করে। এতে সাধারণত লজিক পাওয়ার, মোটর পাওয়ার, দিক নিয়ন্ত্রণ (AIN1, AIN2, BIN1, BIN2) এবং গতি নিয়ন্ত্রণের (PWMA, PWMB) জন্য ডেডিকেটেড পিন থাকে।
DC মোটরগুলি ড্রাইভারের আউটপুট পিন (A01/A02 এবং B01/B02) থেকে মডুলেটেড পাওয়ার গ্রহণ করে ঘোরে। স্ট্যান্ডবাই পিন (STBY) একটি মাস্টার সুইচ হিসাবে কাজ করে, যা মোটরগুলি দ্রুত নিষ্ক্রিয় করার এবং চিপটিকে কম-পাওয়ার স্লিপ অবস্থায় রাখার একটি দ্রুত উপায় প্রদান করে। ড্রাইভ সিস্টেমটি মসৃণ এবং দক্ষভাবে কাজ করে তা নিশ্চিত করতে প্রতিটি উপাদান গুরুত্বপূর্ণ ভূমিকা পালন করে।
ডেটাশিট বিবরণ
|
প্রস্তুতকারক |
Toshiba (IC) / বিভিন্ন (মডিউল) |
|---|---|
|
পার্ট নম্বর |
TB6612FNG |
|
লজিক/IO ভোল্টেজ |
2.7 V থেকে 5.5 V |
|
সাপ্লাই ভোল্টেজ (VM) |
2.7 V থেকে 15 V |
|
আউটপুট কারেন্ট (প্রতি চ্যানেল) |
1.2 A ধারাবাহিক |
|
পিক কারেন্ট (প্রতি চ্যানেল) |
3.2 A |
|
PWM ফ্রিকোয়েন্সি নির্দেশনা |
100 kHz পর্যন্ত |
|
ইনপুট লজিক থ্রেশহোল্ড |
উচ্চ: > 2.0V, নিম্ন: < 0.8V (5V VCC-তে) |
|
ভোল্টেজ ড্রপ / RDS(on) / স্যাচুরেশন |
0.5 Ω (সাধারণ) |
|
থার্মাল সীমা |
অন্তর্নির্মিত থার্মাল শাটডাউন সার্কিট |
|
প্যাকেজ |
SSOP24 / ব্রেকআউট বোর্ড |
|
নোট / ভেরিয়েন্ট |
L298N-কে অনেক বেশি দক্ষতার সাথে প্রতিস্থাপন করে। |
-
সঠিক ভোল্টেজ স্তর নিশ্চিত করুন (আপনার Arduino-এর 5V বা ESP32-এর 3.3V-এর সাথে VCC মেলান)।
-
VM (মোটর পাওয়ার) পিনের জন্য একটি পৃথক ব্যাটারি পাওয়ার সাপ্লাই প্রদান করুন।
-
অনিয়মিত আচরণ রোধ করতে সমস্ত গ্রাউন্ড (ব্যাটারি, Arduino, এবং মডিউল) একসাথে বাঁধতে সতর্ক থাকুন।
-
শর্ট সার্কিট প্রতিরোধ করতে পাওয়ার চালু করার আগে সংযোগগুলি পরীক্ষা করুন।
-
সর্বদা STBY পিনটি HIGH-এ টানুন, অন্যথায় মোটরগুলি চলবে না।
ওয়্যারিং নির্দেশাবলী
সমস্ত উপাদানের জন্য পাওয়ার এবং গ্রাউন্ড সংযোগ করে শুরু করুন। আপনার Arduino থেকে গ্রাউন্ডটি আপনার ব্রেডবোর্ডের নেতিবাচক রেলে সংযুক্ত করুন। তারপর, আপনার বাহ্যিক ব্যাটারির পজিটিভ লিডটি মোটর ড্রাইভারের VM পিনে এবং Arduino-এর 5V পিনটি ড্রাইভারের VCC পিনে সংযুক্ত করুন।
এরপর, লজিক ইনপুটগুলি ওয়্যার করুন: AIN1-কে Arduino-এর ডিজিটাল পিন 2-এ, AIN2-কে ডিজিটাল পিন 4-এ এবং PWMA-কে একটি PWM-সক্ষম পিনে, যেমন ডিজিটাল পিন 5-এ সংযুক্ত করুন। দ্বিতীয় মোটরের জন্য, BIN1-কে 7-এ, BIN2-কে 8-এ এবং PWMB-কে পিন 6-এ সংযুক্ত করুন। STBY পিনটি ডিজিটাল পিন 9-এর সাথে সংযুক্ত করতে ভুলবেন না।
মোটরগুলিতে আউটপুটের জন্য, আপনার প্রথম DC মোটরের দুটি টার্মিনাল A01 এবং A02-এর সাথে সংযুক্ত করুন। আপনার দ্বিতীয় DC মোটরটি B01 এবং B02-এর সাথে সংযুক্ত করুন। সমস্ত গ্রাউন্ড সাধারণ গ্রাউন্ড রেলে ভাগ করা আছে কিনা তা দুবার পরীক্ষা করুন।
কোড উদাহরণ ও ওয়াকথ্রু
আসুন প্রকল্পে ব্যবহৃত কিছু মূল শনাক্তকারী এবং কোড স্নিপেট দেখি। কোডের প্রথম অংশটি দিক নিয়ন্ত্রণ, গতি এবং স্ট্যান্ডবাইয়ের জন্য পিনগুলি初始化 করে:
const int AIN1 = 2;const int AIN2 = 4;const int PWMA = 5;const int STBY = 9;
এখানে, AIN1 এবং AIN2 মোটর A-এর দিক নিয়ন্ত্রণের জন্য নির্ধারিত, যখন PWMA PWM-এর মাধ্যমে গতি নিয়ন্ত্রণের জন্য ব্যবহৃত হবে। STBY Arduino-কে চিপটি জাগাতে বা ঘুমাতে দেওয়ার অনুমতি দেয়।
এরপর, সেটআপ ফাংশন এই পিনগুলিকে আউটপুট হিসাবে কনফিগার করে এবং চিপটি সক্ষম করে:
void setup() { pinMode(AIN1, OUTPUT); pinMode(AIN2, OUTPUT); pinMode(PWMA, OUTPUT); pinMode(STBY, OUTPUT); // মোটর ড্রাইভার সক্রিয় করুন digitalWrite(STBY, HIGH);}
pinMode() কমান্ডগুলো পিনগুলোকে আউটপুট মোডে সেট করে। STBY কে HIGH-এ সেট করলে TB6612FNG সক্রিয় থাকে এবং কমান্ড গ্রহণের জন্য প্রস্তুত থাকে।
লুপ ফাংশনে, আমরা মোটরকে পূর্ণ গতিতে সামনে ঘোরানো, থামানো এবং তারপর বিপরীত দিকে ঘোরানোর নির্দেশ দিই:
void loop() { // পূর্ণ গতিতে সামনে digitalWrite(AIN1, HIGH); digitalWrite(AIN2, LOW); analogWrite(PWMA, 255); delay(2000); // থামুন (কোস্ট) digitalWrite(AIN1, LOW); digitalWrite(AIN2, LOW); analogWrite(PWMA, 0); delay(1000);}
এখানে, AIN1 কে HIGH এবং AIN2 কে LOW সেট করলে অভ্যন্তরীণ H-ব্রিজ এক দিকে কারেন্ট প্রবাহিত করে। analogWrite(PWMA, 255) সর্বোচ্চ গতি প্রয়োগ করে। থামাতে, আমরা উভয় দিকনির্দেশক পিন LOW-এ টেনে আনি।
আরও বিস্তারিত এবং ডুয়াল মোটর নিয়ন্ত্রণ ও কাস্টম ফাংশনসহ সম্পূর্ণ কোডের জন্য, অনুগ্রহ করে নিবন্ধের নীচে লোড করা সম্পূর্ণ প্রোগ্রামটি দেখুন।
প্রদর্শন / কী আশা করবেন
ওয়্যারিং সম্পূর্ণ হলে এবং কোড আপলোড করা হলে, আপনি দেখতে পাবেন মোটরটি দুই সেকেন্ডের জন্য সামনে ঘুরছে, এক সেকেন্ডের জন্য বিরতি নিচ্ছে এবং চক্রটি পুনরাবৃত্তি করছে (যদি আপনি বিপরীত লজিক যোগ করেন, তবে এটি পরবর্তীতে পিছনের দিকে ঘুরবে)। নিশ্চিত করুন যে মোটরটি PWM সংকেতগুলিতে সঠিকভাবে সাড়া দিচ্ছে; যদি এটি পিছনের দিকে ঘোরে যখন আপনি সামনের দিকে যাওয়ার আশা করেন, তবে কেবল A01 এবং A02-এর সাথে সংযুক্ত তারগুলি অদলবদল করুন (ভিডিওতে 12:30-এ)।
সাধারণ ভুলগুলির মধ্যে রয়েছে STBY পিনটি HIGH-এ টানতে ভুলে যাওয়া, অথবা VM পিনে একটি ডেডিকেটেড ব্যাটারির পরিবর্তে সরাসরি Arduino-এর 5V পিন থেকে মোটরগুলিকে পাওয়ার করার চেষ্টা করা, যা ভারী লোডের অধীনে Arduino রিসেট হতে পারে। আপনার পাওয়ার সোর্স এবং শেয়ার্ড গ্রাউন্ডগুলি দুবার পরীক্ষা করতে ভুলবেন না।
আপনাকে যা প্রয়োজন হতে পারে
-
অ্যামাজন
-
অ্যামাজনBuy TB6612FNG or DRV8833 motor driver board from AliExpresss.click.aliexpress.com
সম্পদ ও রেফারেন্সসমূহ
এখনো কোনো সম্পদ নেই।
ফাইলসমূহ📁
ডেটাশিট (পিডিএফ)
-
motor driver TB6612FNG datasheet
motor_driver_TB6612FNG_datasheet.pdf0.20 MB