ڈی سی موٹرز کو ٹی بی 6612 ایف این جی اور آرڈوینو کے ساتھ کنٹرول کرنا
اس ٹیوٹوریل میں، ہم سیکھیں گے کہ TB6612FNG موٹر ڈرائیور ماجیول کا استعمال کرتے ہوئے DC موٹرز کی رفتار اور سمت کو کیسے کنٹرول کیا جائے۔ یہ سیٹ اپ ہمیں دو موٹرز کو آزادانہ طور پر چلانے کی اجازت دے گا، جو پہیوں والے روبوٹس یا مشینی منصوبے بنانے کا ایک عملی طریقہ فراہم کرے گا۔ مزید برآں، ہم دریافت کریں گے کہ پلس وڈتھ ماڈیولیشن (PWM) کا استعمال کرتے ہوئے ہر موٹر کی رفتار کو درست طریقے سے کیسے کنٹرول کیا جائے، جس سے آپ کے منصوبے کی حرکت کی صلاحیتوں میں اضافہ ہوگا۔
اس گائیڈ کے دوران، ہم ایک Arduino بورڈ کے ساتھ TB6612FNG بریک آؤٹ بورڈ اور دو DC گیئر موٹرز استعمال کریں گے۔ TB6612FNG پرانے بائپولر ڈرائیورز جیسے L298N کے مقابلے میں ایک بہت بڑا اپ گریڈ ہے کیونکہ یہ اعلی کارکردگی والے MOSFETs استعمال کرتا ہے۔ یہ خاص طور پر بیٹری سے چلنے والی ایپلیکیشنز میں مفید ہے جہاں پائیداری اور بجلی کی کارکردگی کی ضرورت ہوتی ہے، کیونکہ یہ ڈرائیور زیادہ گرم ہونے یا بڑے ہیٹ سنک کی ضرورت کے بغیر موٹرز کو زیادہ طاقت فراہم کرتا ہے۔
سیٹ اپ اور پروگرامنگ کے بارے میں مزید وضاحت کے لیے، متعلقہ ویڈیو کو (ویڈیو میں 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 کی جگہ بہت زیادہ کارکردگی کے ساتھ لیتا ہے۔ |
-
مناسب وولٹیج کی سطح کو یقینی بنائیں (VCC کو اپنے Arduino کے 5V یا ESP32 کے 3.3V سے ملائیں)۔
-
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