[{"data":1,"prerenderedAt":13},["ShallowReactive",2],{"blog:servo-motor":3},{"category":4,"cover_image":5,"html":6,"published_at":7,"seo_description":8,"seo_title":9,"slug":10,"sort_order":11,"title_fa":12},"outputs-displays","\u002Fblog\u002Fservo-motor.jpg","\u003Cp>در فصل «\u003Ccode dir=\"ltr\">Servo\u003C\u002Fcode>: اولین حرکت» با قطعه‌ای آشنا شدی که با یک موتور معمولی فرق دارد: به یک موتور معمولی می‌گویی «بچرخ»، ولی به یک \u003Cstrong>سروو موتور\u003C\u002Fstrong> می‌گویی «برو دقیقاً روی زاویه‌ی ۹۰ درجه بایست». همین توانِ رفتن به یک زاویه‌ی مشخص، سروو را قلبِ بازوهای رباتیک و ماشین‌های کنترلی کرده است.\u003C\u002Fp>\n\n\u003Ch2>چطور واقعاً کار می‌کند\u003C\u002Fh2>\n\u003Cp>اگر داخل یک سروو را باز کنی، چهار چیز می‌بینی که با هم یک تیم تشکیل می‌دهند:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>یک \u003Cstrong>موتور \u003Ccode dir=\"ltr\">DC\u003C\u002Fcode>\u003C\u002Fstrong> کوچک که خودش فقط بلد است تند بچرخد.\u003C\u002Fli>\n\u003Cli>یک \u003Cstrong>گیربکس\u003C\u002Fstrong> (مجموعه چرخ‌دنده) که سرعتِ زیادِ موتور را کم و در عوض زورش (گشتاور) را زیاد می‌کند.\u003C\u002Fli>\n\u003Cli>یک \u003Cstrong>پتانسیومتر\u003C\u002Fstrong> که به محورِ خروجی چسبیده و مثل یک حسگرِ زاویه، همیشه به مدار می‌گوید «الان روی چند درجه هستم».\u003C\u002Fli>\n\u003Cli>یک \u003Cstrong>مدار کنترل\u003C\u002Fstrong> که مغزِ ماجراست.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>حالا فرمان چطور می‌رسد؟ تو هر ۲۰ میلی‌ثانیه (یعنی ۵۰ بار در ثانیه، همان \u003Ccode dir=\"ltr\">50 Hz\u003C\u002Fcode>) یک پالسِ کوتاه می‌فرستی و \u003Cstrong>عرضِ این پالس\u003C\u002Fstrong> زاویه را تعیین می‌کند: پالسِ حدود ۱ میلی‌ثانیه یعنی «برو صفر درجه»، ۱٫۵ میلی‌ثانیه یعنی «وسط، ۹۰ درجه» و ۲ میلی‌ثانیه یعنی «۱۸۰ درجه». دقت کن: این \u003Ccode dir=\"ltr\">PWM\u003C\u002Fcode> برخلاف بازر یا \u003Ccode dir=\"ltr\">LED\u003C\u002Fcode>، «قدرت» را کم و زیاد نمی‌کند، بلکه یک \u003Cstrong>فرمانِ موقعیت\u003C\u002Fstrong> است.\u003C\u002Fp>\n\u003Cp>مدار کنترل کارِ زیبایی می‌کند: عرضِ پالسی که تو فرستادی را با زاویه‌ای که پتانسیومتر گزارش می‌دهد مقایسه می‌کند. اگر فرق داشتند، موتور را می‌چرخاند تا این دو با هم برابر شوند و بعد نگه می‌دارد. به این حلقه‌ی «مقایسه و اصلاح» می‌گویند \u003Cstrong>کنترلِ حلقه‌بسته\u003C\u002Fstrong> (\u003Ccode dir=\"ltr\">closed-loop\u003C\u002Fcode>). برای همین است که سروو حتی اگر کسی بخواهد محورش را بچرخاند، مقاومت می‌کند و سر جایش می‌ماند.\u003C\u002Fp>\n\n\u003Ch2>کاربردهای واقعی\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>فرمان و بال‌های متحرکِ ماشین‌ها و هواپیماهای کنترلی (\u003Ccode dir=\"ltr\">RC\u003C\u002Fcode>).\u003C\u002Fli>\n\u003Cli>مفصل‌های بازوی رباتیک و پنجه‌ی گیرنده‌ی ربات‌ها.\u003C\u002Fli>\n\u003Cli>گیمبالِ دوربین که تصویر را در حین حرکت ثابت نگه می‌دارد و دوربین‌های چرخانِ امنیتی.\u003C\u002Fli>\n\u003Cli>ربات‌های انیماترونیک و اسباب‌بازی‌های متحرک.\u003C\u002Fli>\n\u003Cli>نسخه‌های صنعتیِ بزرگ‌ترش (با \u003Ccode dir=\"ltr\">encoder\u003C\u002Fcode>) در بازوهای کارخانه، \u003Ccode dir=\"ltr\">CNC\u003C\u002Fcode> و پرینتر سه‌بعدی، و حتی ردیاب‌های خورشیدی که پنل را به سمت آفتاب می‌چرخانند.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch2>در عمل: سیم‌کشی و کد\u003C\u002Fh2>\n\u003Cp>سروو سه سیم دارد: سیمِ فرمان (نارنجی\u002Fزرد) به \u003Ccode dir=\"ltr\">GPIO 13\u003C\u002Fcode>، سیمِ تغذیه (قرمز) به \u003Ccode dir=\"ltr\">5V\u003C\u002Fcode> و سیمِ زمین (قهوه‌ای\u002Fمشکی) به \u003Ccode dir=\"ltr\">GND\u003C\u002Fcode>. چون فرمان با عرضِ پالس مشخص می‌شود، یک تابعِ کوچک می‌نویسیم که زاویه را به \u003Ccode dir=\"ltr\">duty\u003C\u002Fcode> ترجمه کند:\u003C\u002Fp>\n\u003Cpre class=\"code-block\" dir=\"ltr\">\u003Ccode dir=\"ltr\">from machine import Pin, PWM\nimport time\n\nservo = PWM(Pin(13), freq=50)\n\ndef set_angle(deg):\n    # 0..180 daraje -> duty\n    duty = int(26 + (deg \u002F 180) * 97)\n    servo.duty(duty)\n\nset_angle(0)\ntime.sleep(1)\nset_angle(90)\ntime.sleep(1)\nset_angle(180)\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Ch2>اشتباه‌های رایج\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>تغذیه از \u003Ccode dir=\"ltr\">3V3\u003C\u002Fcode>:\u003C\u002Fstrong> سروو حدود ۵ ولت و در لحظه‌ی حرکت جریانِ زیادی می‌خواهد؛ اگر از پایه‌ی ۳٫۳ ولت بگیری، ولتاژِ برد افت می‌کند و ممکن است برد ریست شود.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>نبستنِ \u003Ccode dir=\"ltr\">GND\u003C\u002Fcode> مشترک:\u003C\u002Fstrong> اگر تغذیه‌ی سروو جدا باشد، زمینِ آن باید حتماً به زمینِ برد وصل شود، وگرنه فرمان درست خوانده نمی‌شود.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>فشار به مرزِ مکانیکی:\u003C\u002Fstrong> سروو معمولی فقط حدود ۰ تا ۱۸۰ درجه می‌چرخد؛ اگر به زور بیشتر بخواهی، موتور «قفل» می‌کند، داغ می‌شود و می‌سوزد.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>انتظار دقتِ کامل بدون کالیبراسیون:\u003C\u002Fstrong> عددِ دقیقِ \u003Ccode dir=\"ltr\">duty\u003C\u002Fcode> برای هر سروو کمی فرق دارد و گاهی باید کالیبره‌اش کنی.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch2>همین حالا امتحان کن\u003C\u002Fh2>\n\u003Cp>حرکتِ سروو را توی مرورگر ببین و زاویه‌ها را عوض کن: \u003Ca href=\"\u002Flab\u002Fembed\u002Fterm-2-sensors\u002Fsession-08-servo\">شبیه‌ساز سروو را باز کن\u003C\u002Fa>. برای یادگیری قدم‌به‌قدم سراغ \u003Ca href=\"\u002Fcourses\u002Fairo\u002Flessons\u002Ft2\u002Fs08-servo\">فصل سروو\u003C\u002Fa> برو.\u003C\u002Fp>","2026-07-18T15:30:00Z","سروو موتور (Servo Motor) از موتور DC، گیربکس، پتانسیومتر بازخورد و مدار کنترل ساخته شده؛ چطور عرض پالس زاویه را تعیین می‌کند و کجاها به کار می‌رود.","سروو موتور (Servo) چطور کار می‌کند؟ | یادستان","servo-motor",110,"سروو موتور (Servo) چطور دقیقاً به یک زاویه می‌رود؟",1784827101874]