نمایش نتایج: از 1 به 6 از 6

موضوع: کنترل همزمان سرعت چند موتور

  1. #1
    Junior Member
    تاریخ عضویت
    Dec 2014
    نوشته ها
    10

    کنترل همزمان سرعت چند موتور

    با سلام
    راهی وجود داره که بشه با استفاده از آردوینو یا کلا بردهای avr چند موتور رو با سرعتهای مختلف همزمان کنترل کرد؟ یعنی مثلا دستور بدم موتور 1 با سرعت x، موتور 2 با سرعت y و موتور 3 با سرعت z بچرخه. سرعتها هم قابل کنترل باشن (البته این دستورها همزمان باشن یعنی 3 موتور همزمان دستور بگیرن).

  2. #2
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,995
    موتور هات چه مدلی هستن ؟
    اگر سروو باشه ماژولش ساخته شده
    اگه دی سی باید از چند تا درایور استفاده کنی
    اگر استپر باشه هم باید از چند تا درایور استفاده کنی

  3. #3
    Junior Member
    تاریخ عضویت
    Dec 2014
    نوشته ها
    10
    فرقی نداره، مثلا استپر رو در نظر بگیریم و به تعداد موتورها هم درایور داریم. حالا چطور باید کدی بنویسیم که همزمان اجرا بشه؟ ماژول سروو رو هم میشه معرفی کنید؟
    ممنون

  4. #4
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,995
    نقل قول نوشته اصلی توسط m.j.h نمایش پست ها
    فرقی نداره، مثلا استپر رو در نظر بگیریم و به تعداد موتورها هم درایور داریم. حالا چطور باید کدی بنویسیم که همزمان اجرا بشه؟ ماژول سروو رو هم میشه معرفی کنید؟
    ممنون

    بله حتما
    این ماژول سرو هست:
    ماژول درایور PWM / سروو 12 بیتی 16 کاناله PCA9685 دارای ارتباط I2C


    و در مورد اسپبر هم این لینک ها رو مطالعه بفرمایید:
    arduino uno - Controlling 3 stepper motors simultaneously - Arduino Stack Exchange

    https://www.quora.com/How-do-I-run-3...-Stepper-motor

  5. #5
    Junior Member
    تاریخ عضویت
    Dec 2014
    نوشته ها
    10
    ممنونم از پاسختون. این روش هایی که اینجا معرفی شدن یا سرعت حرکت موتورها یکی هستش یا استپ ها رو بین هم میزنن. فقط یکیشون فک میکنم از interrupt تایمر استفاده کرده بود. من خودم با تابع وقفه کار نکردم، اگر از تابع وقفه استفاده کنیم دیلیی که برای هر استپ ایجاد میشه اجرای خطوط بعدی برنامه رو با تاخیر مواجه نمیکنه (یعنی اول تابع وقفه کامل اجرا میشه و بعد بر میگرده توی بدنه اصلی برنامه و خط بعدی رو اجرا میکنه)؟

  6. #6
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,995
    نقل قول نوشته اصلی توسط m.j.h نمایش پست ها
    ممنونم از پاسختون. این روش هایی که اینجا معرفی شدن یا سرعت حرکت موتورها یکی هستش یا استپ ها رو بین هم میزنن. فقط یکیشون فک میکنم از interrupt تایمر استفاده کرده بود. من خودم با تابع وقفه کار نکردم، اگر از تابع وقفه استفاده کنیم دیلیی که برای هر استپ ایجاد میشه اجرای خطوط بعدی برنامه رو با تاخیر مواجه نمیکنه (یعنی اول تابع وقفه کامل اجرا میشه و بعد بر میگرده توی بدنه اصلی برنامه و خط بعدی رو اجرا میکنه)؟

    اساس وقفه همینه

    وقتی وقفه میخوره میره تابع مربوط به وقفه رو اجرا می کنه بعد برمیگرده توی loop بینه کجا بوده و ادامه میده

    تنها یک نکته خیلی مهم بوجود میاد و اون هم اینکه در ساختمان تابع وقفه نباید از تابع Delay استفاده بشه اصلا

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO