اطلاعیه

Collapse
No announcement yet.

کنترل دور موتور و سرعت آن

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

    کنترل دور موتور و سرعت آن

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

    اینکه میخوام بهش بگم که با شمارش تعداد دور های موتور در دقیقه سرعت آن را به 1000 دور در دقیقه برساند
    حالا دور موتور میشماره اما نمیدونم چه جوری باید بگم که سرعت موتور تا چه اندازه بالا ببره که بشه 1000 دور در دقیقه
    اول حساب کردم که 1000 دور در دقیقه میشه حدودا 16 دور در ثانیه بعد میگم ocr ++ اما ocr تو یک چشم به هم زدن میکنه 255 حتی نمیزاره به 17 برسه
    اگر میشه راهنماییم کنید

    if ( speed == 17 ){
    OCR0= OCR0++;


    }

    #2
    پاسخ : کنترل دور موتور و سرعت آن

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

    دیدگاه


      #3
      پاسخ : کنترل دور موتور و سرعت آن

      ببخشید میشه توضیح بدین چجوری به ازای افزایش یک pwm حساب کنیم دور موتور چقدر زیاد میشه تو کد ویژن :cry:
      من هیچی حالیم نیست :cry2:

      دیدگاه


        #4
        پاسخ : کنترل دور موتور و سرعت آن

        سارا خانوم این کار را با تایمر کانتر میکرو انجام میدند
        گویند سنگ لعل شود در مقام صبر اری شود ولی به خون جگر شود
        همیشه آخر همه چیز خوبه، اگر هم هنوز خوب نشده پس هنوز آخرش نشده(چارلی چاپلین)

        دیدگاه


          #5
          پاسخ : کنترل دور موتور و سرعت آن

          درووود‏‏
          به ازا هر شمارش تامر،‏(‏ولتاژت تقسم بر تامر بت‏)ولت،افزاش پدا مکنه بعد هم همون تناسب که رفقمون گفت رو انجام بده ، درست مشه
          ?Why not

          دیدگاه


            #6
            پاسخ : کنترل دور موتور و سرعت آن

            من بازم متوجه نشدم دقیقا چه کار کنم؟؟؟؟؟؟؟ :cry2:
            یعنی یه تایمر بزارم که به ازای هر شمارش وقفه بزنه؟؟؟؟؟
            موتور که خیلی سریع می چرخه چجوری بشماره
            مقدار OCR را باید چند بدم؟
            تو خود وقفه باید چی بنویسم؟ :cry2:
            لطفا کمک کنید من هیچی بلد نیستم

            دیدگاه


              #7
              پاسخ : کنترل دور موتور و سرعت آن

              سلام

              شما برای کنترل دور موتور باید از یک سیستم فیدبک دار یا ( کنترل حلقه بسته ) استفاده کنید . موتور dc بنا بر ماهیت خاصی که داره با کنترل ولتاژ ، جریان و حتی پالس ورودی نمیتوان به شکل دقیق تعداد دور خروجی را پیش بینی کرد . برای این کار شما برای استفاده از موتور باید از یک شفت کدر همراه با یک اپتوکانتر استفاده کنید که اولا ً تعداد دور دقیق موتور را بتونید مشاهده کنید سپس با یک برنامه نویسی فیدبک مانند ، بتونید سرعت موتور را کنترل کنید . مثلا ً اگر شما سرعت 1000 دور را میخواهید اگر سرعت کم بود میکرو عمل افزایش پالس pwm را انجام بده . اگر سرعت بیشتر از 1000 شد میکرو سرعت pwm را کم کنه .

              یک پروژه در کتاب 10 پروژه با avr ( انتشارات آفرنگ ) موجود هست که میتونه منبع مناسبی برای آشنایی بیشتر شما برای این پروژه باشه .

              این هم یک نمونه از پروژه کنترل دور موتور که من قبلا ً ساختم . از cd به عنوان شفت کودر استفاده شده است .


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

              دیدگاه


                #8
                پاسخ : کنترل دور موتور و سرعت آن

                ببخشید کسی میتونه برنامه قسمت موتور دیسی کتاب 10 پروزه انتشارات آفرنگ را اینجا اپلود کنه؟؟؟ یا برام ایمیل کنه؟؟؟؟
                اخه چند روز دیگه تحویل پروژه دارم معلومم نیست نمرم چند میشه ارزش این همه پول دادن نداره :eek:
                ممنون

                دیدگاه


                  #9
                  پاسخ : کنترل دور موتور و سرعت آن

                  نوشته اصلی توسط sara789
                  ببخشید کسی میتونه برنامه قسمت موتور دیسی کتاب 10 پروزه انتشارات آفرنگ را اینجا اپلود کنه؟؟؟ یا برام ایمیل کنه؟؟؟؟
                  اخه چند روز دیگه تحویل پروژه دارم معلومم نیست نمرم چند میشه ارزش این همه پول دادن نداره :eek:
                  ممنون

                  درووودی دیگر
                  خانم این حرفو نفرمائید ارزش این کتاب بیشتر از اون پولیه که براش میدید.

                  در هر صورت، دوست عزیز خوب توضیح دادند مدارشم آنچنانی نیست.

                  راه دیگه ای هم وجود داره که فقط برنامه نویسیه (البته اگه کارت دقیقه این کارو نکن چون فقط برای ماست مالیه)، باید اول تو دیتاشیت موتور نگاه کنید RPMامش چقدره بعد هم از یه تناسب ساده استفاده کنید

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

                  هر ولتاژی رو که می خواید به موتور بدید حد ماکسیممش رو تقسیم بر تعداد تایمر بیتش بکنید(مثلا ولتاژ 12V و تایمر بیت 256 پس 12تقسیم بر 256 میشه 0.046875 که به ازای هر افزایش PWM ه 0.046875 ولت روی موتور اضافه میشه.)

                  اینو بگم که کار دقیقی نیست.
                  ?Why not

                  دیدگاه


                    #10
                    پاسخ : کنترل دور موتور و سرعت آن

                    ببخشید راه دقیقش یعنی چی؟
                    استفاده از pwm پس چجوریه؟یعنی تعریف TCCR0 به صورت مد pwm و استفاده از پین خروجی ocr برای شکل موج مربعی؟
                    مقدار ocr0 چی باید بزارم؟

                    دیدگاه


                      #11
                      پاسخ : کنترل دور موتور و سرعت آن

                      نوشته اصلی توسط سید علی شاهرخی
                      سلام

                      شما برای کنترل دور موتور باید از یک سیستم فیدبک دار یا ( کنترل حلقه بسته ) استفاده کنید . موتور dc بنا بر ماهیت خاصی که داره با کنترل ولتاژ ، جریان و حتی پالس ورودی نمیتوان به شکل دقیق تعداد دور خروجی را پیش بینی کرد . برای این کار شما برای استفاده از موتور باید از یک شفت کدر همراه با یک اپتوکانتر استفاده کنید که اولا ً تعداد دور دقیق موتور را بتونید مشاهده کنید سپس با یک برنامه نویسی فیدبک مانند ، بتونید سرعت موتور را کنترل کنید . مثلا ً اگر شما سرعت 1000 دور را میخواهید اگر سرعت کم بود میکرو عمل افزایش پالس pwm را انجام بده . اگر سرعت بیشتر از 1000 شد میکرو سرعت pwm را کم کنه .

                      یک پروژه در کتاب 10 پروژه با avr ( انتشارات آفرنگ ) موجود هست که میتونه منبع مناسبی برای آشنایی بیشتر شما برای این پروژه باشه .

                      این هم یک نمونه از پروژه کنترل دور موتور که من قبلا ً ساختم . از cd به عنوان شفت کودر استفاده شده است .

                      ببخشید به جای شفت کودر تو پروتئوس چی باید بزارم به جای cd

                      دیدگاه


                        #12
                        پاسخ : کنترل دور موتور و سرعت آن

                        [quote author=sara789]
                        ببخشید به جای شفت کودر تو پروتئوس چی باید بزارم به جای cd
                        [/quote]

                        به جای شفت کودر شما باید یک پالس مربعی با ستفاده از سیگنال ژنراتور پروتئوس به ورودیش بدید . مثالا ً چون شفت کودر من 60 زائده داشت با اعمال 60 پالس در ثانیه باید lcd سرعت 60 rpm رو نشون میداد . من برنامه و پروتئوس شبیه سازی شده این پروژه را دارم اگر خواستین براتون اینجا قرارش میدم . فقط تو کتاب از سون سگمن مالتی پلکس شده استفاده شده بود . ولی چون درست جواب نمیداد من با اعمال تغییراتی به جای اون از lcd استفاده کردم .
                        خدایا هر چقدر دوست داری از عمر من کم کن و به طول عمر پدر و مادرم اضافه کن...

                        دیدگاه


                          #13
                          پاسخ : کنترل دور موتور و سرعت آن

                          بله اگه میشه پروژتون بزارید

                          دیدگاه


                            #14
                            پاسخ : کنترل دور موتور و سرعت آن

                            ممنون میشم اگه لطف کنید پروژتونو اینجا قرار بدید

                            دیدگاه


                              #15
                              پاسخ : کنترل دور موتور و سرعت آن

                              سلام.
                              اگه شما دور موتور رو دارید که دیگه مشکلی نیست؟؟
                              برنامه رو طوری بنویس که تا وقتی که دور موتور کمتر از 1000 هست با یه تاخیر به pwm یه مقداری رو اضافه کنه و اگه بیشتر بود از pwm کم کنه.
                              برنامه اول هم که میگفتین سریع میشه 255 یه دلیلش اینه که تاخیر نگذاشتی و برنامه سریع به pwm اضافه میکرد و میشد 255 و دلیل دیگش هم اینه که شرط کم کردن pwm رو نزاشتی!!
                              اینا رو تو برنامه لحاظ کن احتمال زیاد درست شه

                              دیدگاه

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