مقدمه
سروو موتورها ( Servo Motor ) در پروژه هایی استفاده می شوند که نیاز به تنظیم زاویه دقیق، گشتاور بالا و سرعت تغییر زاویه بالا مورد نیاز باشد. بنابراین در کاربردهایی نظیر بال های هواپیما ، بازوهای رباتیک و … از آنها استفاده می شود.
سروو موتور چیست ؟
سروو یک موتور گیربکس دار است که از محور خروجی آن فیدبک گرفته شده است و به همین علت میتوان موقعیت دقیق آن را تعیین کرد. لختی( اینرسی ) در این نوع موتورها پایین بوده و در نتیجه تغییر سرعت در این موتورها بسیار سریع است. سروو موتورها در انواع AC و DC وجود دارند و توسط مدولاسیون پهنای پالس ( PWM ) کنترل می شوند.
پایه های سروو موتور
سروو موتورهای DC معمولا سه سیم دارند که دوتای آنها برای تغذیه مثبت و منفی (قرمز و قهوه ای) و دیگری (نارنجی) برای اعمال سیگنال کنترلی می باشد.
سیم تغذیه Vcc به ولتاژی بین ۴٫۸ تا ۷٫۲ وصل می شود و سیم تغذیه Gnd نیز به ۰ ولت متصل می گردد. سیم سوم هم به پالسی با فرکانس ثابت ۵۰ هرتز و با دیوتی سایکل( DutyCycle ) متغیر ( بین ۶۰۰ تا ۲۲۰۰ میکروثانیه ) متصل می شود.
نحوه عملکرد سروو موتور
زاویه قرار گرفتن سروو موتور بسته به پالس اعمالی به آن بین ۰ تا ۱۸۰ درجه میتواند تغییر کند. شکل زیر نحوه تنظیم زاویه توسط سروو موتور را نشان می دهد.
بررسی مشخصات یک سروو موتور نمونه
سروو موتورهای مختلفی در بازار وجود دارند، برای نمونه ، مدل XQ-S3009M یک سروو موتور ساخت شرکت XQ-Power میباشد که در شکل زیر نشان داده شده است و دارای مشخصات به صورت جدول زیر می باشد.
ویژگی | ۶V | ۷٫۲V |
ماکزیمم گشتاور | ۹٫۵kg.cm | ۱۱kg.cm |
جریان مصرفی در حالت بدون بار | ۱۲۰mA | ۱۵۰mA |
جریان مصرفی در حالت ماکزیمم بار | ۲۰۰۰mA | ۲۳۰۰mA |
سرعت جابجایی در حالت بدون بار | ۰٫۱۶sec/60° | ۰٫۱۴sec/60° |
افزایش گشتاور سروو موتور
هر چه ولتاژ تغذیه سروو موتور به ۷٫۲ ولت نزدیک تر باشد گشتاور تولید شده توسط آن افزایش می یابد. سروو موتور ها معمولا در حالت عادی جریان چندانی مصرف نمی کنند(در حد چند میلی آمپر) اما در حالت دارای بار نهایتا تا ۲٫۵ آمپر جریان مصرف می کنند. بنابراین برای راه اندازی سروو موتور با حداکثر گشتاور نیاز به یک منبع تغذیه مناسب به همراه یک رگولاتور ولتاژ ۷٫۲ ولت می باشد. رگولاتورهای معمولی ۱A هستند و برای کار ما مناسب نخواهند بود. بنابراین از ماژول LM2596 استفاده خواهیم کرد. این ماژول با نام کامل LM2596 DC-DC Step-Down Module یک رگولاتور کاهنده ولتاژ قابل تنظیم است که دارای شکل و مشخصات به صورت زیر است:
ویژگی | مقدار |
محدوده ولتاژ ورودی | +۴ – ۴۰vDC |
محدوده ولتاژ خروجی | +۱٫۲۳ – ۳۵vDC |
بیشینه جریان خروجی | ۳A with heatsink |
راه اندازی سروو موتور با میکروکنترلر AVR
بهترین گزینه برای راه اندازی سروو موتور استفاده از میکروکنترلر برای تولید پالس PWM است. بنابراین در میکروکنترلرهای AVR از واحد تایمر/کانتر برای سروو موتور استفاده می شود. به علت اینکه فرکانس PWM مورد نیاز برای راه اندازی سروو موتور پایین است (بین ۵۰ تا ۱۰۰ هرتز) و همچنین سیکل وظیفه عملکرد سروو در حد میکروثانیه می باشد، نیاز به یک PWM قوی در راه اندازی آن می باشد تا به درستی راه اندازی شده و کنترل بهتری روی آنها صورت گیرد.
بنابراین برای راه اندازی سروو موتور از واحد تایمر/کانتر ۱۶ بیتی پیشرفته و در حالت عملکرد زیر استفاده خواهیم کرد:
PWM, Phase and Frequency Corret TOP Value = ICR1
در این حالت تولید موج PWM با تفکیک بالا و فرکانس پایینتر نسبت به حالت Fast PWM در دسترس می باشد که برای راه اندازی سروو موتور مناسب است. همچنین در این حالت تایمر از مقدار ۰ تا مقداری که در رجیستر ICR1 تنظیم شود، شمارش می کند. بنابراین میتوان موج PWM با فرکانس متغیری وابسته به مقدار رجیستر تنظیم شده و فرکانس کاری واحد تایمر/کانتر روی پایه خروجی OCX طبق رابطه زیر داشت:
برای داشتن فرکانس ۵۰ هرتز کافی است تا مقدار مناسب برای رجیستر ICR1 را از رابطه فوق به صورت زیر بدست آوریم:
بنابراین با مقدار دهی رجیستر ICR1 به صورت ۴E1F فرکانسی معادل ۵۰ هرتز ( ۲۰ میلی ثانیه ) را تولید خواهیم کرد. بعد از تنظیم این رجیستر ، با استفاده از رجیسترهای OCR1A,OCR1B و OCR1C میتوان سیکل عملکرد ( Duty Cycle ) را تغییر داد. به طوری که به ازای هر واحد تغییر در هر یک از این سه رجیستر، زمان وظیفه به اندازه ۱ میکرو ثانیه تغییر خواهد کرد. بنابراین برای قرار گرفتن سروو موتور در زاویه ۰ درجه کافی است پهنای پالس موج تولید شده ۶۰۰us باشد بنابراین باید رجیستر مربوطه را به صورت زیر قرار دهیم:
OCR1A = 600 us/1us = 600
برای قرار دادن سروو در زاویه ۹۰ درجه نیز باید پهنای پالس ۱۵۰۰us باشد بنابراین باید:
OCR1A = 1500us/1us = 1500
برای قرار دادن سروو در زاویه ۱۸۰ درجه نیز باید پهنای پالس ۲۴۰۰us باشد بنابراین باید:
OCR1A =2400us/1us = 2400
برای اعمال تنظیمات به میکرو از ابزار کدویزارد استفاده می شود. شکل زیر تنظیمات مورد نیاز را برای میکروکنترلر Atmega32 در ابزار کد ویزارد نشان می دهد.
برای آموزش بیشتر و دریافت سورس کامل این پروژه به همراه توضیحات آن به صورت PDF به لینک زیر مراجعه نمایید.
دانلود بهترین و کاملترین بسته آموزشی میکروکنترلرهای AVR
در صورتی که این آموزش مورد پسندتان بود لایک و اشتراک گذاری فراموش نشود.
دیدگاه (6)
دست درد نکنه عالی بود لایک داری
خواهش میکنم
با تشکر از مطلب مفیدتون
خواهش میکنم
با سلام و خسته نباشید
ببخشید اگر بخوام با کریستال 12 یک موج با فرکانس 600Hz تولید کنم باید مقدار ICR1 چه قدر باشه
سلام دوست عزیز سلامت باشید
آموزش کاملش رو در دوره آموزشی AVR بخش تایمر ها گفتم لطفا به اون قسمت مراجعه کنید