اطلاعیه

Collapse
No announcement yet.

موج مربعی با فرکانس و پهنای پالسه متغیر

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

    موج مربعی با فرکانس و پهنای پالسه متغیر

    باسلام من میخوام یک موج مربعی بسازم با فرکانس متغیراز 2-25 کیلو و پهنای پالسه از 10 تا 90 درصد اما پالسم خطا داره و از 15 کیلو به بالا خطاش خیلی زیاد میشه با پهنای پالسه 10 درصد فرکانسمم تغییر میکنه چطوری میتونم خطاما کم کنم من با بیسکام برنامما نوشتم ممنون

    #2
    پاسخ : موج مربعی با فرکانس و پهنای پالسه متغیر

    نوشته اصلی توسط زوار
    باسلام من میخوام یک موج مربعی بسازم با فرکانس متغیراز 2-25 کیلو و پهنای پالسه از 10 تا 90 درصد اما پالسم خطا داره و از 15 کیلو به بالا خطاش خیلی زیاد میشه با پهنای پالسه 10 درصد فرکانسمم تغییر میکنه چطوری میتونم خطاما کم کنم من با بیسکام برنامما نوشتم ممنون
    سلام
    میشه برنامه رو بزارید تا ببینم ، اینطوری فکر می کنم من و دیگر دوستان بهتر می توانند راهنمایی کنند.
    موفق باشید

    دیدگاه


      #3
      پاسخ : موج مربعی با فرکانس و پهنای پالسه متغیر

      اینم برنامم البته اون LOOKUP TABLE برای جبرانه خطا گذاشتم اما روش خوببی نیست وخودش مشکل ایجاد میکنه لطفا کمک کنید چه جوری میتونم این خطا را درست کنم ممنونم
      $regfile = "m64def.dat"
      $crystal = 8000000

      Invert Alias Portd.3 'change to portx.x based on hardware
      Noninvert Alias Portd.4 'change to portx.x based on hardware

      Config Timer1 = Timer , Prescale = 1
      Config Timer3 = Timer , Prescale = 1

      Declare Sub Fduty

      Config Portd = Output
      Reset Noninvert 'non invert
      Set Invert 'invert

      Dim Ontime As Word , Offtime As Word , F As Word , T As Single , Dc As Byte
      Dim Ton As Single , Toff As Single

      'F = 6000
      'Dc = 50


      Enable Interrupts
      Enable Timer1
      Enable Timer3
      On Timer1 Ovf1routin
      On Timer3 Ovf3routin
      'Home
      Call Fduty

      Do
      Loop
      End

      Ovf1routin:
      Stop Timer1
      Reset Noninvert
      Set Invert
      Timer3 = Offtime
      Start Timer3
      Return

      Ovf3routin:
      Stop Timer3
      Set Noninvert
      Reset Invert
      Timer1 = Ontime
      Start Timer1
      Return

      '-------------------------------------Sub---------------------------------------
      Sub Fduty
      Stop Timer1
      Stop Timer3
      '---------------------------------CorrectionTable-------------------------------
      '******************************************** ***********************************
      Select Case F
      Case 1000 To 1500 : F = F * 1.024417
      Case 1600 To 2000 : F = F * 1.03922
      Case 2100 To 2500 : F = F * 1.04904
      Case 2600 To 3000 : F = F * 1.05924
      Case 3100 To 3500 : F = F * 1.06802
      Case 3600 To 4000 : F = F * 1.08084
      Case 4100 To 4500 : F = F * 1.09362
      Case 4600 To 5000 : F = F * 1.10316
      Case 5100 To 5500 : F = F * 1.11434
      Case 5600 To 6000 : F = F * 1.12196
      Case 6100 To 6500 : F = F * 1.133104
      Case 6600 To 7000 : F = F * 1.14196
      Case 7100 To 7500 : F = F * 1.15304
      Case 7600 To 8000 : F = F * 1.16502
      Case 8100 To 8500 : F = F * 1.17496
      Case 8600 To 9000 : F = F * 1.18242
      Case 9100 To 9500 : F = F * 1.1976
      Case 9600 To 10000 : F = F * 1.213
      Case 10100 To 10500 : F = F * 1.21736
      Case 10600 To 11000 : F = F * 1.2234
      Case 11100 To 11500 : F = F * 1.2454
      Case 11600 To 12000 : F = F * 1.248
      Case 12100 To 12500 : F = F * 1.275
      Case 12600 To 13000 : F = F * 1.261
      Case 13100 To 13500 : F = F * 1.296
      Case 13600 To 14000 : F = F * 1.302
      Case 14100 To 14500 : F = F * 1.2905
      Case 14600 To 15000 : F = F * 1.305
      Case 15100 To 15500 : F = F * 1.3175
      Case 15600 To 16000 : F = F * 1.344
      Case 16100 To 16500 : F = F * 1.353
      Case 16600 To 17000 : F = F * 1.343
      Case 17100 To 17500 : F = F * 1.3475
      Case 17600 To 18000 : F = F * 1.404
      Case 18100 To 18500 : F = F * 1.424
      Case 18600 To 19000 : F = F * 1.425
      Case 19100 To 19500 : F = F * 1.4235
      Case 19600 To 20000 : F = F * 1.44
      Case 20100 To 20500 : F = F * 1.4555
      Case 20600 To 21000 : F = F * 1.449
      Case 21100 To 21500 : F = F * 1.462
      Case 21600 To 22000 : F = F * 1.452
      Case 22100 To 22500 : F = F * 1.4625
      Case 22600 To 23000 : F = F * 1.495
      Case 23100 To 23500 : F = F * 1.504
      Case 23600 To 24000 : F = F * 1.512
      Case 24100 To 24500 : F = F * 1.519
      Case 24600 To 25000 : F = F * 1.525
      Case 25100 To 25500 : F = F * 1.555
      Case 25600 To 26000 : F = F * 1.56
      End Select
      '******************************************** ***********************************
      '-------------------------------------------------------------------------------
      T = 8000000 / F
      Ton = Dc * T
      Ton = Ton / 100
      Toff = T - Ton
      Ontime = 65536 - Ton
      Offtime = 65536 - Toff
      Timer1 = Ontime
      Timer3 = Offtime
      Start Timer1
      End Sub Fduty
      '---------------------------------EndSub----------------------------------------

      دیدگاه


        #4
        پاسخ : موج مربعی با فرکانس و پهنای پالسه متغیر

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

        دیدگاه


          #5
          پاسخ : موج مربعی با فرکانس و پهنای پالسه متغیر

          کمکککککککککککککککککککککککککککککککککککککککککککککککک ککککک کنید لطفا :twisted:

          دیدگاه


            #6
            پاسخ : موج مربعی با فرکانس و پهنای پالسه متغیر

            سلام به همه دوستان خسته نباشین ووقت همتون بخیر
            راستش من می خوام بوسیله میکرو atmega 16و ir 2113و mosfet برق 12 dc رو به 12ac بتبدیل کنم و بعد انو با ترانس افزایش دهنده به 220 acتبدیل کنم و حالا دنبال یه مداری میگردم و یا اینکه اساتید یه مقاله ای کتابی سایتی چیزی رو معرفی کنند و یا زحمت عنوان کردن اینکه من باید برنامه میکرو رو بر چه منطقی و چطور بنویسم
            من یه سخت افزار رو دیدم که با این روش کار میکرد ولی برنامه میکرو اونو میخوام نمی دونم برنامه رو از کجا شروع کنم و با اون سخت افزار تستش کنم با بسکام کار میکنم
            خلاصه اینکه برای تبدیل 12 dcبه 12ac به چه نکاتی باید توجه کنم و یه توضیحی از نحوه عمل کرد ir2113و چطور راه اندازی اون بوسیله میکرو خیلی زیاد اطلاعات می خوام نه ؟ به هر حال پیشاپیش از همه شما عزیزان ممنون هستم

            دیدگاه


              #7
              پاسخ : موج مربعی با فرکانس و پهنای پالسه متغیر

              کسی نیست جواب مارا بده :cry2:

              دیدگاه


                #8
                پاسخ : موج مربعی با فرکانس و پهنای پالسه متغیر

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

                تازه این چیزی که شما گذاشتی با prescale=1 هست یعنی تضمینی برای کمترین خطا نیست من خودم با همین تایمر باورت نمیشه برنامه وحشتناکی نوشتم که وقتی فرکانس بهش میدادی به طور خودکار بهترین prescale رو انتخاب میکرد تا کمترین خطا داشته باشه و ....
                البته شاید شما بتونی این کار رو کنی (الله اعلم!)
                حالا من این رو برای شما بزارم :
                قسمت تولید موج مربعی رو ببین !!!
                بی نظیر هست تا حالا هیچ جایی و حتی کل اینترنت ندیدم دیوتی سایکل دیجیتال (به کار خودم افتخار میکنم!)
                حاصل 3 ماه تلاش!

                http://micro-project.blogfa.com/post-94.aspx

                http://micro-project.blogfa.com/post-97.aspx

                دیدگاه


                  #9
                  پاسخ : موج مربعی با فرکانس و پهنای پالسه متغیر

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

                  دیدگاه


                    #10
                    پاسخ : موج مربعی با فرکانس و پهنای پالسه متغیر

                    آقای masoodhashemy اگر سورس نرم افزارتون فروشیه بگید قیمتش چنده ممنون میشم من تو سایتتون پیدا نکردم من تا ظهر این نرم افزارا میخوام ممنونم

                    دیدگاه


                      #11
                      پاسخ : موج مربعی با فرکانس و پهنای پالسه متغیر

                      سلام
                      دوست عزیز چرا از PWM استفاده نمی کنید من فکر میکنم این راه بهتر و دقیق تر باشد.
                      موفق باشیذ

                      دیدگاه


                        #12
                        پاسخ : موج مربعی با فرکانس و پهنای پالسه متغیر

                        چون تو بیسکام نمیشه فرکانس را تو این رنج تغییر داد اگر میشه لطفا راهنمایی کنید

                        دیدگاه


                          #13
                          پاسخ : موج مربعی با فرکانس و پهنای پالسه متغیر

                          ببخشی آقای masoodhashemy پسورد این فایلیم که گذاشتیدا ندادید در ضمن پیغام خصوصیمم جواب بدید ممنون

                          دیدگاه


                            #14
                            پاسخ : موج مربعی با فرکانس و پهنای پالسه متغیر

                            یعنی کسی پیدا نمیشه جواب مارا بده :angry:

                            دیدگاه

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