کوڈ تلاش کریں

اردوینو کوڈ برائے L9110 ڈوئل ڈی سی موٹر کنٹرولر ماجیول

اردوینو کوڈ برائے 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-wirign-for-L9110-motor-driver

کوڈ مثالیں اور واک تھرو

سیٹ اپ فنکشن میں، ہمیں کنٹرول پنز کو آؤٹ پٹ کے طور پر ڈیفائن کرنے کی ضرورت ہے۔ یہ 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 پر)۔

تصاویر

L9110_motor_driver_module-1
L9110_motor_driver_module-1
L9110_motor_driver_module-12
L9110_motor_driver_module-12
L9110_motor_driver_module-3
L9110_motor_driver_module-3
Arduino-wirign-for-L9110-motor-driver
Arduino-wirign-for-L9110-motor-driver
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

آپ کو جن چیزوں کی ضرورت ہو سکتی ہے

وسائل اور حوالہ جات

ابھی تک کوئی وسائل نہیں۔

فائلیں📁

ڈیٹا شیٹ (پی ڈی ایف)

  • L9110 Motor driver module datasheet
    L9110 motor driver module datasheet covering pinout, specifications, and application circuit for driving DC motors.
    robojax_L9110_datasheet.pdf 0.20 MB

فریٹزنگ فائل