امروز تو این آموزش یاد میگیرید چطوری با موبایل خودتون از طریق بلوتوث یک موتور DC رو کنترل کنید. این پروژه از جهات زیادی حائز اهمیت هستش، چون تو این پروژه ابتدا با اساس کار موتور های DC و تراشه L293D که درایور موتور هستش، آشنا میشوید. بعد از اون کار با ماژولهای بلوتوث رو یاد میگیرید و در آخر ایجاد ارتباط بین آردوینو با گوشی همراهتون. اگه نمیخواید از L293D استفاده کنید میتوانید از پل H بجای آن بهره ببرید ولی توصیه من این است که از این IC استفاده کنید تا هم حجم مدار کمتر بشه و با بورد سادهتری مواجه باشیم و همچنین با دیتاشیت این IC بیشتر آشنا بشید.
قطعاتی که باید تهیه کنید عبارتند از:
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” رو بزنید.
منبع: میکرودیزاینرالکترونیک