اطلاعیه

Collapse
No announcement yet.

سروو با AVR

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

    #31
    پاسخ : سروو با AVR

    نوشته اصلی توسط e.r23
    آقای lostlordمن الان دانشگاهم برنامه شما رو یه کم تغییر دادم کار نمیکنه.تو /روتئوس چرا ولی تو عمل نه


    OCR1B=1500;

    while (1)
    {
    if(PINA.0==1){
    delay_ms(100);
    OCR1B=OCR1B+50;
    if(OCR1B>1800)
    OCR1B=1800;
    }
    if(PINA.1==1){
    delay_ms(100);
    OCR1B=OCR1B-50;
    if(OCR1B<1200)
    OCR1B=1200;
    }






    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: 1000.000 kHz
    // Mode: Ph. & fr. cor. PWM top=ICR1
    // OC1A output: Non-Inv.
    // OC1B output: Non-Inv.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0xA0;
    TCCR1B=0x12;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x4E;
    ICR1L=0x20;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;





    Chip type : ATmega16
    Program type : Application
    AVR Core Clock frequency: 8.000000 MHz
    Memory model : Small
    External RAM size : 0
    Data Stack size : 256



    یکی بگه من چه اشتباهی میکنم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟ :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2:

    این کار میکنه ولی 90درجه می چرخونه من 30درجش که میکنم نمیشه همون برنامه هه که اون دفه با پرتئوس دادم بهتون لطفا کمک کنید!!!!!!!!!!!!!!!!!!!!!!!! :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry:



    Chip type : ATmega16
    Clock frequency : 8.000000 MHz
    ************************************************** ***/

    #include <mega16.h>
    #include <delay.h>
    #define xtal 16000000

    void main(void)
    {

    PORTD=0x00;
    DDRD=0x20;
    PORTA=0x00;
    DDRA=0x00;
    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: 2000.000 kHz
    // Mode: Ph. & fr. cor. PWM top=ICR1
    // OC1A output: Non-Inv.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    TCCR1A=0x80;
    TCCR1B=0x12;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x4E;
    ICR1L=0x20;

    while (1)
    {

    if(PINA.0==1)
    {
    OCR1A = OCR1A+1;
    delay_ms(1);
    if(OCR1A>2000){OCR1A=2000;}
    }

    if(PINA.1==1)
    {
    OCR1A = OCR1A-1;
    delay_ms(1);
    if(OCR1A<1000){OCR1A=1000;}
    }
    if(PINA.0!=1 && PINA.1!=1){
    OCR1A = 1500;
    }

    }
    }

    دیدگاه


      #32
      پاسخ : سروو با AVR

      نوشته اصلی توسط e.r23
      آقای lostlordمن الان دانشگاهم برنامه شما رو یه کم تغییر دادم کار نمیکنه.تو /روتئوس چرا ولی تو عمل نه


      OCR1B=1500;

      while (1)
      {
      if(PINA.0==1){
      delay_ms(100);
      OCR1B=OCR1B+50;
      if(OCR1B>1800)
      OCR1B=1800;
      }
      if(PINA.1==1){
      delay_ms(100);
      OCR1B=OCR1B-50;
      if(OCR1B<1200)
      OCR1B=1200;
      }






      // Timer/Counter 1 initialization
      // Clock source: System Clock
      // Clock value: 1000.000 kHz
      // Mode: Ph. & fr. cor. PWM top=ICR1
      // OC1A output: Non-Inv.
      // OC1B output: Non-Inv.
      // Noise Canceler: Off
      // Input Capture on Falling Edge
      // Timer1 Overflow Interrupt: Off
      // Input Capture Interrupt: Off
      // Compare A Match Interrupt: Off
      // Compare B Match Interrupt: Off
      TCCR1A=0xA0;
      TCCR1B=0x12;
      TCNT1H=0x00;
      TCNT1L=0x00;
      ICR1H=0x4E;
      ICR1L=0x20;
      OCR1AH=0x00;
      OCR1AL=0x00;
      OCR1BH=0x00;
      OCR1BL=0x00;





      Chip type : ATmega16
      Program type : Application
      AVR Core Clock frequency: 8.000000 MHz
      Memory model : Small
      External RAM size : 0
      Data Stack size : 256



      یکی بگه من چه اشتباهی میکنم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟ :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2:

      سلام دوست عزیز
      من الان که این برنامه شما رو نگاه میکردم دیدم که بجای استفاده از fast pwm از pwm تصحیح فاز و فرکانس استفاده کردید!! :mrgreen:
      شما مقادیر TCCR1A و TCCR1B رو اینطوری تغییر بدید:
      TCCR1A=0x22;
      TCCR1B=0x1A;
      و در ضمن در حلقه while شما بازه حرکتی سروو رو خیلی محدود کردید: :sad:
      OCR1B<1200
      OCR1B>1800


      دیدگاه


        #33
        پاسخ : سروو با AVR

        نوشته اصلی توسط e.r23
        شما می دونید ولوم تو پرتئوس چیه؟می خام برناممو شبیه سازی کنم ببینم چی پیش میاد؟
        تو تمام اون فیلما علاوه بر میکرو یه دونه icدیگه هم بود فک کنم به خاطر ولومست!نمیدونید اون چیه؟

        یه مقاله در مورد موتور dcداشتم می خوندم نوشته بود اگه پلاریتشو عوض کنیم ترمز میکنه در مورد سروو های ما هم اینجوریه اگر به سشم قرمزه زمین و به قهوه ایه vccوصل کنم نسوزه؟؟؟؟؟؟؟؟؟؟؟؟/
        برای انتخاب پتانسیومتر توی پروتیوس، توی بخش مقاومت ها عبارت POT رو سرچ کنید:


        اون آی سی که علاوه بر میکرو استفاده میشده به احتمال زیاد یه ADC (مبدل آنالوگ به دیجیتال) بوده!
        بدون این آی سی هم میشه کار کرد و از adc داخلی خود میکرو استفاده کرد.

        سروو خودش یه مدار داخلی داره که اون مدار به موتور سروو فرمان میده!
        با معکوس کردن ولتاژ ورودی سروو ولتاژ تغذیه این مدار داخلی برعکس میشه و دیگه کار نمیکنه و ممکنه با سوختن آی سی درایورش سروو دیگه کار نکنه!
        شما با دادن پالس با عرض های متفاوت به سروو، این مدار داخلی باعث چرخش موتور داخل سروو میشه و با ثابت بودن عرض این پالس سروو توی همون حالت قفل میشه و دیگه تکون نمیخوره!

        دیدگاه


          #34
          پاسخ : سروو با AVR

          نوشته اصلی توسط lostlord
          برای انتخاب پتانسیومتر توی پروتیوس، توی بخش مقاومت ها عبارت POT رو سرچ کنید:


          اون آی سی که علاوه بر میکرو استفاده میشده به احتمال زیاد یه ADC (مبدل آنالوگ به دیجیتال) بوده!
          بدون این آی سی هم میشه کار کرد و از adc داخلی خود میکرو استفاده کرد.

          سروو خودش یه مدار داخلی داره که اون مدار به موتور سروو فرمان میده!
          با معکوس کردن ولتاژ ورودی سروو ولتاژ تغذیه این مدار داخلی برعکس میشه و دیگه کار نمیکنه و ممکنه با سوختن آی سی درایورش سروو دیگه کار نکنه!
          شما با دادن پالس با عرض های متفاوت به سروو، این مدار داخلی باعث چرخش موتور داخل سروو میشه و با ثابت بودن عرض این پالس سروو توی همون حالت قفل میشه و دیگه تکون نمیخوره!


          سلام دوست عزیز
          من الان که این برنامه شما رو نگاه میکردم دیدم که بجای استفاده از fast pwm از pwm تصحیح فاز و فرکانس استفاده کردید!! :mrgreen:
          شما مقادیر TCCR1A و TCCR1B رو اینطوری تغییر بدید:
          TCCR1A=0x22;
          TCCR1B=0x1A;
          و در ضمن در حلقه while شما بازه حرکتی سروو رو خیلی محدود کردید: :sad:
          OCR1B<1200
          OCR1B>1800
          [/quote]

          من خودم از قصداز ph&frاستفاده کردم چونتو برنامم ocr عوض میشه با این مد نویز پالس مربعی من حداقل میشه تو کتاب میکرو خوندم
          رباتم میخاد راه بره ،نمیشه که 90درجه پاشو تکون بده فکر کنید خودتون دارید راه میرید مفصل ران شما حداکثر 50 -60 درجه حرکت میکنه تازه ربات من که خیلی کو چیکه 30درجه برای راه رفتنش کافیه :biggrin:
          TCCRهم که تو تنظیمات کد ویزارد با توجه به چیزایی که میخام خودش مقدار میگیره :rolleyes:
          هر جا اشتباه گفتم بگین


          تازه من یه sg5010هم گرفتم از اون دوتا سروو شکسته هتم هم چرخدنده هاشونو یکی کردم یه دونه سرووی سالم جمع جور شداون برنامه هه که گفتم کار کرد، رو sg5010هه کار نکرد! به نظر شما به خاطر فرکانسم که 50هرتز بوده؟؟؟؟؟؟؟؟؟؟/

          نداشت! به 50هرتز ربطی نداشت الان یه مطلب در موردش خوندم شاید به دیوتی سایکله ربط داره؟
          :question:
          بابا من اصلا موندم تو کاراین سروو ها من که خسته شدم یه برنامه رو یکیش می جوابه همون موقع اون یکی رو می وصلم جواب نمیده :question: :surprised:داریم مردم؟؟؟

          میشه از فیوز بیتام باشه؟؟؟؟؟؟؟؟؟؟ولی موضوع اینه من pwm ام رو با اسکوپ میبینم فقط ایراد اینجاست تغییرات دیوتی سایکلمو خیلی نمیبیم با اسکوپ!
          امکان داره از فیوزبیتام باشه من وقتی از کریستال خارجی استفاده می کنم فقط clk opt رو 0 میکنم بقیه 1اند تو کتاب خوندم برای کریستال خارجی همه ی clk selها باید1 باشه یا 1010 و اگر فرکانس بالای 8بایدclk optصفر باشه :eek:
          دیگه واقعا هیچی به ذهنم نمی رسه
          اگه باز لطف کنید جواب بدین بازم واقعا ممنون میشم :redface: :redface: :redface: :redface: :redface: :redface: :redface: :redface: :redface: :redface: :redface: :redface: :redface: :redface: :redface: :redface: :redface: :redface: :redface: :redface: :redface: :redface: :redface: :redface: :redface:













          دیدگاه


            #35
            پاسخ : سروو با AVR

            سلام برنامه کنترل سروو با ولوم: :nerd:

            http://s3.picofile.com/file/7390630535/Video0044.mp4.html

            اینم کدش:

            http://www.4shared.com/rar/FA6qgpjC/servo_potentiometer.html

            دیدگاه


              #36
              پاسخ : سروو با AVR

              سلام دوست عزیز الان مشکلتان کجاست؟ چندتا سروو دارید؟
              معجزه این است که هرچه داشته هایت را بیشتر با دیگران سهیم شوی،داراتر می شوی (لئونارد نیموی)
              اگر مغزانسان،چنان ساده می بود که ما از آن سر در می آوردیم،هنوز چنان احمق بودیم که هیچ از آن سر در نمی آوردیم!
              آموزش Modelsim

              دیدگاه


                #37
                پاسخ : سروو با AVR

                نوشته اصلی توسط skiboy
                سلام دوست عزیز الان مشکلتان کجاست؟ چندتا سروو دارید؟
                سلام من 2تا سروو دارم مشکل یکی دوتا نیست ولی حاد ترینش اینه که من هر برنامه ای به سرووهام میدن اونا به محض این که برنامه رو لود کردم تو میکرو و سرووم رو وصل کردم سروو میچرخه ولی من میخام اصلا چرخش نداشته باشه تا وقتی که من کلیدا رو بزنم برنامشم نوشتم تو پرتئوس درسته ولی تو عمل نه! آقای lostlord هم زحمت کشیدن یه برنامه به من دادن ولی تو اونم سروو حرکت اولیه داره! :surprised:
                خلاصه اینکه ما به اینجا رسیدیم که به پیشنهاده آقای lostlord ولوم بذاریم تا زاویه اولیه رو درست کنیم ولی الان می بینم اینطوری هم نمیشه
                من این دو تا سروو رو به پاهای رباتم وصلیدم میخام با حرکت سروو ها روباتم راه بره نمیشه که همش دستم به ولوم باشه!من فکر میکردم میشه زاویه اولیه رو با ولوم درست کنیم بعد با کلید راه بیفته ولی مثل اینکه اینطور نمیشه!حالا فعلا که دارم می فکرم ببینم میشه به اون برنامه ولوم آقای lostlord کلیدم اضافه کنیم یا نه!
                برناممو می ذارم خوشحال میشم اگه متوجه ایراداش شدید به منم بگین دوست دارم بدونم ایرادم کجاست واقعا!بدجور گیر کردم :cry:

                http://www.4shared.com/rar/UQoeO35K/servo.html

                دیدگاه


                  #38
                  پاسخ : سروو با AVR

                  نوشته اصلی توسط e.r23
                  خلاصه اینکه ما به اینجت رسیدیم که به پیشنهاده آقای lost lordولو بذاریم تا زاویه اولیه رو درست کنیم ولی الان می بینم اینطوری هم نمیشه
                  من این دو تا سروو رو به پاهای رباتم وصلیدم نمیشه میخام با حرکت سروو ها روباتم راه بره نمیشه که همش دستم به ولوم باشه!
                  این برنامه ای که گذاشتم برای این نبود که روباتتون رو باهاش کنترل کنید!
                  این رو گذاشتم تا با ولوم اون زاویه اولیه دلخواهتون رو به سروو بدید و مقدار اونو بردارید بزارید توی برنامه اصلی تا موقع روشن شدن، سروو ها در اون حالتی که تنظیم کردید ثابت باشن!

                  دیدگاه


                    #39
                    پاسخ : سروو با AVR


                    [/quote]
                    آقای lost lordاشکال از فیوز بیتام نبود?اگه دارین این صفحه رو می خونید میشه اون سوال قبلی هامو جواب بدین؟
                    :sad:

                    دیدگاه


                      #40
                      پاسخ : سروو با AVR

                      نوشته اصلی توسط lostlord
                      این برنامه ای که گذاشتم برای این نبود که روباتتون رو باهاش کنترل کنید!
                      این رو گذاشتم تا با ولوم اون زاویه اولیه دلخواهتون رو به سروو بدید و مقدار اونو بردارید بزارید توی برنامه اصلی تا موقع روشن شدن، سروو ها در اون حالتی که تنظیم کردید ثابت باشن!
                      ممنونم واقعا ممنون ولی موضوع اینه همیشه که سرووهام به یه زاویه ی خاص نمیرن که من اون زاویه رو در بیارم وگرنه به طور چشمی یه حدسی میزدم یه جور رفع و روجوع میشد اینا همینجور تا جایی که مفصل روبات میره واسه خودشون می چرخن آخرسرم نمیتونن جلوتر برن گیر می کنن سروو میشکنه(تازه کشفیدم)
                      :angry:

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


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

                      دیدگاه


                        #41
                        پاسخ : سروو با AVR

                        میتونید یه عکس از این روباتتون بزارید؟

                        دیدگاه


                          #42
                          پاسخ : سروو با AVR

                          نوشته اصلی توسط lostlord
                          میتونید یه عکس از این روباتتون بزارید؟
                          فک نکنم بتونم :redface:چون من فعلا کلا بازش کردم برای اینکه سروو ها رو توش فیکس کرده بودم چون شکست حالا همشو در آوردم در اصل الان هیچی ندارم فقط دارم سروو ها رو اول درست میکنم که به مصیبت قبلی که فقط چند روز فیکس کردن پا و سروو ها بود دچار نشم.
                          ولی شما برای تصور فک کنید پای خودتون رو می خاین با سروو تکون بدین بیشتر از 90که نمیاد بالا پا!
                          حالا فک کنید که وایسادید سروو هم وصل میشه به مدار یه دفه سروو پای شما رو انقدر میاره بالا که می خاد از 90 هم بگذره ولی چون پای شما بالا تر نمیاد به سروو فشار میاد و چرخدنده هاش می شکنه :surprised:

                          دیدگاه


                            #43
                            پاسخ : سروو با AVR

                            سلام جناب e.r23 :redface:
                            شدیدا توصیه میکنم که مقاله زیر رو دانلود کنید و بخونید
                            http://www.parallax.com/Portals/0/Downloads/docs/books/edu/toddler.pdf

                            دیدگاه


                              #44
                              پاسخ : سروو با AVR

                              سلام آقای lostlordگرامی
                              بنده هم اکیدا دارم توصیه ی شدید شما رو دانلود می کنم :rolleyes:
                              خیلی حجمش بالاست،دانلودش طولیده

                              دیدگاه


                                #45
                                پاسخ : سروو با AVR

                                آقای لاست لرد سروو sg5010رو اگه با فرکانس 50هرتز راه بندازم باید کارکنه دیگه نباید؟
                                سروو جدیدم خیلی خوب با 50 هرتز کار نکرد تو جمهوری چکش نکردم می ترسم درست نباشه ولی بعید میدون
                                من بهش 5 ولت تغذیه دادم و 50هرتز هم فرکانس oo:

                                دیدگاه

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