اطلاعیه

Collapse
No announcement yet.

تولید فرکانس 50HZ با پهنای باند بین 1 تا 2 میلی ثانیه با MEGA 16

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

    تولید فرکانس 50HZ با پهنای باند بین 1 تا 2 میلی ثانیه با MEGA 16

    سلام

    من میخوام با MEGA16 یه فرکانس 50HZ با پهنای باند بین 1 تا 2 میلی ثانیه تولید کنم (PWM)
    که با یه مقاومت متغییر کنترل بشه
    برای سرو موتور با ورودی PWM میخوام تو پروتئوس شبیه سازی شده (موتور)
    که مشخصات PWM توضیح داده شده

    مداری دارم با آی سی 555 انجام میده ولی میخوام با میکرو انجامش بدم

    یه مدار هم بود که این کار رو با میکرو انجام میداد ولی کدش پیدا نکردم

    لطفا کمکم کنین خیلی وقت گذاشتم :cry:

    با تشکر فراوان

    #2
    پاسخ : تولید فرکانس 50HZ با پهنای باند بین 1 تا 2 میلی ثانیه با MEGA 16

    اگر هم کسی مدار 555 رو خواست میل شو بزاره براش میفرستم.

    دیدگاه


      #3
      پاسخ : تولید فرکانس 50HZ با پهنای باند بین 1 تا 2 میلی ثانیه با MEGA 16

      با سلام .
      من از این برنامه جوابی رو که مد نظر شماست گرفتم .
      البته دقت این بیشتره یعنی از 0 تا 10ms عرض پالس با دقت خوبی تغییر میکنه .

      $regfile = "m8def.dat"
      $crystal = 8000000

      Config Timer0 = Timer , Prescale = 1024
      Config Timer1 = Timer , Prescale = 8
      Config Adc = Single , Prescaler = Auto
      Config Portb = Output
      Config Portd = Input


      Dim T As Word , A(2) As Word , M As Bit

      Enable Interrupts
      Enable Timer0
      Enable Timer1

      On Ovf0 pwm

      Start Adc

      Timer0 = 100
      Timer1 = 0

      A(1) = Getadc(0)
      A(2) = A(1) * 20

      Stop Timer0 : Stop Timer1

      Do

      Loop

      End

      pwm:

      Timer1 = 0
      Timer0 = 100

      Do
      Set Portb.0
      Loop Until Timer1 >= A(2)

      Reset Portb.0

      A(1) = Getadc(0)
      A(2) = A(1) * 20

      Return
      [glow=blue,2,300]آنقدر به تاريكي لعنت نفرستيد ، يك شمع روشن كنيد. [/glow]

      دیدگاه


        #4
        پاسخ : تولید فرکانس 50HZ با پهنای باند بین 1 تا 2 میلی ثانیه با MEGA 16


        من فقط برنامه نویسی با c رو بلد هستم :cry:

        .خواهش میکنم کد با زبان c بگذارید.
        :question: :question:


        دیدگاه


          #5
          پاسخ : تولید فرکانس 50HZ با پهنای باند بین 1 تا 2 میلی ثانیه با MEGA 16

          شما اگه اساس کار رو بدونید فرقی نمیکنه که به چه زبانی باشه .
          اول شما دو تا تایمر رو بصورت دو خط 3و4 برنامه بالا پیکره بندی میکنی . سپس مقدار رجیستر TCNT0 رو طوری میدی که فرکانس 50 هرتز تولید کنه ( با فرکانس 8 مگاهرتز باید مقدار 100 بارگزاری بشه ) . بعد داخل زیر برنامه ی وقفه ی سرریز تایمر 0 یک بیت رو به مدت دلخواه ( که این مدت توسط تایمر 1 تعیین میشه و مقدار تایمر 1 توسط مقدار ADC که پتانسیومتر به آن وصل شده تعیین میشه ) Hi میکنی . بعد هم بر میگرده به برنامه اصلی .
          [glow=blue,2,300]آنقدر به تاريكي لعنت نفرستيد ، يك شمع روشن كنيد. [/glow]

          دیدگاه


            #6
            پاسخ : تولید فرکانس 50HZ با پهنای باند بین 1 تا 2 میلی ثانیه با MEGA 16

            ممنون از اطلاعات

            چرا باید 2 تا تایمر داشته باشیم؟

            ممنون میشم کمی الگریتم شو بیشتر توضیح بدید

            با تشکر فراوان

            دیدگاه


              #7
              پاسخ : تولید فرکانس 50HZ با پهنای باند بین 1 تا 2 میلی ثانیه با MEGA 16

              همونطور که گفتم یک تایمر 50Hz رو تولید میکنه و یک تایمر عرض پالس رو تعیین میکنه .
              الگوریتم رو کامل گفتم . اگه به برنامه هم یه نگاه بکنین همه چیز دستتون میاد .
              [glow=blue,2,300]آنقدر به تاريكي لعنت نفرستيد ، يك شمع روشن كنيد. [/glow]

              دیدگاه

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