رباتیک و هوافضا

راه اندازی سروو موتور بدون نیاز به pwm!!!

به نام خدا

راه اندازی سروو موتور بدون نیاز به PWM!!!

از جمله موتور های پر کاربرد در عرصه رباتیک و صنعت، سروو موتور ها هستند. این موتور ها در کاربرد هایی که نیاز به ایجاد چرخش با زاویه مشخص وجود دارد، استفاده می شوند.

از جمله کاربرد های موتور های سروو می توان به موارد زیر اشاره کرد:

  1. ربات های بازو
  2. سطوح کنترلی هواپیما ها
  3. ربات های دلتا
  4. فرمان چرخ های ربات های زمینی
  5. و …

در این پروژه می خواهیم بدون استفاده از توانایی pwm میکرو، یک سروو موتور را کنترل کنیم!!!

همان طور که در تصاویر زیر مشاهده می کنید، سیگنالی که موتور سروو را به حرکت در می آورد دارای یک دوره تناوب ثابت می باشد که با تغییر مدت زمان یک بودن(یک منطقی)، می توان زاویه آن را تنظیم کرد.

servo_pulse_width

Servo-Signal

 

در این پروژه مدت زمان تناوب را ۲۰ میلی ثانیه(فرکانس ۵۰ هرتز) در نظر گرفته ایم.حال با دستور های set و reset و گذاشتن دستور wait بین این دستور ها مدت زمان یک بودن را با تغییر مدت زمان دستور wait، تغییر می دهیم.

بیشتر بخوانید...  پروژه ی کامل شناسایی فرکانس رادیویی با آردوینو به همراه کد برنامه

به دستور های مقابل توجه کنید:

set portb.1

waitus 1000

reset portb.1

waitus 19000

خط اول، پین یک از پورت B را یک می کند.

خط دوم، این پین را به مدت زمان ۱۰۰۰ میکرو ثانیه(۱ میلی ثانیه) در همان حالت(یک منطقی) نگه می دارد.

خط سوم، این پین را صفر می کند.

خط چهارم، این پین را در همان حالت خط قبل(صفر منطقی) به مدت زمان ۱۹۰۰۰ میکرو ثانیه(۱۹ میلی ثانیه) نگه می دارد.

به این صورت با تغییر دو عدد جلوی خط دوم و چهارم می توان پهنای پالس(مدت زمان یک بودن) را تغییر داد.مجموع این دو عدد باید ۲۰۰۰۰ میکرو ثانیه(۲۰ میلی ثانیه) باشد.

برای اطلاعات بیشتر و دانلود پروژه همراه با شماتیک مدار، فایل زیر را دانلود کنید.

کلیه پروژه های سایت به صورت کاملا عملی بر روی بردبورد تست شده اند.

برای دانلود پروژه بر روی لینک زیر کلیک کنید .

 

دانلود فایل

دیدگاه‌ها (10)

*
*

    سعید مهمان آبان 29, 1394 پاسخ

    سلام. عالی بود. ممنون. نمیدونستم بدون pwm هم میشه سروو موتور راه اندازی کرد... :)

      Admin مدیر کل آبان 30, 1394 پاسخ

      سلام- خواهش میکنم...

    محمد کریمی مهمان دی 23, 1395 پاسخ

    سلام دوست عزیز مطلبت در مورد سرو موتور بسیار عالی بود خدا خیرت بده من چند روز بود که دنبال این جور مطلبی بودم شما به من بسیار کمک کردید

      Admin مدیر کل فروردین 11, 1396 پاسخ

      سلام .
      خیلی ممنون

    محمد مهمان اردیبهشت 19, 1396 پاسخ

    سلام
    تو بسکام یه بخشی هست که به اسم config servo که دیگه نیاز به این همه برنامه نویسی بی دلیل نداره .

      Admin مدیر کل اردیبهشت 22, 1396 پاسخ

      سلام
      بله دوست عزیز . بنده اولین کامپایلری که باهاش کار کردم همین بسکام هستش و ازین دستور آگاهی دارم.....برای کنترل سروو با کامپایلر های مختلف راه های زیادی وجود داره که همشون با فعال سازی مد pwm کار میکنن حتی این دستور config servo هم با فعال سازی مد pwm کار میکنه.......ولی ما خواستیم بگیم که برای کنترل موتور سروو حتما نیازی به فعال سازی مد pwm میکروکنترلر نیست و میشه به صورت دستی این موج رو ایجاد کرد....
      از نظرتون ممنون

    ابراهیم مهمان مهر 8, 1396 پاسخ

    سلام کجاست لینک اش چه جوری باید دانلود کرد

      Admin مدیر کل مهر 13, 1396 پاسخ

      سلام
      مشکل لینک ها حل شد.

    سجاد مهمان دی 30, 1396 پاسخ

    سلام
    در مورد PWM باید بگم که یعنی مدولاسیون عرض پالس و این کار شما همون PWM است البته شما بجای استفاده از تایمر برای ایجاد PWM از خاموش و روشن کردن دستی پورت برای تولید PWM استفاده کردید. در واقع فقط سخت افزار تولید اون رو تغییر دادید. این رو گفتم که مفهوم PWM اشتباه جا نیوفته.

      Admin مدیر کل دی 30, 1396 پاسخ

      سلام.خیلی ممنون از توضیحاتتون.
      اینکار در مواقعی مفید هستش که شما پورت pwm کم داشته باشید همون طور که خودتون میدونید تعداد پورت های pwm هر میکروکنترلر محدود هستش برای همین میشه پالس pwm رو به صورت دستی خودمون درست کنیم .