سروو موتور چطور حرکت میکند؟ ساخت اولین پروژه حرکتی با Arduino
سروو موتور آردوینو یکی از سادهترین راهها برای اضافه کردن
حرکت دقیق به پروژههای Arduino است. برخلاف موتور DC معمولی که بیشتر برای
چرخش مداوم استفاده میشود، سروو به شما اجازه میدهد محور خروجی را به یک
موقعیت مشخص ببرید و آن را در همان محدوده نگه دارید.
به همین دلیل سروو در بازوی رباتیک، درب خودکار، کنترل دوربین، مدلهای RC،
مکانیزمهای حرکتی و بسیاری از پروژههای آموزشی Arduino دیده میشود.
در این آموزش با ساختار سروو، پایهها، PWM، اتصال SG90، کد Sweep،
کنترل با پتانسیومتر و مشکلات رایج تغذیه آشنا میشویم.
📌 سروو موتور در یک نگاه
سیگنال پالسی
3 سیم
حدود 4.8 تا 6V
زاویه محور
Servo
چرا سروو با موتور DC معمولی فرق دارد؟
یک سروو معمولی فقط از یک موتور تشکیل نشده است. داخل آن موتور DC،
مجموعه چرخدنده، پتانسیومتر موقعیت، مدار کنترل و محور خروجی در کنار
یکدیگر کار میکنند. پتانسیومتر موقعیت محور را اندازه میگیرد و مدار
کنترل، موقعیت فعلی را با موقعیت موردنظر مقایسه میکند.
اگر بین این دو مقدار اختلاف وجود داشته باشد، مدار داخلی موتور را
در جهت مناسب حرکت میدهد. با رسیدن محور به موقعیت موردنظر، خطا کم
میشود و سروو تلاش میکند همان وضعیت را حفظ کند. این ساختار یک
سیستم کنترل حلقهبسته ایجاد میکند.
به دنبال سروو موتور مناسب پروژهتان هستید؟
برای مشاهده مدلهای مختلف سروو موتور، مشخصات فنی و انتخاب گزینه مناسب برای پروژههای رباتیک، کنترلی و مکانیکی، محصولات موجود در فروشگاه پژوهشگران را ببینید.
💡 راز دقت سروو چیست؟
Arduino فقط فرمان موقعیت را ارسال میکند. مدار داخلی سروو موقعیت واقعی
محور را اندازه میگیرد و در صورت نیاز حرکت موتور را اصلاح میکند؛
همین بازخورد، تفاوت اصلی سروو با یک موتور DC ساده است.
سروو چطور میفهمد باید به کدام زاویه برود؟
سرووهای رایج با پالسهای کنترلی کار میکنند. در بسیاری از سرووهای Hobby،
سیگنال کنترلی تقریباً با نرخ 50Hz تکرار میشود و عرض هر پالس موقعیت موردنظر
را مشخص میکند.
در یک نمونه معمول، پالس حدود 1ms به یک سمت، حدود 1.5ms به مرکز و حدود
2ms به سمت دیگر اشاره میکند. با این حال، این اعداد قانون ثابت تمام سرووها
نیستند و برخی مدلها محدوده متفاوتی دارند؛ بنابراین دیتاشیت قطعه خودتان
را ملاک قرار دهید.

🎯 یک نکته مهم درباره PWM
در اینجا چیزی که برای موقعیت سروو اهمیت دارد فقط «درصد PWM» نیست؛
عرض پالس بخش مهم فرمان موقعیت است. برای همین بهتر است
سروو را با کتابخانه Servo کنترل کنید تا لازم نباشد زمانبندی پالسها
را دستی بسازید.
سه سیم سروو را بشناسید
بیشتر سرووهای Hobby با یک کانکتور سهپین عرضه میشوند. رنگ سیمها ممکن است
بین برندها متفاوت باشد، اما معمولاً یک سیم برای تغذیه، یک سیم برای زمین
و یک سیم برای فرمان استفاده میشود.
| سیم / پایه | وظیفه |
|---|---|
| Red | VCC |
| Black / Brown | GND |
| Yellow / Orange / White | Control |
رنگ سیمها در همه برندها یکسان نیست؛ برای اتصال دقیق، برچسب یا دیتاشیت
همان سروو را بررسی کنید.

🔧 به دنبال قطعات و تجهیزات آردوینو هستید؟
برای مشاهده انواع بردهای آردوینو، ماژولها، سنسورها و قطعات مورد نیاز پروژههای خود،
به فروشگاه قطعات الکترونیکی پژوهشگران مراجعه کنید.
اتصال SG90 به Arduino Uno؛ شروع کار همینجاست
برای یک آزمایش ساده میتوان از سروو SG90 استفاده کرد. مقاله مرجع
برای این نمونه، تغذیه 4.8 تا 6V را ذکر میکند و سیم کنترل را به پایه 9
Arduino Uno متصل میکند.
| سروو | Arduino Uno |
|---|---|
| VCC | 5V* |
| GND | GND |
| Control | D9 |
* برای یک سرووی کوچک، تغذیه از 5V برد ممکن است برای تست ساده کافی باشد،
اما هنگام حرکت، سروو میتواند جریان بسیار بیشتری از حالت بیبار نیاز داشته باشد.

🛒 قطعات پروژه حرکتی را از پژوهشگران تهیه کنید
برای ساخت پروژههای حرکتی میتوانید سروو موتور، Arduino، بردبورد،
سیم، پتانسیومتر، سنسور و سایر قطعات موردنیاز را در فروشگاه پژوهشگران
بررسی کنید.
اولین حرکت؛ سروو را از صفر تا 180 درجه بچرخانید
کتابخانه رسمی Servo کنترل سروو را بسیار ساده میکند. در IDE نیز مثال
Sweep وجود دارد که میتوانید از آن برای اولین تست استفاده کنید.
ساختار کتابخانه Servo شامل مثالهایی مانند Sweep و Knob است.
#include <Servo.h>
Servo servo;
const int servoPin = 9;
void setup() {
servo.attach(servoPin);
}
void loop() {
for (int angle = 0; angle <= 180; angle++) {
servo.write(angle);
delay(15);
}
for (int angle = 180; angle >= 0; angle--) {
servo.write(angle);
delay(15);
}
}
🧪 اگر همهچیز درست باشد…
محور سروو باید بهآرامی از یک سمت به سمت دیگر حرکت کند و سپس مسیر
برگشت را طی کند. این تست، سادهترین راه برای اطمینان از صحت اتصال
سروو و اجرای کتابخانه است.
دستورات مهم کتابخانه Servo
| دستور | کاربرد |
|---|---|
attach() |
اتصال شیء سروو به پایه |
write() |
فرستادن موقعیت زاویهای |
read() |
خواندن آخرین موقعیت نوشتهشده |
detach() |
جدا کردن سروو از کنترل |
کنترل سروو با پتانسیومتر؛ یک پروژه جذابتر
بعد از Sweep، میتوانید یک پتانسیومتر 10kΩ به A0 اضافه کنید و موقعیت
محور را با چرخاندن ولوم تغییر دهید. Arduino مقدار ADC را از بازه
0 تا 1023 به زاویه 0 تا 180 تبدیل میکند و سپس آن را به سروو میفرستد.
این مثال در مقاله مرجع نیز بهعنوان پروژه دوم ارائه شده است.
🎛️ سیمکشی پتانسیومتر
یک سر پتانسیومتر → 5V
سر دیگر → GND
پایه وسط → A0
#include <Servo.h>
Servo servo;
const int potPin = A0;
const int servoPin = 9;
void setup() {
servo.attach(servoPin);
}
void loop() {
int reading = analogRead(potPin);
int angle = map(reading, 0, 1023, 0, 180);
servo.write(angle);
}
اگر سروو میلرزد یا Arduino ریست میشود، مقصر چیست؟
یکی از رایجترین مشکلات سروو، تغذیه ناکافی است. سروو هنگام شروع حرکت
میتواند برای مدت کوتاه جریان بسیار بیشتری از حالت سکون بکشد و همین
موضوع افت ولتاژ ایجاد کند. صفحه مرجع نیز این افت ولتاژ را یکی از دلایل
لرزش، حرکت نادرست یا ریست Arduino معرفی میکند.
🚨 مشکل از کد نیست؛ شاید از تغذیه باشد
اگر سروو هنگام حرکت Arduino را ریست میکند، ابتدا منبع تغذیه را بررسی کنید.
برای سرووهای پرمصرف یا چند سروو، استفاده از منبع تغذیه جداگانه معمولاً
انتخاب مطمئنتری است.
خازن روی تغذیه چه کمکی میکند؟
یک خازن الکترولیتی در مسیر تغذیه میتواند به کاهش افت لحظهای ولتاژ
کمک کند. مقاله مرجع بازه 470 تا 1000µF را بهعنوان یک راهکار برای
کاهش این مشکل مطرح میکند.
هنگام استفاده از خازن قطبی، جهت اتصال را جدی بگیرید؛ پایه مثبت باید
به تغذیه و پایه منفی به GND وصل شود.
چه زمانی منبع تغذیه جدا لازم میشود؟
اگر سروو جریان زیادی میکشد، چند سروو را همزمان کنترل میکنید یا
Arduino هنگام حرکت سروو ناپایدار میشود، بهتر است تغذیه موتور را
مستقل کنید. در این حالت، GND منبع تغذیه سروو و GND Arduino
باید مشترک باشند تا سیگنال کنترل مرجع مشترک داشته باشد.
🔌 سیمکشی با منبع جدا
سروو VCC → منبع تغذیه خارجی مناسب
سروو GND → GND منبع خارجی
Arduino GND → همان GND
Servo Signal → پایه دیجیتال Arduino
همه سرووها 180 درجه نیستند!
یکی از اشتباهات رایج این است که تصور کنیم هر سروو باید دقیقاً بین
0 و 180 درجه حرکت کند. مدلهای مختلف ممکن است زاویه حرکت، محدوده
پالس و حتی نوع عملکرد متفاوتی داشته باشند.
بنابراین قبل از استفاده در مکانیزم مکانیکی، مشخصات همان مدل را بررسی
کنید. اگر سروو برای حرکت مداوم طراحی شده باشد، مفهوم کنترل آن با
سرووی موقعیتی معمولی فرق خواهد داشت.
سروو موتور آردوینو در چه پروژههایی میدرخشد؟
وقتی پروژه به یک حرکت کنترلشده نیاز دارد، سروو معمولاً یکی از اولین
گزینههاست. اندازه کوچک و کنترل موقعیت ساده آن، استفاده از این موتور
را در پروژههای آموزشی و رباتیک بسیار راحت کرده است.
- بازوی رباتیک
- درب و قفل خودکار
- کنترل جهت سنسور
- پروژههای RC
- مکانیزمهای رباتیک
- کنترل دوربین و پنتیلت
- سیستمهای آموزشی کنترل حرکت
💡 چند ایده برای پروژه بعدی
سنسور فاصله + سروو: ساخت سیستم اسکن ساده
پتانسیومتر + سروو: کنترل دستی زاویه
RFID + سروو: ساخت قفل آزمایشی
Joystick + سروو: کنترل حرکت یک مکانیزم
برای پروژههای سروو چه قطعاتی لازم دارید؟
یک پروژه ساده به سروو و Arduino نیاز دارد، اما برای ساخت سیستم کاملتر
ممکن است به پتانسیومتر، جویاستیک، سنسور، نمایشگر، منبع تغذیه، خازن
و سایر قطعات الکترونیکی هم احتیاج داشته باشید.
🛒 قطعات پروژه حرکتی را از پژوهشگران تهیه کنید
برای ساخت پروژههای Arduino و کنترل حرکت میتوانید سروو موتور، برد Arduino،
پتانسیومتر، سنسور، بردبورد، خازن و سایر قطعات موردنیاز را در فروشگاه
پژوهشگران بررسی کنید.
مقالات بیشتر برای توسعه پروژه
📚 مقالات بیشتر پژوهشگران
آموزشهای بیشتر درباره Arduino، ESP32، سنسورها، موتورها و پروژههای
الکترونیکی را در مجموعه مقالات پژوهشگران ببینید.
برای انتخاب قطعه یا طراحی پروژه مشاوره فنی بگیرید
🛠️ برای انتخاب سروو سؤال دارید؟
اگر درباره انتخاب سروو، منبع تغذیه، Arduino، پتانسیومتر یا طراحی
مکانیزم حرکتی سؤال دارید، قبل از خرید میتوانید برای
مشاوره فنی با مجموعه پژوهشگران در ارتباط باشید.
انتخاب سرووی مناسب از نظر ولتاژ، گشتاور و زاویه حرکت میتواند تفاوت
زیادی در عملکرد نهایی پروژه ایجاد کند.
جمعبندی؛ آیا سروو برای پروژه شما مناسب است؟
سروو موتور آردوینو برای پروژههایی که به کنترل موقعیت
نیاز دارند، یکی از سادهترین انتخابهاست. ساختار حلقهبسته، گیربکس داخلی
و مدار کنترل باعث میشوند بتوانید موقعیت محور را با فرمان ساده Arduino
مدیریت کنید.
برای شروع، یک SG90، Arduino و کتابخانه Servo کافی هستند. ابتدا حرکت
Sweep را آزمایش کنید، سپس پتانسیومتر یا سنسور اضافه کنید و اگر سروو
هنگام حرکت ناپایدار شد، قبل از تغییر کد سراغ تغذیه بروید.
⚡ چکلیست سریع سروو
✔ سیمهای VCC، GND و Signal را درست وصل کنید.
✔ مدل و محدوده حرکت سروو را بررسی کنید.
✔ از کتابخانه Servo استفاده کنید.
✔ ابتدا Sweep را تست کنید.
✔ برای سرووهای پرمصرف منبع مناسب در نظر بگیرید.
✔ در تغذیه خارجی، GND را با Arduino مشترک کنید.
💬 تجربه شما از کار با سروو موتور چیست؟
اگر قبلاً با سروو موتور و Arduino کار کردهاید،
تجربه خود را درباره SG90، تغذیه سروو، کنترل زاویه یا ساخت پروژههای
رباتیک با ما و سایر کاربران به اشتراک بگذارید.
اگر راهکار خاصی برای کاهش لرزش یا مشکل تغذیه پیدا کردهاید،
در بخش نظرات همین پایین برای ما بنویسید.
سوالات متداول درباره سروو موتور آردوینو
سروو موتور را چگونه به Arduino وصل کنیم؟
در یک نمونه ساده، VCC به منبع مناسب، GND به زمین و سیم کنترل به یکی
از پایههای دیجیتال Arduino متصل میشود. برای SG90 مقاله مرجع از پایه 9
در Uno استفاده میکند.
آیا میتوان چند سروو را با Arduino کنترل کرد؟
بله، کتابخانه Servo امکان کار با چند سروو را فراهم میکند، اما محدودیت
اصلی در پروژههای چندسرویی معمولاً به منبع تغذیه و جریان موردنیاز برمیگردد.
کتابخانه و قابلیت دقیق تعداد سروو نیز به برد مورد استفاده وابسته است.
چرا سروو باعث ریست Arduino میشود؟
افت ولتاژ ناشی از جریان لحظهای موتور یکی از دلایل رایج است. تغذیه مناسب،
خازن دکوپلینگ و در پروژههای پرمصرف، منبع جداگانه میتوانند به حل این مشکل
کمک کنند.



