اطلاعیه

Collapse
No announcement yet.

مشکل در راه اندازی encoder با اینتراپت (avr)

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

    مشکل در راه اندازی encoder با اینتراپت (avr)

    سلام.
    من از atmega64A استفاده میکنم.
    2تا ان کدر دارم که هر کدام به یه اینتراپت وصله. (INT0 , INT1)
    ربات ما به طور کامل کار میکنه و مشکلی نداره.
    توی پروتئوس هم جواب گرفتم.
    ولی وقتی ان کدر ها رو وصل میکنم، میکرو تندتند ریست میشه.
    رزولوشن ان کدر 1.8درجه است دور موتور هم حدودا 600 هست.
    خواستم بدونم مشکل از مداره یا برنامه یا ؟؟؟
    و باید برای حل مشکل چه کرد؟
    ممنون، روزتون خوش؛

    #2
    پاسخ : مشکل در راه اندازی encoder با اینتراپت (avr)

    دوستان، جوابه ما چی شد؟؟؟ :|

    دیدگاه


      #3
      پاسخ : مشکل در راه اندازی encoder با اینتراپت (avr)

      سلام دوست عزیز
      این میکرو شما که پدرش در میاد تند تند داره میره تو وقفه بهتر نبود از کانتر ها استفاده میکردید؟
      موتور شما هر ثانیه 6 دور میزنه و انکدرتون 1.8 است ، پس تو هر ثانیه 1200 بار در وقفه 1 و 1200 بار در صفر میره
      این تند تند رفتن به وقفه ممکنه باعث گم شدن آدرسه سورس اصلیتون بشه

      ...
      من از تایمر های 64 بی خبرم ولی با همین 16 ، معمولا تایمر های 1و2 رو به این کار اختصاص میدن تایمر 1(OCR1A,B) رو هم به PWM موتور ها این طوری مشکلی پیش نمیاد

      head<=
      ...تشکر خدا...
      [img width=97 height=100]http://mahdi3d.persiangig.com/image/5280543_t.jpg[/img]

      دیدگاه


        #4
        پاسخ : مشکل در راه اندازی encoder با اینتراپت (avr)

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

        موفق باشید




        اگه مردم می دونستن زمان چقدر با ارزشه دیگه هیچ وقت کفش بند دار نمی خریدن البرت انیشتن

        دیدگاه


          #5
          پاسخ : مشکل در راه اندازی encoder با اینتراپت (avr)

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

          دیدگاه


            #6
            پاسخ : مشکل در راه اندازی encoder با اینتراپت (avr)

            نوشته اصلی توسط htan1375
            سلام.
            من از atmega64A استفاده میکنم.
            2تا ان کدر دارم که هر کدام به یه اینتراپت وصله. (INT0 , INT1)
            ربات ما به طور کامل کار میکنه و مشکلی نداره.
            توی پروتئوس هم جواب گرفتم.
            ولی وقتی ان کدر ها رو وصل میکنم، میکرو تندتند ریست میشه.
            رزولوشن ان کدر 1.8درجه است دور موتور هم حدودا 600 هست.
            خواستم بدونم مشکل از مداره یا برنامه یا ؟؟؟
            و باید برای حل مشکل چه کرد؟
            ممنون، روزتون خوش؛
            سلام کدهای زیر برنامه وقفه تون چیه؟
            زندگي را تو بساز ،
            نه بدان ساز که سازند و پذيري بي حرف ،
            زندگي يعني جنگ ، تو بجنگ ،
            زندگي يعني عشق ، تو بدان عشق بورز.

            دیدگاه


              #7
              پاسخ : مشکل در راه اندازی encoder با اینتراپت (avr)

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

              دیدگاه


                #8
                پاسخ : مشکل در راه اندازی encoder با اینتراپت (avr)

                ممنون از همه دوستان، من اینتراپت رو عوض کردم، و درست شد!
                ولی نمیدونم چرا !!!
                مگه اینتراپت های مگا64 فرقی هم با هم دارن ؟؟؟

                دیدگاه


                  #9
                  پاسخ : مشکل در راه اندازی encoder با اینتراپت (avr)

                  فرق زیادی با هم ندارن
                  فرقشون تو مده
                  4تای اولی مد Any change نداره ولی 4تای بعدی داره
                  راستی
                  چرا از کانتر استفاده نمیکنی؟
                  دیگه نیازی به پردازش نیست .
                  یک نکته مهم دیگه
                  مدار debounce هم یادت نره خیلی مهمه
                  چون اگه نگذاشتی تند و تند میره تو وقفه
                  این باعث میشه اختلال پیش بیاد
                  موفق باشی
                  [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                  معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                  معرفی نرم افزار Codewizard PWM
                  با من بیشتر آشنا شوید

                  دیدگاه


                    #10
                    پاسخ : مشکل در راه اندازی encoder با اینتراپت (avr)

                    با کانتر میشه دور چپ و راست رو هم از هم تشخیص داد؟
                    زندگي را تو بساز ،
                    نه بدان ساز که سازند و پذيري بي حرف ،
                    زندگي يعني جنگ ، تو بجنگ ،
                    زندگي يعني عشق ، تو بدان عشق بورز.

                    دیدگاه


                      #11
                      پاسخ : مشکل در راه اندازی encoder با اینتراپت (avr)

                      نوشته اصلی توسط microware
                      با کانتر میشه دور چپ و راست رو هم از هم تشخیص داد؟
                      راه حلی به ذهنم نمیرسه و فکر نکنم که بشه
                      اگر موتورت DC یا استپرموتور باشه خودت میدونی چپگرد یا راستگرد میچرخه ، پس نیازی به این کار نیست .
                      تعداد پالسها رو بده به کانتر و اگر به عدد مورد نظرت رسید وقفه مربوطه فعال میشه و اون کاری که میخوای ، انجامش میدی

                      موفق باشی
                      [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                      معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                      معرفی نرم افزار Codewizard PWM
                      با من بیشتر آشنا شوید

                      دیدگاه


                        #12
                        پاسخ : مشکل در راه اندازی encoder با اینتراپت (avr)

                        من به 2 دلیل از کانتر استفاده نمیکنم
                        1- همون دلیل غیر قابل تشخیص بودن جهت گردش
                        2- کم بودن ظرفیت شمارش کانتر
                        البته ابن دومی رو هم میشه چشم پوشی کرد و هم میشه جبرانش کرد
                        ولی در کل همیشه از وقفه خارجی استفاده می کنم و تا فرکانس 12khz رو با اپتو ایزولاتور به راحتی شمارش کردم که قابل افزایش هم هست
                        زندگي را تو بساز ،
                        نه بدان ساز که سازند و پذيري بي حرف ،
                        زندگي يعني جنگ ، تو بجنگ ،
                        زندگي يعني عشق ، تو بدان عشق بورز.

                        دیدگاه


                          #13
                          پاسخ : مشکل در راه اندازی encoder با اینتراپت (avr)

                          نوشته اصلی توسط microware
                          من به 2 دلیل از کانتر استفاده نمیکنم
                          1- همون دلیل غیر قابل تشخیص بودن جهت گردش
                          2- کم بودن ظرفیت شمارش کانتر
                          البته ابن دومی رو هم میشه چشم پوشی کرد و هم میشه جبرانش کرد
                          ولی در کل همیشه از وقفه خارجی استفاده می کنم و تا فرکانس 12khz رو با اپتو ایزولاتور به راحتی شمارش کردم که قابل افزایش هم هست
                          آهان . . .
                          پس خود میکرو موتور رو نمی چرخونه . . . با یه چیز دیگه کنترل میشه .
                          خب چرا از میکرویی استفاده نمیکنی که وقفه Wake-up on Pin Change استفاده نمیکنی ؟
                          مثل
                          ATmega48PA
                          ATmega88PA
                          ATmega168PA
                          ATmega328P
                          تا 20مگا هم کار میکنند .
                          حداقل 3 تا انکدر رو میتونه جوابگو باشه
                          البته میکرو های دیگه ای هم هست . . .

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

                          موفق باشی
                          [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                          معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                          معرفی نرم افزار Codewizard PWM
                          با من بیشتر آشنا شوید

                          دیدگاه


                            #14
                            پاسخ : مشکل در راه اندازی encoder با اینتراپت (avr)

                            معذرت میخوام مثل اینکه سوء تفاهم شد
                            قصد من از مطرح کردن اون سوال فقط این بود که بدونم با کانتر هم میتونم کارم رو راه بندازم یا نه
                            وگرنه من چندین ساله که توی صنعت از همین روش که گفتم استفاده میکنم
                            معمولا هم توی مدارام میکرو خروجی آنالوگ میده که توسط اینورتر موتور رو کنترل کنه
                            قبلا از mega32 استفاده می کردم که خوب بود. الان چند وقتیه با Xmega کار میکنم که دیگه از لحاظ امکانات حرف نداره :wow:

                            میشه بفرمایید این وقفه Wake-up on Pin Change چی هست؟ و چه جوری استفاده میشه؟
                            زندگي را تو بساز ،
                            نه بدان ساز که سازند و پذيري بي حرف ،
                            زندگي يعني جنگ ، تو بجنگ ،
                            زندگي يعني عشق ، تو بدان عشق بورز.

                            دیدگاه


                              #15
                              پاسخ : مشکل در راه اندازی encoder با اینتراپت (avr)

                              نوشته اصلی توسط Microware
                              معذرت میخوام مثل اینکه سوء تفاهم شد
                              قصد من از مطرح کردن اون سوال فقط این بود که بدونم با کانتر هم میتونم کارم رو راه بندازم یا نه
                              وگرنه من چندین ساله که توی صنعت از همین روش که گفتم استفاده میکنم
                              معمولا هم توی مدارام میکرو خروجی آنالوگ میده که توسط اینورتر موتور رو کنترل کنه
                              قبلا از mega32 استفاده می کردم که خوب بود. الان چند وقتیه با Xmega کار میکنم که دیگه از لحاظ امکانات حرف نداره :wow:

                              میشه بفرمایید این وقفه Wake-up on Pin Change چی هست؟ و چه جوری استفاده میشه؟
                              با کمال میل
                              خوش به حالت
                              ای کاش زمان به من فرصت میداد تا هم تجربه کار کردن با میکروهای XMega و هم ARM رو داشته باشم
                              بگذریم
                              و اما Wake-up on Pin Change
                              این امکانات یکی از بهترین امکانات وقفه ایست
                              به عنوان مثال اگر بخواهیم در یک پورت هر گونه تغییری احساس شد برنامه مان در یک زیر برنامه برود و یک کار خاصی را انجام بدهد ، از این امکانات استفاده میکنیم .
                              اگر از Rotary Encoder ها (ولوم هرزه) هم بخواهیم استفاده کنیم از این امکانات استفاده میکنیم . این ولوم ها هم مثل انکدرها هم دو فاز A و B دارد که 90 درجه با هم اختلاف فاز دارند و فاز Z نداره . این پایه ها را پس از گذراندن از مدار Debounce به این وقفه ها اتصال میدهیم . البته در این سایت مقاله ای در این مورد ندیدم و خیلی به ندرد دیدم از ولوم هرزه استفاده بشه چون دردسرهای خاص خودشو داره . . .
                              بگذریم
                              نمیدونم خوب توضیح دادم یا نه . . .
                              این 4 میکرویی که قبلا اسم بردم 3تا پورتشون از این امکانات برخورداره . که اگر به صورت جداگانه هم بخواهیم به هر کدام از پورتها یک انکدر وصل کنیم خیلی راحت میتونیم یک متغیر را شمارش کنیم (البته در این قسمت دردسر برنامه نویسی زیاده)

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

                              سوالی بود در خدمتم

                              موفق باشی
                              [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                              معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                              معرفی نرم افزار Codewizard PWM
                              با من بیشتر آشنا شوید

                              دیدگاه

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