اطلاعیه

Collapse
No announcement yet.

کنترل 8 موتور بصورت pwm .. نظر می خوام

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    کنترل 8 موتور بصورت pwm .. نظر می خوام

    سلام .. واسه مسابقات رباتیک که اواسط این ماه برگزار میشه یه جورایی گیرم oo: 8 تا موتور دارم که 5 تاش dc موتوره که باید با pwm کنترل بشه و 2-3 تا هم سروو ..... که لازم نیست همه ی موتورها بصورت همزمان کنترل بشن یعنی مثلا برای چند لحظه( 20-30 ثانیه) باید 2-3 تا از موتور ها کنترل بشن ... اما توی نحوه راه اندازی مشکل دارم .. باید از میکرویی استفاده کنم که دارای چندین کانال pwm سخت افزاری باشه (pwm نرم افزاری زیاد جالب نمی شه )... واسه این کار میخواستم از dspic30f4011 استفاده کنم که حواسم نبود 1-2 بخرم و بازار هم تعطیل شد و الان هم که در شهرستان دستم کوتاهه :cry2: و از تهران هم نمی تونم خرید کنم .. یکی از دوستان آی سی atmega168 رو پیشنهاد کرده که 6 تا کانال pwm داره ولی حتی المکان نمی خوام از avr استفاده کنم چون خودم با pic بیشتر حال میکنم و مسئله ی نویز که البته زیاد امکان نویز گرفتن avr نیست ولی به هر حال احتیاط شرط عقله ... یک راه دیگه که به ذهنم میرسه :biggrin: اینه که واسه کنترل موتورها از آی سی 555 استفاده کنم که واسه هر موتور یه دونه 555 بذارم و کنترل تمام 555 ها هم با میکرو باشه ... .... اگر کسی پیشنهاد جالب تری داره لطفا بگه :nice: ؟ با تشکر
    دست هایی که کمک میکنند از دست هایی که دعا میکنند مقدس ترند....کوروش کبیر

    #2
    پاسخ : کنترل 8 موتور بصورت pwm .. نظر می خوام

    قیمت واست مهمه؟

    دیدگاه


      #3
      پاسخ : کنترل 8 موتور بصورت pwm .. نظر می خوام

      نه زیاد مهم نیست ...
      دست هایی که کمک میکنند از دست هایی که دعا میکنند مقدس ترند....کوروش کبیر

      دیدگاه


        #4
        پاسخ : کنترل 8 موتور بصورت pwm .. نظر می خوام

        خوب اگه مهم نیست : میتونی واسه هر 2 یا 3 موتور یه میکرو بزاری . که یه مستر بهشون دستور میده . با سریال هم میونی ارتباطشون بدی .

        دیدگاه


          #5
          پاسخ : کنترل 8 موتور بصورت pwm .. نظر می خوام

          با تشکر از نظرتون ولی اینطوری زیاد جالب نیست ... نه حرفه ایه و هم برد مدار چاپی رو زیاد بزرگ میکنه ..
          دست هایی که کمک میکنند از دست هایی که دعا میکنند مقدس ترند....کوروش کبیر

          دیدگاه


            #6
            پاسخ : کنترل 8 موتور بصورت pwm .. نظر می خوام

            من اگه جات بودم از PWM نرم افزاری استفاده میکردم . چرا میگی خوب جواب نمیده؟

            دیدگاه


              #7
              پاسخ : کنترل 8 موتور بصورت pwm .. نظر می خوام

              pwm نرم افزاری اگر واسه یک کانال باشه مشکلی بوجود نمیاره ولی وقتی تعداد کانال ها افزایش پیدا میکنه مشکل دار میشه .... به عنوان مثال ما 6 کانال pwm نرم افزاری می خواهیم درست کنیم ...واسه همشون که نمی تونیم از تایمر استفاده کنیم .. (معمولا 2-3 عدد تایمر داریم ) .. میمونه خط برنامه ... وقتی خط برنامه مشغوله که یک pwm روی یک پایه درست کنه .. کانال های دیگه پالس ندارن و dutycycle هاشون و فرکانسشون به هم میریزه ... این روش دقت کافیو نداره واسه بیشتر از یک کانال...
              دست هایی که کمک میکنند از دست هایی که دعا میکنند مقدس ترند....کوروش کبیر

              دیدگاه


                #8
                پاسخ : کنترل 8 موتور بصورت pwm .. نظر می خوام

                نه خوب روش شما واسه PWM نرم افزاری اشتباهه. به همین خاطر دقت کافی رو نمیده.
                من خودم قبلا تا 26 کانال تولید کرده بودم. نسبتا هم خوب جواب میداد. فکر کنم تو یکی از topic ها روشش رو دیده بودم. فقط هم با یه تایمر کار میکرد.

                دیدگاه


                  #9
                  پاسخ : کنترل 8 موتور بصورت pwm .. نظر می خوام

                  توی قسمت avr ...میشه لینک تاپیک رو بدین ...
                  دست هایی که کمک میکنند از دست هایی که دعا میکنند مقدس ترند....کوروش کبیر

                  دیدگاه


                    #10
                    پاسخ : کنترل 8 موتور بصورت pwm .. نظر می خوام

                    سلام .
                    به نظر میرسه استفاده از pwm نرم افزاری پیشنهاد خوبی باشه ، البته که همیشه خود شرکت سازنده این مطلب رو بیان میکنه که فرمانهای نرم افزاری مرتبط با زمان دقت زیادی ندارند مثلا درمورد pause یا waitms هم شرکت میکروچیپ و هم اتمل صراحتا این به این موضوع اعتراف دارند و پیشنهادشون استفاده از تایمرها برای عملیات وابسته به زمان هست.
                    pwm خو یک واحد کاملا وابسته به زمانه ، اما منظور از دقت و بازه اون اعدادی در حد چند میلی ولت هست و نه بیشتر .
                    باید به این نکته هم اشاره بشه که اگر میکرو در حین تولید pwm مشغول اجرای تعداد زیادی از فرمانها باشه ، به هنگام انجام سایر فعالیتها مقادیر تولیدی در واحد pwm دیگر دارای مقدار صحیح نخواهد بود.
                    بنده دو پیشنعاد دارم یکی اینکه میکرو کنترلری که قرار هست چندین pwm نرم افزاری به صورت غیر عمزمان تولید کنه فقط باید همین نقش رو داشته باشه تا بتونه اون رو به درستی انجام بده. مقادیر و شماره پایه ای که باید pwm تولید شده رو به بیرون متصل کنه بهتره از طریق یک میکرو کنترلر دیگه تائین(کیبورد ریموت کنترل و ...) بشه و با یک پروتکل سریع مثل spi به این میکرو منتقل بشه اون هم تا حد امکان به صورت سخت افزاری تا بتونیم حد اکثر زمان رو به تولید pwm نرم افزاری کنیم و وقفه ای هم در مدار پیش نیاد.

                    پیشنهاد دوم دی مالتی پلکس یا دیکد کردن pwm سخت افزاری هست به طوری که فقط به کمک pwm سخت افزاری شکل موج رو تولید کنیم و برای فعال شدن هر موتور آدرس باینری یا همون معادل هگزادسیمال شماره موتور با استفاده از میکرو کنتلر روی پورت آدرس مالتی پلکسر بگذاریم 4051 برای دی مالتی پلکس و تراشه uln2803 برای راه اندازی مستقیم موتور ها (پایه مثبت همه موتورها به +vcc و پایه منفی هر کدام از موتورها به یکی از خروجیهای uln2803 متصل باشه و ورودیه 4051 هم به pwm سخت افزار ی وصل باشه تا با فراخوان شماره موتور بر روی پایه های آدرس دهی دور هر یک به تنهایی قابل کنترل باشه.


                    4051
                    موفقیت یک فرایند است نه یک اتفاق...

                    ******** استفاده از گزينه تشكر نشانه اهميت و احترام شما به پيگيري شخص نظر دهنده است ********

                    دیدگاه


                      #11
                      پاسخ : کنترل 8 موتور بصورت pwm .. نظر می خوام

                      کد:
                      Pwms:
                      Incr Tik
                       If Tik = 255 Then
                       Tik = 0
                       Portd = 0
                       End If
                       If Tik > Y(1) Then Portd.7 = 1
                       If Tik > Y(2) Then Portd.6 = 1
                       If Tik > Y(3) Then Portd.5 = 1
                       If Tik > Y(4) Then Portd.4 = 1
                       If Tik > Y(5) Then Portd.3 = 1
                       If Tik > Y(6) Then Portd.2 = 1
                       If Tik > Y(7) Then Portd.1 = 1
                       If Tik > Y(8) Then Portd.0 = 1
                      Return
                      این یه pwm هشتاییه که فرکانسش بستگی به تعداد صدا شدنش داره می تونی بایه تایمر این روال رو صدا کنی
                      ما زنده به آنیم که آرام نگیریم موجیم که آسودگی ما عدم ماست

                      وقتی یک ملت برای فرهنگ و نژاد و ملیت خویش ارزشی قائل نشد و حقی را که طبیعت برای نگاهداری نژاد پاکش به او ارزانی داشته بود پایمال ساخت و به بیگانگان روی آورد و تسلیم شد دیگر حق ندارد از شکست و بدبختی سیاسی که خودش باعث آن شده است شکایت کند .ادولف هیتلر

                      r.babazadeh@yahoo.com

                      دیدگاه


                        #12
                        پاسخ : کنترل 8 موتور بصورت pwm .. نظر می خوام

                        atmega168 6 کانال pwm نداره و همچنین 30f4011 چهار کانال pwm داره، اگه از atmega2560 استفاده کنی بغیر از 8 تاموتورت 7 کانال دیگه هم داری

                        دیدگاه


                          #13
                          پاسخ : کنترل 8 موتور بصورت pwm .. نظر می خوام

                          اگر با غیر از PIC بود و شما فرصت میداشتید XMEGA هم چیز خوبی بود
                          هشت تا تایمر 16 بیتی تو سری XMEGA A1 وجود داره که هرکدوم خیلی امکانات بیشتری نسبت به تایمر های AVR معمولی دارند :agree:

                          دیدگاه


                            #14
                            پاسخ : کنترل 8 موتور بصورت pwm .. نظر می خوام

                            نوشته اصلی توسط hansariii
                            atmega168 6 کانال pwm نداره و همچنین 30f4011 چهار کانال pwm داره، اگه از atmega2560 استفاده کنی بغیر از 8 تاموتورت 7 کانال دیگه هم داری
                            با تشکر از نظرتون من تا اونجا که یادم میاد آی سی atmega168 توی دیتا شیت 6 تا کانال pwm داشت به علت Avr بودن زیاد دقت نکردم ولی در هر صورت زیاد فرقی نمیکرد و شایدم حق با شما باشه...

                            دست هایی که کمک میکنند از دست هایی که دعا میکنند مقدس ترند....کوروش کبیر

                            دیدگاه


                              #15
                              پاسخ : کنترل 8 موتور بصورت pwm .. نظر می خوام

                              سلام
                              بله حق باشماست mega168 دارای 6 کاناله اگه از هر سه تایمر استفاده کنید. شما حتی با یک تایمر هم می تونید هشت پالس برای کنترل 8 سروو ایجاد کنید.و اگه موتورها dc بصورت همزمان کار نمی کنند می تونید از یک مالتی پلکسر که یک ورودی pwm داشته باشه و خروج ها به درایو موتور ها وصلند استفاده کنید یعنی در هر زمان بتونید pwm رو به یک موتور بدید.
                              xmega که دارای هشت تایمر دارای 24 خروجی OCT هست یعنی می تونید 24 پالس همزمان PWM
                              من فکر می کنم باید با اون چیزی که راحترید کار کنید مثل خود که DSPIC33 رو به XMEGA و PIC32 به ARM7(بغیر از CORTEX-M3) ترجیح می دم.

                              دیدگاه

                              لطفا صبر کنید...
                              X