• برچسب ها: آردوینو | سنسور
  • 0.0/5 rating (0 votes)
  • چهارشنبه, 21 مرداد 1394

آردوینو می تواند همزمان دو موتور سروو را با هم کنترل نماید. با ما همراه شوید تا نحوه ی اتصال و چگونگی سیم بندی و نحوه ی اتصالات این  مدار و همچنین کد نویسی آن را ببینید. با ما همراه شوید.

شکل زیر نحوه ی اتصالات و سیم بندی مدار را هنگامی که به طور همزمان دو سروو به آردوینو متصل است نشان می دهد.

دقت کنید که Ground آردوینو و Ground سروو ها به هم متصل باشد. همچنین از اتصالات درست پین های سروو اطمینان حاصل کنید.
سیم Ground سروو معمولا سیاه و یا قهوه ای است.
سیم تغذیه سروو معمولا قرمز بوده و در سروو های جدید این پین در وسط قرار گرفته است.
سیم سیگنال سروو سفید، زرد و یا نارنجی می باشد (البته در برخی سروو ها سیم تغذیه نارنجی است).
همچنین علاوه بر تغذیه ی 6 ولت برای سروو ها که توسط سری کردن چهار باتری قلمی تامین می شود، خود آردوینو نیز نیاز به تغذیه ی 9 ولتی دارد.
پس از اینکه از درستی اتصالات و سیم بندی مدار اطمینان حاصل کردید آردوینو را توسط کابل USB به کامپیوتر وصل نموده و نرم افزار آردوینو را اجرا کنید. در اسکچ جدید باز شده کد زیر را که برای تست کردن سروو ها نوشته شده است، کپی کرده و آن را کامپایل نمایید. در صورتی که خطایی در برنامه وجود نداشت می توانید برنامه را بر روی آردوینو آپلود کنید.
اگر موتورها حرکت نکردند دوباره سیم بندی و اتصالات به خصوص اتصالات مربوط به سروو ها را چک کنید.

 


#include 

Servo servoLeft;          // Define left servo
Servo servoRight;         // Define right servo

void setup() { 
  servoLeft.attach(10);  // Set left servo to digital pin 10
  servoRight.attach(9);  // Set right servo to digital pin 9
} 

void loop() {            // Loop through motion tests
  forward();             // Example: move forward
  delay(2000);           // Wait 2000 milliseconds (2 seconds)
  reverse();
  delay(2000);
  turnRight();
  delay(2000);
  turnLeft();
  delay(2000);
  stopRobot();
  delay(2000);
}

// Motion routines for forward, reverse, turns, and stop
void forward() {
  servoLeft.write(0);
  servoRight.write(180);
}

void reverse() {
  servoLeft.write(180);
  servoRight.write(0);
}

void turnRight() {
  servoLeft.write(180);
  servoRight.write(180);
}
void turnLeft() {
  servoLeft.write(0);
  servoRight.write(0);
}

void stopRobot() {
  servoLeft.write(90);
  servoRight.write(90);
}

 
افزودن نظر
  • هیچ نظری یافت نشد