اردوینو کوڈ برائے L9110 ڈوئل ڈی سی موٹر کنٹرولر ماجیول
اس ٹیوٹوریل میں، ہم سیکھیں گے کہ Arduino کے ساتھ L9110 ڈوئل موٹر کنٹرولر ماجیول استعمال کرکے دو DC موٹرز کو کیسے کنٹرول کیا جائے۔ یہ پروجیکٹ آپ کو ہر موٹر کی سمت اور رفتار کو منظم کرنے کے قابل بنائے گا، جس سے روبوٹکس اور آٹومیشن جیسی متنوع ایپلیکیشنز ممکن ہوں گی۔ اس گائیڈ کے اختتام تک، آپ کو واضح سمجھ آجائے گی کہ اجزاء کو کیسے وائر کیا جائے اور اپنی موٹرز کو آسانی سے چلانے کے لیے ضروری کوڈ کیسے لکھا جائے۔ اگر آپ کو وضاحت کی ضرورت ہو تو، ویڈیو ضرور دیکھیں (ویڈیو میں 00:00 پر)۔
ہارڈویئر کی وضاحت
L9110 ڈوئل DC موٹر کنٹرولر ماجیول آپ کو بیک وقت دو موٹرز کو کنٹرول کرنے کی اجازت دیتا ہے۔ اس میں دو H-برج سرکٹس شامل ہیں، جو آپ کو موٹر وولٹیج کی پولاریٹی کو ریورس کرنے کے قابل بناتے ہیں۔ اس کا مطلب ہے کہ آپ کنٹرول پنز کو ٹوگل کرکے آسانی سے ہر موٹر کی سمت تبدیل کر سکتے ہیں۔ ماجیول میں چار اہم پن ہیں: ہر موٹر کے لیے دو پن گردش کی سمت کو کنٹرول کرنے کے لیے۔ جب آپ ایک پن کو ہائی اور دوسرے کو لو سیٹ کرتے ہیں، تو موٹر ایک سمت میں گھومتی ہے؛ پن کی حالتوں کو ریورس کرنے سے یہ مخالف سمت میں گھومے گی۔ یہ لچک روبوٹکس جیسی ایپلیکیشنز کے لیے ضروری ہے، جہاں آپ کو موٹر کی حرکت پر قطعی کنٹرول کی ضرورت ہوتی ہے۔ڈیٹاشیٹ کی تفصیلات
| مینوفیکچرر | STMicroelectronics |
|---|---|
| پارٹ نمبر | L9110 |
| لاجک/آئی او وولٹیج | 2.5–5.5 V |
| سپلائی وولٹیج | 2.5–12 V |
| آؤٹ پٹ کرنٹ (فی چینل) | 1 A |
| پیک کرنٹ (فی چینل) | 2 A |
| PWM فریکوئنسی رہنمائی | 10 kHz |
| ان پٹ لاجک تھریشولڈز | 0.8 V (لو)، 2.0 V (ہائی) |
| وولٹیج ڈراپ / RDS(on) / سیچوریشن | 0.3 V at 1 A |
| تھرمل حدود | 150 °C |
| پیکیج | DIP-16 |
| نوٹس / ویریئنٹس | عام طور پر چھوٹے روبوٹکس پروجیکٹس میں استعمال ہوتا ہے۔ |
- مسلسل آپریشن کے لیے مناسب ہیٹ سنکنگ کو یقینی بنائیں۔
- بہترین کارکردگی کے لیے PWM سگنلز کو 10 kHz سے نیچے رکھیں۔
- شور کم کرنے کے لیے پاور کنکشنز کے قریب ڈیکپلنگ کیپسیٹرز استعمال کریں۔
- ریورس پولاریٹی کنکشنز سے ہوشیار رہیں؛ وہ ماجیول کو نقصان پہنچا سکتے ہیں۔
- زیادہ گرمی سے بچنے کے لیے ہمیشہ ریٹیڈ کرنٹ کی حدود چیک کریں۔
وائرنگ ہدایات
L9110 ڈوئل DC موٹر کنٹرولر ماجیول کو Arduino کے ساتھ وائر کرنے کے لیے، پاور پنز کو جوڑ کر شروع کریں۔ L9110 پر VCC پن کو Arduino کے 5V آؤٹ پٹ سے جوڑیں، اور GND پن کو Arduino کے کسی ایک گراؤنڈ پن سے جوڑیں۔ اگلا، موٹر A کے لیے، A1A پن کو Arduino کے ڈیجیٹل پن 2 سے اور A1B پن کو ڈیجیٹل پن 3 سے جوڑیں۔ پھر، موٹر B کے لیے، B1A پن کو ڈیجیٹل پن 8 سے اور B1B پن کو ڈیجیٹل پن 9 سے جوڑیں۔ یقینی بنائیں کہ موٹرز L9110 ماجیول پر اپنے متعلقہ آؤٹ پٹس سے صحیح طریقے سے جڑی ہوئی ہیں۔
کوڈ مثالیں اور واک تھرو
سیٹ اپ فنکشن میں، ہمیں کنٹرول پنز کو آؤٹ پٹ کے طور پر ڈیفائن کرنے کی ضرورت ہے۔ یہ Arduino کے لیے موٹر کی سمتوں کو مؤثر طریقے سے کنٹرول کرنے کے لیے ضروری ہے:void setup() {
pinMode(B1A,OUTPUT);// پن کو آؤٹ پٹ کے طور پر ڈیفائن کریں
pinMode(B1B,OUTPUT);
pinMode(A1A,OUTPUT);
pinMode(A1B,OUTPUT);
delay(3000);
}
یہ کوڈ سنیپٹ موٹر کنٹرول پنز کو سیٹ اپ کرتا ہے، اس بات کو یقینی بناتا ہے کہ Arduino L9110 ماجیول کو سگنل بھیج سکے۔
پروگرام کا مین لوپ موٹرز کو کنٹرول کرتا ہے `motorA` اور `motorB` فنکشنز کو مختلف پیرامیٹرز کے ساتھ کال کرکے سمت تبدیل کرنے کے لیے:
void loop() {
motorA('R');// موٹر A کو دائیں گھمائیں
delay(2000);
motorA('L');// موٹر A کو بائیں گھمائیں
delay(2000);
motorA('O');// موٹر A کو بند کریں
delay(2000);
...
}
اس اقتباس میں، موٹرز کو دائیں اور بائیں گھمایا جاتا ہے، درمیان میں تاخیر کے ساتھ تاکہ سمت کی تبدیلیوں کا مشاہدہ کیا جا سکے۔
`motorA` فنکشن ان پٹ سمت کی بنیاد پر موٹر A کو کنٹرول کرنے کے لیے ڈیفائن کیا گیا ہے:
void motorA(char d) {
if(d =='R'){
digitalWrite(A1A,LOW);
digitalWrite(A1B,HIGH);
} else if (d =='L'){
digitalWrite(A1A,HIGH);
digitalWrite(A1B,LOW);
} else {
digitalWrite(A1A,LOW);
digitalWrite(A1B,LOW);
}
}
یہ فنکشن فراہم کردہ سمت کو چیک کرتا ہے اور موٹر کو مطلوبہ سمت میں گھمانے یا بند کرنے کے لیے کنٹرول پنز کو اس کے مطابق سیٹ کرتا ہے۔
ڈیمونسٹریشن / کیا توقع کریں
جب آپ کوڈ چلائیں گے، تو آپ کو موٹرز بائیں اور دائیں گردشوں کے درمیان متبادل ہوتی نظر آئیں گی۔ تاخیر آپ کو سمت کی تبدیلیوں کو واضح طور پر دیکھنے کی اجازت دیتی ہے۔ ریورس کنکشنز جیسی عام غلطیوں سے محتاط رہیں، جو غیر متوقع رویے یا اجزاء کو نقصان پہنچا سکتی ہیں۔ اس کے علاوہ، یقینی بنائیں کہ آپ کی پاور سپلائی آپ کی استعمال کردہ موٹرز کے لیے مناسب ہے (ویڈیو میں 00:00 پر)۔
107-Arduino code for an L9110 dual DC motor controller module
زبان: C++
/*
* Display number on a seven-segment display with Arduino
* Written by Ahmad Shamshiri for Robojax.com
Date modified: Jun 11, 2018 at 17:20 in Ajax, Ontario, Canada
Watch video instructions for this code: https://youtu.be/-g6Q9lSHDzg
Code is provided for free AS IS without warranty.
You can share this code as long as you keep the above note intact.
*/
const int A1A = 2;//define pin 2 for A1A
const int A1B = 3;//define pin 3 for A1B
const int B1A = 8;//define pin 8 for B1A
const int B1B = 9;//define pin 9 for B1B
void setup() {
pinMode(B1A,OUTPUT);// define pin as output
pinMode(B1B,OUTPUT);
pinMode(A1A,OUTPUT);
pinMode(A1B,OUTPUT);
delay(3000);
}
void loop() {
motorA('R');// Turn motor A to RIGHT
delay(2000);
motorA('L');// Turn motor A to LEFT
delay(2000);
motorA('O');// Turn motor A OFF
delay(2000);
motorB('R');// Turn motor B to RIGHT
delay(2000);
motorB('L');// Turn motor B to LEFT
delay(2000);
motorB('O');// Turn motor B OFF
delay(2000);
motorA('R');// Turn motor A to RIGHT
motorB('R'); // Turn motor A to RIGHT
delay(2000);
motorA('L');// Turn motor A to LEFT
motorB('L');// Turn motor B to LEFT
delay(3000);
motorA('O');// Turn motor A OFF
motorB('O');// Turn motor B OFF
delay(5000);
}
/*
* @motorA
* Activation rotation of motor A
* d is the direction
* R = Right
* L = Left
*/
void motorA(char d)
{
if(d =='R'){
digitalWrite(A1A,LOW);
digitalWrite(A1B,HIGH);
}else if (d =='L'){
digitalWrite(A1A,HIGH);
digitalWrite(A1B,LOW);
}else{
//Robojax.com L9110 Motor Tutorial
// Turn motor OFF
digitalWrite(A1A,LOW);
digitalWrite(A1B,LOW);
}
}// motorA end
/*
* @motorB
* Activation rotation of motor B
* d is the direction
* R = Right
* L = Left
*/
void motorB(char d)
{
if(d =='R'){
digitalWrite(B1A,LOW);
digitalWrite(B1B,HIGH);
}else if(d =='L'){
digitalWrite(B1A,HIGH);
digitalWrite(B1B,LOW);
}else{
//Robojax.com L9110 Motor Tutorial
// Turn motor OFF
digitalWrite(B1A,LOW);
digitalWrite(B1B,LOW);
}
}// motorB end
آپ کو جن چیزوں کی ضرورت ہو سکتی ہے
-
ایمیزون
-
ای بے
-
علی ایکسپریسPurchase L9110 motor driver from AliExpress-2s.click.aliexpress.com
وسائل اور حوالہ جات
ابھی تک کوئی وسائل نہیں۔
فائلیں📁
ڈیٹا شیٹ (پی ڈی ایف)
-
L9110 Motor driver module datasheetL9110 motor driver module datasheet covering pinout, specifications, and application circuit for driving DC motors.
robojax_L9110_datasheet.pdf0.20 MB
فریٹزنگ فائل
-
L9110 H-bridge Motor driver module
L9110 H-bridge module.fzpz0.04 MB