مهندس موفق الکترونیک

کنترل موتور DC به وسیله بلوتوث

امروز تو این آموزش یاد می‌گیرین چطوری با موبایل خودتون از طریق بلوتوث یک موتور DC رو کنترل کنید. این پروژه از جهات زیادی حائز اهمیت هستش؛ چون تو این پروژه ابتدا با اساس کار موتور های DC و تراشه L293D که درایور موتور هستش، آشنا میشید. بعد از اون کار با ماژول‌های بلوتوث رو یاد می‌گیرید و در آخر ایجاد ارتباط بین آردوینو با گوشی همراهتون. اگه نمیخواین از L293D استفاده کنید میتونین از پل H بجاش بهره ببرین ولی توصیه من اینه که از این IC استفاده کنید تا هم حجم مدار کمتر بشه و با بورد ساده تری مواجه باشیم و همچنین با دیتاشیت این IC بیشتر آشنا بشید.

کنترل موتور DC به وسیله بلوتوث

قطعاتی که باید تهیه کنید عبارتند از:

Arduino Uno
Bluetooth Module ( for example: HC-05 or 06 )
Smartphone (any Android will work)
BlueTerm application
L293D IC
DC motor
Breadboard
Jumper Cables

دقت کنید که قبل اینکه کد رو روی آردوینوی خودتون آپلود کنید حتما اتصالات RX و TX بوردتون رو قطع کنید چون تو مرحله آپلود مشکل ایجاد می کنه و اجازه پروگرام شدن رو به آردوینو نمیده. بعد آپلود کد هم دقت کنید که tx و rx رو درست وصل کنید. اینجا پین tx ماژول بلوتوث باید به پین rx آردوینو وصل بشه و پین rx ماژول بلوتوث هم به پین tx آردوینو!

int motorPin1 = 3; // pin 2 on L293D IC
int motorPin2 = 4; // pin 7 on L293D IC
int enablePin = 5; // pin 1 on L293D IC
int state;
int flag=0;        //makes sure that the serial only prints once the state
 
void setup() {
    // sets the pins as outputs:
    pinMode(motorPin1, OUTPUT);
    pinMode(motorPin2, OUTPUT);
    pinMode(enablePin, OUTPUT);
    // sets enablePin high so that motor can turn on:
    digitalWrite(enablePin, HIGH);
    // initialize serial communication at 9600 bits per second:
    Serial.begin(9600);
}
 
void loop() {
    //if some date is sent, reads it and saves in state
    if(Serial.available() > 0){     
      state = Serial.read();   
      flag=0;
    }   
    // if the state is '0' the DC motor will turn off
    if (state == '0') {
        digitalWrite(motorPin1, LOW); // set pin 2 on L293D low
        digitalWrite(motorPin2, LOW); // set pin 7 on L293D low
        if(flag == 0){
          Serial.println("Motor: off");
          flag=1;
        }
    }
    // if the state is '1' the motor will turn right
    else if (state == '1') {
        digitalWrite(motorPin1, LOW); // set pin 2 on L293D low
        digitalWrite(motorPin2, HIGH); // set pin 7 on L293D high
        if(flag == 0){
          Serial.println("Motor: right");
          flag=1;
        }
    }
    // if the state is '2' the motor will turn left
    else if (state == '2') {
        digitalWrite(motorPin1, HIGH); // set pin 2 on L293D high
        digitalWrite(motorPin2, LOW); // set pin 7 on L293D low
        if(flag == 0){
          Serial.println("Motor: left");
          flag=1;
        }
    }
}


برای ارتباط بین تلفن همراه و ماژول بلوتوث از برنامه BlueTerm استفاده می کنیم. قابل ذکر هستش که این برنامه کاملا رایگانه و می‌تونین از استور اندرویید دانلود کنید. بعدش فقط لازمه که از طریق بلوتوث گوشیتون به ماژول بلوتوث وصل بشید. ما اینجا فقط سه تا دستور برای کنترل موتور DCمون داریم:

'0' - Turns off the DC motor
'1' - DC motor rotates to right
'2' - DC motor rotates to left

نکته: اگه ماژول بلوتوث HC-05 رمزی برای اجازه دسترسی درخواست کرد “1234” رو بزنید.

مطلب پیشنهادی:  پروژه تشخیص رنگ با آردوینو

مطلب مرتبط: آموزش برنامه نویسی اپلیکیشن کنترل با بلوتوث اندروید (به زبان خیلی ساده)

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

مطالعه دیگر جلسات این آموزش<< جلسه قبلی                    جلسه بعدی >>

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

13 دیدگاه

  1. سلام من میخوام با دوتا موتور کنترل کنم باید چیکارکنم؟

    • میلاد جهاندیده

      سلام ، خیلی ساده میایید و یک موتور دیگر به به مدار اضافه میکنید. این آیسی قابلیت کنترل دوتا موتور را داره. فقط میمونه برنامه نویسی شما که میتونید با دقت در برنامه بالا اونم خودتان کپی ، تغییر و اضافه کنید.

  2. قطعات مورد نیازو میشه فارسی بنویسین؟؟

    • میلاد جهاندیده

      برد آردویو مدل Uno
      ماژول بلوتوث ( برای مثال HC05 یا HC06 )
      موبایل یا تبلت اندرویدی بلوتوث دار
      اپلیکیشن بلوتوث مثلا ( BlueTerm )
      آیسی درایور موتور L293D
      موتور DC کوچک
      برد بورد
      کابل بردبردی یا سیم برای سیم کشی روی برد برد

  3. متشکر از اینهمه لزف و اطلاعات که بدون چشم داشتی دراختیار دوستان قرار میدهید
    بامید موفقیت در ساخت ایرانی جوان و اباد

  4. چگونه به عقب می گردد

  5. سلام من میخام با بلوتوث ماژولesp32 و نرم افزار اردینو سرعت موتورdc رو کنترل کنم باید چکار کنم
    قطعات مورد نیاز رو دارم کامل

  6. سلام
    اگه بخواهیم یک موتور دیگه به مدار وصل کنیم. اون رو باید به پایه چند آی سی وصل کنیم چون پایه ۳ و ۶ خوروجی یا output هستش که برای اتصال دو موتور هست ولی اینجا هر دو پین خروجی رو به یک موتور وصل کردین.!

  7. سلام تشکر از آموزش مفیدتون.
    هربار که بلوتوث قطع و وصل میشه (مثلا اردوینو یا گوشی زو خاموش کنیم) از اول مراحل اتصال بلوتوث رو باید انجام بدیم؟

  8. سلام خسته نباشید.برنامه ای که باید بریزیم فقط اون سه خط خاموش کردن و چپ و راست کردن هست یا اون چند خط بالا هم هست؟