اطلاعیه

Collapse
No announcement yet.

نحوه راه اندازی موتور سروو s03TXF ؟؟؟

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

    #16
    پاسخ : نحوه راه اندازی موتور سروو s03TXF ؟؟؟

    مجاهد جان اگه زبان برنامه نویسیت بیسیک بود میگفتم خیلی راحت از دستور config servo استفاده کن ولی چون با c کار میکنی شرمندتم چون من اصلان بلد نیستم فقط یه نکته ای بهت میگم که فکر میکنم تا حالا کسی بهش توجه نکرد !!!!!! (همونطور که خودت میدونی عرض پالس ارسالی به موتور سروو مشخص میکنه که این سروو در چه جهتی و چقدر بچرخه ولی اینکه چند بار در ثانیه این پالس فرستاده بشه به نظر من خیلی مهمتره چون من زمانی که روی سروو کار میکردم بعد از ازمایش های مخطلف فهمیدم زمان تاخیر ارسال بالس تاثیر مستقیم روی مقدار جابجایی سروو به ازای هر عدد افزایش عرض بالس ارسالی داره علاوه براون روی حد اکثر باز شدن سروو هم تاثیر داشت تو بعضی از عداد تا 180 میرسید تو بعضی از عداد مثلا تا 110 میرفت و دیگه با وجود افزایش عرض پالس سروو حرکت نمیکرد)
    روزی که درک کردیم همه چیز به خدا تعلق دارد . آن روز .روز طلوع دانش است

    دیدگاه


      #17
      پاسخ : نحوه راه اندازی موتور سروو s03TXF ؟؟؟

      سلام دوستان
      یه پالس 50 هرتزی با دیوتی سایکل 12 درصد (2.5 میلی ثانیه) و یه دونه دیگه 2 درصدی (0.5 میلی ثانیه)ساختم [دو تا کلید برای این کار گذاشتم]
      ولی بر خلاف نوشته ها و شبیه سازی (در پرتیوس) ، در عمل حرکت به منتها الیه راست و چپ ندارد
      و از هر 10 بار فشار کلید به طور اتفاقی به زاویه ای میرود ولی دوباره به منتها الیه راست باز میگردد ؟
      دوستان مشکل از کجاست؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟؟
      زندگی یه محیط برنامه نویسیه که خودمون برنامشو مینویسیم
      و هر لحظه امکان فشار روی کلیک run هست
      پس ریسک نکنین خط به خط برنامتون رو چک بکنید چون شاید دیگه فرصت دباگ کردن برنامه رو نداشته باشید.
      الهم اغفر لنا ذنوبنا

      دیدگاه


        #18
        پاسخ : نحوه راه اندازی موتور سروو s03TXF ؟؟؟

        :angry: :angry: کمکـــــــــــــــــــــــــــــــــــــــــــــــ ـــ :angry: :angry:
        هیشکی اینجا نیس راهنمایی کنه :cry2:
        زندگی یه محیط برنامه نویسیه که خودمون برنامشو مینویسیم
        و هر لحظه امکان فشار روی کلیک run هست
        پس ریسک نکنین خط به خط برنامتون رو چک بکنید چون شاید دیگه فرصت دباگ کردن برنامه رو نداشته باشید.
        الهم اغفر لنا ذنوبنا

        دیدگاه


          #19
          پاسخ : نحوه راه اندازی موتور سروو s03TXF ؟؟؟

          سلام دوست من.
          شاید رنجی که اعمال کردید بیش از اون حدی بوده که سروو میپذیرفته و باعث شده سروو هنگ کنه، این اعداد رو بکنید 1 و 2 میلی ثانیه و دوباره تست کنید، در ضمن برای تست اول به نظر بنده بهتره اول عرض پالس اولی رو اعمال کنید و ببینید سروو چه کار میکنه، بعد دومی رو، یعنی اول میکرو رو با 1 میلی ثانیه پروگرم کنید و سروو رو بهش بزنید و نتیجه رو ببینید، بعد دوباره با 2 میلی ثانیه این کار رو انجام بدید، البته کاری که شما انجام دادید هم فکر نمیکنم ایرادی داشته باشه، این نظر بنده است، حالا تست کنید ضرر نداره :agree:
          زندگی برگ بودن در مسیر باد نیست
          امتحان ریشه هاست
          ریشه هم هرگز اسیر باد نیست
          زندگی چون پیچک است
          انتهایش میرسد پیش خدا!

          دیدگاه


            #20
            پاسخ : نحوه راه اندازی موتور سروو s03TXF ؟؟؟

            منم 1 و 2 رو هم امتحان کردم
            ولِِِِــــــــــــــــــــــــــــــــــــی اصلا تو یک نقطه ثابت نمیشه
            زندگی یه محیط برنامه نویسیه که خودمون برنامشو مینویسیم
            و هر لحظه امکان فشار روی کلیک run هست
            پس ریسک نکنین خط به خط برنامتون رو چک بکنید چون شاید دیگه فرصت دباگ کردن برنامه رو نداشته باشید.
            الهم اغفر لنا ذنوبنا

            دیدگاه


              #21
              پاسخ : نحوه راه اندازی موتور سروو s03TXF ؟؟؟

              شما از برنامتون مطمئنید؟
              راستی با تایمرها کار کردید؟
              قاعدتا نباید مشکلی پیش بیاد، روتین ماجرا همینی هست که قبلا عرض کردم و با 1 و 2 میلی ثانیه دیگه حتما باید جواب بده!
              مگر اینکه مشکلی در برنامه نویسی وجود داشته باشه....
              زندگی برگ بودن در مسیر باد نیست
              امتحان ریشه هاست
              ریشه هم هرگز اسیر باد نیست
              زندگی چون پیچک است
              انتهایش میرسد پیش خدا!

              دیدگاه


                #22
                پاسخ : نحوه راه اندازی موتور سروو s03TXF ؟؟؟

                سلام
                این دو تا فرمول درسته ؟ (تایمر0 مد fast PWM)
                (FOC0 = Fclk-I/O ÷ N.(256-TCNT0
                (Dutycycle = OCR0÷ (256 - TCNT0

                من بر اساس اینا مقدار ocr و tcnt رو بدست آوردم
                tcnt =100
                ocr =5 و ocr=25
                زندگی یه محیط برنامه نویسیه که خودمون برنامشو مینویسیم
                و هر لحظه امکان فشار روی کلیک run هست
                پس ریسک نکنین خط به خط برنامتون رو چک بکنید چون شاید دیگه فرصت دباگ کردن برنامه رو نداشته باشید.
                الهم اغفر لنا ذنوبنا

                دیدگاه


                  #23
                  پاسخ : نحوه راه اندازی موتور سروو s03TXF ؟؟؟

                  بابت پیغام خصوصی خواهش میکنم من وظیفه مو انجام میدم.
                  ببین من کاری به برنامه شما ندارم اگه میخواین تا یه برنامه براتون بنویسم که به وسیله ی adc میکرو مقدار یه ولوم رو بخونه و متناسب با اون دیتوی سایکل بین اون محدوده تغییر کنه تا اینجوری دیوتی سایکلای مختلف رو به راحتی به سروو بدی . تو این برنامه فرکانس پالس pwm ثابت هست.
                  اگه با این کار موافق هستین بگین تا براتون انجامش بدم اما قول نمیدم که برسم امشب انجام بدم.
                  [glow=red,2,300]گرد هم آمدن شروع است.با هم ماندن پیشرفت است.با هم کار کردن موفقیت است.[/glow]
                  [img width=98 height=100]http://s3.picofile.com/file/7407857311/icon3.png[/img]

                  دیدگاه


                    #24
                    پاسخ : نحوه راه اندازی موتور سروو s03TXF ؟؟؟

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

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

                    زندگی یه محیط برنامه نویسیه که خودمون برنامشو مینویسیم
                    و هر لحظه امکان فشار روی کلیک run هست
                    پس ریسک نکنین خط به خط برنامتون رو چک بکنید چون شاید دیگه فرصت دباگ کردن برنامه رو نداشته باشید.
                    الهم اغفر لنا ذنوبنا

                    دیدگاه


                      #25
                      پاسخ : نحوه راه اندازی موتور سروو s03TXF ؟؟؟

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

                      من برا توضیح برنامه 2 صفحه مطلب نوشته بودم اما از شانسم حواسم نبود پاکش کردم برا همین اکتفا کردم به توضیحات زیر:

                      جدا عجب شانسی داری میخواستم الان بذارمش سرور eca مشکل پیدا کرده بود.

                      اول لینک دانلود کل پروژه رو میذارم:http://s1.picofile.com/file/73392356...motor.rar.html

                      و اما اشتباهات:
                      1. ببین وقتی یه پین رو به عنوان ورودی تعریف مکنیم ویه کلید بهش متصل میکنیم برای چک کردن کلید باید اونه به این صورت نوشت (if(PINB.0==0 نه این که این کار رو بکنید(if(PINB.0==1

                      2. به این نکته خیلی توجه کن وقتی که رجیستر TCNT مقدار دهی اولیه داره (مقدار TCNT مخالف صفر هست) باید حتما بعد از هر بار سر ریز شده دوباره مقدار اولیه بهش داده بشه برا این کار میتونیم وقفه ی سر ریز تایمر رو فعال کنیم و تو زیر روال وقفه رجیستر TCNT رو مقدار دهی کنیم کاری که شما نکرده بودین.

                      3. به این نکته خیلی خیلی توجه کن چون که خیلیا اینو اشتباه میکنن حتی بعضی از حرفه ای ها ببین وقتی رجیستر TCNTمقدار اولیه داره(مقدار TCNT مخالف صفر هست) مقداری که قراره تو رجیستر OCR قرار بگیره باید حتما حتما با مقدار اولیه TCNT جمع بشه مثلا اگه مقدار TCNT برابر 100 هست و میخوایم که مقدار OCR رو 10 بدیم با ید مقدار OCR برار 110 بشه.

                      این مطالب تو برنامه مشخصه.

                      توجه کن اگه تو فایل پروتئوس رو سروو کلیک راست کنید مینیمم و ماکزیمم کنترل پالس رو به ترتیب 1 و 2 میلی ثانیه گذاشته این نشون میده که انتظار نداشته باشین تو عمل میزان چرخش سروو با پروتئوس یکی باشه. در نتیجه شما برای چرخش دلخواهت باید مقدار OCR مینیمم و ماکزیمم رو درست تنظیم کنی.

                      یه نکته ی دیگه اینکه چون گفته بودی حتما با تایمر صفر برنامشو بنویسم منم با صفر نوشتم اما بهتر این هست که از تایمر 1 استفاده کنیم چون تایمر 1 مد تصحیح فاز و فرکانس داره که تو کیفیت و صحت موج خیلی موثره اما تایمر 0 فقط مد تک شیب(سریع) داره اگه از برنامه جواب نگرفتی بگو تا با تایمر 1 برنامشو بنویسم.

                      برنامه رو با نسخه ی 2.5.3 نوشتم دقت کن که کلاک میکرو رو 8 مگا هرتز در نظر گرفتم اگه خواستی میتونی تغییر بدی اما باید نسبت تقسیم تایمر رو هم تنظیم کنی یادت نره.

                      و اما برنامه:
                      کد:
                      /*****************************************************
                      CodeWizardAVR V2.05.3 Standard
                      Author : Hamid...
                      Chip type        : ATmega16A
                      Program type      : Application
                      AVR Core Clock frequency: 8.000000 MHz
                      Memory model      : Small
                      External RAM size    : 0
                      Data Stack size     : 256
                      *****************************************************/
                      #include <mega16a.h>
                      
                      interrupt [TIM0_OVF] void timer0_ovf_isr(void)
                      {
                      
                      TCNT0=0x64;
                      }
                      
                      void main(void)
                      {
                      
                      PORTB=0x03;
                      DDRB=0x08;
                      
                      // Timer/Counter 0 initialization
                      // Clock source: System Clock
                      // Clock value: 7.813 kHz
                      // Mode: Fast PWM top=0xFF
                      // OC0 output: Non-Inverted PWM
                      TCCR0=0x6D;
                      TCNT0=0x64;
                      OCR0=112;
                      
                      
                      TIMSK=0x01;
                      ACSR=0x80;
                      #asm("sei")
                      while (1)
                         {
                          if(PINB.0==0)OCR0=116; 
                          if(PINB.1==0)OCR0=108; 
                         };
                      }






                      [glow=red,2,300]گرد هم آمدن شروع است.با هم ماندن پیشرفت است.با هم کار کردن موفقیت است.[/glow]
                      [img width=98 height=100]http://s3.picofile.com/file/7407857311/icon3.png[/img]

                      دیدگاه


                        #26
                        پاسخ : نحوه راه اندازی موتور سروو s03TXF ؟؟؟

                        با سلام خدمت استاد گرانقدر :bye

                        و اما اشتباهات:
                        1. ببین وقتی یه پین رو به عنوان ورودی تعریف مکنیم ویه کلید بهش متصل میکنیم برای چک کردن کلید باید اونه به این صورت نوشت (if(PINB.0==0 نه این که این کار رو بکنید(if(PINB.0==1

                        2. به این نکته خیلی توجه کن وقتی که رجیستر TCNT مقدار دهی اولیه داره (مقدار TCNT مخالف صفر هست) باید حتما بعد از هر بار سر ریز شده دوباره مقدار اولیه بهش داده بشه برا این کار میتونیم وقفه ی سر ریز تایمر رو فعال کنیم و تو زیر روال وقفه رجیستر TCNT رو مقدار دهی کنیم کاری که شما نکرده بودین.

                        3. به این نکته خیلی خیلی توجه کن چون که خیلیا اینو اشتباه میکنن حتی بعضی از حرفه ای ها ببین وقتی رجیستر TCNTمقدار اولیه داره(مقدار TCNT مخالف صفر هست) مقداری که قراره تو رجیستر OCR قرار بگیره باید حتما حتما با مقدار اولیه TCNT جمع بشه مثلا اگه مقدار TCNT برابر 100 هست و میخوایم که مقدار OCR رو 10 بدیم با ید مقدار OCR برار 110 بشه.

                        این مطالب تو برنامه مشخصه.

                        1- تمام جدال ها برای تصورات است نه تصدیقات
                        بله حرف شما صحیح است ولی بنده این جا از ورودی 0 استفاده نکردم بلکه ورودی 5+ ولت هست

                        2-استاد این کار رو کردم ولی بازم ... :angry:

                        3- oo: علت این کار رو متوجه نشدم ، بالاخره اگه اون فرمول درسته پس دیگه چه مشکلی هست واگر هم ناقصه لطفا دلیله این 100+ رو بگید تا از سردرگمی بیایم بیرون ؟

                        4- :cry2:
                        جدا عجب شانسی داری میخواستم الان بذارمش سرور eca مشکل پیدا کرده بود.
                        ازتون خواهش میکنم تا زمانی که سایت مشکل داره اینجا پلود نکنید چون بسیاری از اساتید که فایلاشون رو اینجا پلود کرده بودند متاسفانه الان موجود نیست(انشالله که به زودی مشکلش حل بشه)
                        استاد یک فیلم کوتاه وچندتا عکس از جفتک انداختنای سروو گرفتم لطفا حتما ملاحظه(دانلود) بکنید
                        http://s2.picofile.com/file/73400875...motor.zip.html



                        حرف پایانی : با تشکر از زحمات شما و دوستان عزیزم که در این تاپیک تجربه و علم خودشون رو در اختیار دیگران قرار میدهند @};-



                        زندگی یه محیط برنامه نویسیه که خودمون برنامشو مینویسیم
                        و هر لحظه امکان فشار روی کلیک run هست
                        پس ریسک نکنین خط به خط برنامتون رو چک بکنید چون شاید دیگه فرصت دباگ کردن برنامه رو نداشته باشید.
                        الهم اغفر لنا ذنوبنا

                        دیدگاه


                          #27
                          پاسخ : نحوه راه اندازی موتور سروو s03TXF ؟؟؟

                          نوشته اصلی توسط مجاهد

                          1- تمام جدال ها برای تصورات است نه تصدیقات
                          بله حرف شما صحیح است ولی بنده این جا از ورودی 0 استفاده نکردم بلکه ورودی 5+ ولت هست
                          بله حدس میزدم که اون سر کلید رو به 5+ وصل کردین اما اینو قبلا نگفته بودین.

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

                          شما که هنوز فایلی که براتون گذاشتمو نریختیش داخل میکرو . فایل هگز رو بدون اینکه برنامه رو تغییر بدین بریز داخل میکرو.

                          [glow=red,2,300]گرد هم آمدن شروع است.با هم ماندن پیشرفت است.با هم کار کردن موفقیت است.[/glow]
                          [img width=98 height=100]http://s3.picofile.com/file/7407857311/icon3.png[/img]

                          دیدگاه


                            #28
                            پاسخ : نحوه راه اندازی موتور سروو s03TXF ؟؟؟

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

                            دیدگاه


                              #29
                              پاسخ : نحوه راه اندازی موتور سروو s03TXF ؟؟؟

                              مشکلم همچنان برقراره یکی بیاد یاری کنه :angry: :angry: :angry:
                              زندگی یه محیط برنامه نویسیه که خودمون برنامشو مینویسیم
                              و هر لحظه امکان فشار روی کلیک run هست
                              پس ریسک نکنین خط به خط برنامتون رو چک بکنید چون شاید دیگه فرصت دباگ کردن برنامه رو نداشته باشید.
                              الهم اغفر لنا ذنوبنا

                              دیدگاه


                                #30
                                پاسخ : نحوه راه اندازی موتور سروو s03TXF ؟؟؟

                                سلام این طور که من فهمیدم شما می خواهید سروو در زوایای صفر و 180 درجه قرار بگیرد ولی کامل سرو به این نقطه نمی رود .....درسته؟
                                اگر شما با تایمرها کارنکرده اید برای شروع خودتان می توانید با صفر ویک کردن ویک wait ناشیانه وسطش عملکرد سروو را تست کنید چه با Bascom و چه با codevision
                                و متوجه می شوید که وقتی این wait ها را مثلا هر دفعه 50 میلی ثانیه زیاد می کنید مثلا 5 درجه می چرخه ولی از یک جایی دیگه این روند خطی ادامه نداره
                                در واقع سروو دریک قسمتی روند خطی داره واز جایی به بعد در اصطلاح می رود تو اشباه و باید به صورت تجربی خیلی چیزها را بدست بیاورید(البته نمی دونم برای اینکه چینی هستنند این طوری هست یانه البته مدل به مدل هم فرق می کنه )
                                به نظر من برای شروع همین طور عمل کن وقتی جواب گرفتی یکمی در مورد تایمرها مطالعه کن بعد بیا با تایمر بنویس
                                معجزه این است که هرچه داشته هایت را بیشتر با دیگران سهیم شوی،داراتر می شوی (لئونارد نیموی)
                                اگر مغزانسان،چنان ساده می بود که ما از آن سر در می آوردیم،هنوز چنان احمق بودیم که هیچ از آن سر در نمی آوردیم!
                                آموزش Modelsim

                                دیدگاه

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