اطلاعیه

Collapse
No announcement yet.

اندازه گیری اختلاف فاز توسط AVR

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

    #31
    پاسخ : اندازه گیری اختلاف فاز توسط AVR

    سلام
    خوب طبق اونچیزی که توی دیتا شیتش امده این یک سنسور جریان هم AC و هم DC هست که خوروجی اش با
    توجه به نوع سنسور به ازای هر یک آمپر از 66 تا 185 میلی ولت تغییر میکنه و ولتاژ مرجع اش هم در جریان صفر آمپر برابر با 2.5 ولت هست که این یعنی خروجی اش به ازای یک سیگنال جریان سینوسی یک یک سیگنال مربعی متناوب و هم فرکانس جریان ورودی هست که می تونید ازش برای اندازه گیری گیری اختلاف فاز استفاده کنید برای استفاده ازش هم یک سری مثال توی دیتاشیتش هست می تونید ا اون ها استفاده کنید.

    راستی اینرو که با من نبودید :
    نوشته اصلی توسط abol_rh
    با تشکر از سایت خوب شما

    دیدگاه


      #32
      پاسخ : اندازه گیری اختلاف فاز توسط AVR

      با سلام خدمت دوستان من یه برنامه کسینوس فی متر نوشتم می زارم شاید بدرد کسی بخوره
      کد:
      [left]$regfile = "m32def.dat"
      $crystal = 8000000
      Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4
      Config Lcd = 16 * 2
      Config Lcdbus = 4
      Cursor Off
      Config Timer0 = Timer , Prescale = 1024 : Stop Timer0 : Timer0 = 0
      Config Timer2 = Timer , Prescale = 1024 : Stop Timer2 : Timer2 = 0
      Config Int0 = Rising
      Config Int1 = Rising
      '==============================================================================
      Dim Cnt0 As Byte
      Dim Cnt2 As Byte
      Dim T0 As Word
      Dim T2 As Word
      Dim M0 As Long
      Dim M2 As Long
      Dim Hasl0 As Single
      Dim Hasl2 As Single
      Dim Deg As Single , Deg2 As Byte
      Dim Look As Single , Pf As Byte , Pf2 As Single
      '====================================
      Enable Interrupts
      Enable Int0
      Enable Int1
      On Int0 Q
      On Int1 W
      '====================================
      Cnt0 = 0
      Cnt2 = 0
      Do
        Deg = Hasl0 / Hasl2
        Deg = Deg * 360
        Deg2 = Round(deg)
        Locate 1 , 5
        Lcd "DEG=" ; Deg2 ; "  "
        Pf = Lookup(deg2 , Table0)
        Pf2 = Pf / 100
        Locate 2 , 5
        Lcd "P.F=" ; Pf2 ; "  "
      Loop
      '====================================
      Table0:
           Data 100 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 98 , 98
           Data 98 , 97 , 97 , 97 , 96 , 96 , 95 , 95 , 94 , 93
           Data 93 , 92 , 92 , 91 , 90 , 89 , 89 , 88 , 87 , 86
           Data 85 , 84 , 83 , 82 , 81 , 80 , 79 , 78 , 77 , 76
           Data 75 , 74 , 73 , 71 , 70 , 69 , 68 , 66 , 65 , 64
           Data 62 , 61 , 60 , 58 , 57 , 55 , 54 , 52 , 51 , 50
           Data 48 , 46 , 45 , 43 , 42 , 40 , 39 , 37 , 35 , 34
           Data 32 , 30 , 29 , 27 , 25 , 24 , 22 , 20 , 19 , 17
           Data 15 , 13 , 12 , 10 , 08 , 06 , 05 , 03 , 01 , 00 , 00 , 00 , 00
      '=====================================
        Q:
         Timer0 = 0
         Start Timer0
         Stop Timer2
         Incr Cnt2
         T2 = Timer2
         M2 = M2 + T2
         If Cnt2 = 50 Then
           Cnt2 = 0
           Hasl2 = M2 / 50
           M2 = 0
         End If
         Timer2 = 0
         Start Timer2
        Return
      '=====================================
        W:
         Stop Timer0
         Incr Cnt0
         T0 = Timer0
         M0 = M0 + T0
         If Cnt0 = 50 Then
           Cnt0 = 0
           Hasl0 = M0 / 50
           M0 = 0
         End If
        Return
      '=====================================[/left]
      خداوند بی نهایت است اما به قدر نیاز تو فرود می آید ، به قدر آرزوی تو گسترده می شود و به قدر ایمان تو کارگشاست.
      [hr]

      دیدگاه


        #33
        پاسخ : اندازه گیری اختلاف فاز توسط AVR

        با سلام
        میشه یه توضیح در مورد برنامه ات بدی
        من دنبال برنامه یا مداری هستم که بتونه اختلاف فاز سه تا ولتاژ (R,S,T)را بگیره
        :biggrin: :biggrin: :biggrin:

        دیدگاه


          #34
          پاسخ : اندازه گیری اختلاف فاز توسط AVR

          اگه روش کارو میدونین که هیچ اگه هم نمیدونین اول یه سری توضیح در مورد نحوه اندازه گیری میدم بعد میرم سراغ برنامه :read:
          خب ما برای اندازه گیری اختلاف فاز باید ابتدا یه نمونه از شکل موج جریان و ولتاژ داشته باشیم که در اینجا از ترانسهای ct و pt میتونیم استفاده کنیم ، خب حالا که دو شکل موج رو داریم برای اینکه بتونیم اونو به میکرو بدیم و از اون مهمتر بتونیم اختلاف فازشونو در بیاریم باید اونارو به مربعی تبدیل کنیم که می تونیم از دو تا مقایسه کننده برای این کار استفاده کنیم که شکل موج ها در این مرحله به صورت عکس زیر در می یان .



          خب همون طور که تو تصویر میبینیم دو شکل موج سینوسی رو به مربعی تبدیل کردیم حالا اگه دو زمان t1 و t2 را که همونطور در شکل زیر میبینی داشته باشیم میتونیم از فرمول 360*(t1/t2) اختلاف فازو بدست بیاریم .



          خب حالا چه طوری این دو زمان رو بدست بیاریم ؟ معلومه در میکرو باید دو تایمر در لبه بالا رونده 1 استارت بشوند و یکی از این دو تایمر باید در لبه بالا رونده 2 استپ بشه و دیگری در لبه بالا رونده 3 که اینطوری مقادیری که تایمرها دارند همون t1 و t2 ما هستن .لبه ها توشکل پایین معلومن



          شرمنده که سرتون رو بدرد آوردم حالا با دونستن اینا میریم سراغ برنامه
          خب من تو ابتدای برنامه اومدم
          1-میکرو تعریف کردم
          2-فرکانس کاری رو معین کردم
          3- lcd رو کنفیگ کردم
          4-تایمرا رو کانفیگ کردم (اینجا توجه کن که فرکانس کاری تایمر رو طوری بگیری که ترجیحا تو یه پریود شکل موجات سریز نشن )
          5-اینتراپت ها رو معین کردم با چه رویدادی رخ بدن (منظور با چه لبه ای اتفاق بیفتن)
          حالا قسمت دوم برنامه
          اینجا دیگه معلومه متغییرا رو تعریف کردم
          قسمت سوم
          اینتراپت سراسری و اینتراپت های خارجی 1 و 2 رو فعال کردم
          بعدم معین کردم در صورت رخداد اینتراپت ها چه زیر برنامه هایی اجرا بشن
          قسمت سوم
          دو تا متغییر دارم به نام های cnt0,2 که اینا رو برای تعیین تعداد بارهایی که تایمر هارو میخونم استفاده کردم چون من تو این برنامه چند بار مقدار تایمر ها رو می خونم بعد میام از میانگین میگیرم تا مقدار بدست اومدم از تایمر ها دقیق تر باشه که اینجا اومدم مقدار پیش فرض صفر رو دادم تا در شروع برنامه صفر باشن .
          خب تو حلقه ای که مشاهده میکنی دو متغییر hasl0,2 همون مقدار میانگین گرفته شده تایمر هامون هستن که طبق همون فرمول اولی که گفتم اول بر هم تقسیم و بعد در 360 ضرب شدن که درجمون رو بدست میاد خب این درجه اعشاری در خط بعد اونو روند میکنیم و در خط بعد اونو رو lcd نمایش میدیم در ادامه برای بدست آوردن cos fi می یاییم با دستور lookup از جدولی که داریم مقدار cos متناظر با fi یا همون درجه روند شدمون رو برداشت و در ادامه روی lcd نمایش میدیم .
          تو زیر برنامه های اینتراپت ها هم همون کار استارت و استپ کردن تایمر ها و میانگین گیری رو انجام دادیم .
          تموم شد :applause:
          برای سه فاز من تو سایت یه نمونه برنامه دیدم سرچ کنی حتما پیدا میکنی :agree:
          امیدوارم تونسته باشم راهنماییت کنم التماس دعا بای :bye
          و در ادامه با فشردن گزینه تشکر ما رو خوشحال کنید
          خداوند بی نهایت است اما به قدر نیاز تو فرود می آید ، به قدر آرزوی تو گسترده می شود و به قدر ایمان تو کارگشاست.
          [hr]

          دیدگاه


            #35
            پاسخ : اندازه گیری اختلاف فاز توسط AVR

            اول سلام
            خیلی ممنونم
            از وقت که گذاشتید بابت راهنمایی ها :applause:
            توضیحات واقعا جامع بود باز هم ممنون
            من اول می خواستم دو فاز رو با opto به int صفر ویک میکرو بدم ولی فکر کنم روش شما بهتر باشه

            دیدگاه


              #36
              پاسخ : اندازه گیری اختلاف فاز توسط AVR

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

              دیدگاه


                #37
                پاسخ : اندازه گیری اختلاف فاز توسط AVR

                توضیحات پست قبلیمو خوندی ، من سعی کردم طوری توضیح بدم که از سیر تا پیاز موضوع رو متوجه بشی اگه جاییش هم مبهمه بگو توضیح بدم
                خداوند بی نهایت است اما به قدر نیاز تو فرود می آید ، به قدر آرزوی تو گسترده می شود و به قدر ایمان تو کارگشاست.
                [hr]

                دیدگاه


                  #38
                  پاسخ : اندازه گیری اختلاف فاز توسط AVR

                  سلام میشه روش اندازه گیری اختلاف فاز با میکروکنترلر مثلا همون atmega128 میشه توضیح بدید ؟

                  دیدگاه

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