اطلاعیه

Collapse
No announcement yet.

smt-160 راهنمایی

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

    smt-160 راهنمایی

    سلام
    میخواستم ببینم که کسی با smt-160 کارکرده ،من بابرنامه نویسی با bascom مشکل پیدا کردم

    ممنونم :bye

    #2
    پاسخ : smt-160 راهنمایی

    نوشته اصلی توسط علی یعقوبی
    سلام
    میخواستم ببینم که کسی با smt-160 کارکرده ،من بابرنامه نویسی با bascom مشکل پیدا کردم

    ممنونم :bye
    من کار کردم مشکلتونو بفرمایید . برنامه رو هم بزارید لطفا.

    بهتره برای رنج 109+ تا 30- از این رابطه استفاده نمایید :

    اگر زمان کل ( بالا و پایین ) را 100000us درنظر بگیرید در آنصورت:

    زمان بالا بین 17900(برای 30-) و 93100 ( برای 109+) متغییر است.

    =300 - (47/ (17900- t بالا))
    نتیجه عبارتی میشود که باید به آن یک درجه اعشار دهید و بر حسب درجه C آنرا بخوانید.

    موفق باشید






    دیدگاه


      #3
      پاسخ : smt-160 راهنمایی

      سلام
      این هم کدهایی که باهاشون جواب نگرفتیم
      $regfile = "M32def.dat"
      $crystal = 8000000
      Config Pinc.3 = Input
      Dim Don As Byte
      Dim Doff As Byte
      Dim Dc As Single
      Dim Zarib1 As Single : Zarib1 = 0.320
      Dim Zarib2 As Single : Zarib2 = 0.0047
      Dim Temp As Single
      Dim M As Single
      Dim Dt As Word
      Loops:
      Pulsein Don , Pinc , 3 , 1
      Pulsein Doff , Pinc , 3 , 0
      Dt = Don + Doff
      Dc = Don / Dt
      M = Dc - Zarib1
      Temp = M / Zarib2
      Cls : Home
      Lcd "Temp: " : Lcd Temp
      Wait 1
      Goto Loops
      End
      روش که استفاده کردم اینجوریه که
      میام سطح پایین و بالای پالس رو با pulsein اندازه میگیرم ،بعد duty cycle رو دست میارم و بااستفاده از فرمول زیر که با استفاده از کاتالوگ خود سنسور نوشتم دما رو بدست
      میارم که فقط یک سری عدد بی ربط میده !
      T=(dc-0.32)/0.0047
      ممنون میشم که راهنمایی کنید ،و اگر امکان داره روش کارو رو دقیق تر توضیح بدین یا اینکه کدی رو که نوشتید بگذارید

      :bye


      دیدگاه


        #4
        پاسخ : smt-160 راهنمایی

        اون زمانی که جوون بودم !!!! :biggrin: :biggrin: برای 8051 به زبان شیرین اسمبلی نوشتم .

        برای Avr و باسکام باید صبر کنی در فرصت مناسب برایت بنویسم.

        شب عیده ها !!!!

        موفق باشید

        دیدگاه


          #5
          پاسخ : smt-160 راهنمایی

          سلام با همون 8051 هم بگی من راضی ام (اسمبلی 8051 بلدم )،تو رو خدا قبل از سال تا همین دو تا مغازه باز هستند کمک کن و گرنه :cry:

          بازم ممنوم

          دیدگاه


            #6
            پاسخ : smt-160 راهنمایی

            نوشته اصلی توسط علی یعقوبی
            سلام با همون 8051 هم بگی من راضی ام (اسمبلی 8051 بلدم )،تو رو خدا قبل از سال تا همین دو تا مغازه باز هستند کمک کن و گرنه :cry:

            بازم ممنوم
            متاسفانه پیداش نمی کنم . داستان مربوط به 7 سال پیش است .

            دندون رو جگر بزار :biggrin: ببینم با AVR چکار می تونم برات بکنم

            دیدگاه


              #7
              برنامه ای عملی برای بسکام

              سلام
              من این برنامه رو با یک Mega32 و یک SMT160 نوع TO-18 نوشتم و جواب گرفتم

              $regfile = "m32def.dat"
              $crystal = 8000000
              Dim W0 As Byte , W1 As Byte , T As Word , Temp As Single
              Dim A1 As Single , A2 As Single , Dc As Single
              Dim Real As String * 6
              A1 = 0.32
              A2 = 0.0047
              Config Pind.0 = Input
              Wait 1
              '*************************Get Duty Cycle*************
              Starts:
              W0 = 0
              W1 = 0
              Bitwait Pind.0 , Reset
              Bitwait Pind.0 , Set
              T1:
              W1 = W1 + 1
              If Pind.0 = 1 Then Goto T1
              Bitwait Pind.0 , Set
              Bitwait Pind.0 , Reset
              T2:
              W0 = W0 + 1
              If Pind.0 = 0 Then Goto T2
              '**************************Calculate********* *******
              T = W0 + W1
              Dc = W1 / T
              Temp = Dc - A1
              Temp = Temp / A2
              Real= Fusing(temp , "#.&&&quot
              '***************************Print to lcd************
              Cls : Home
              Lcd "Don :"
              Lcd W1
              Lowerline
              Lcd "Doff:"
              Lcd W0
              Thirdline
              Lcd "Temp:"
              Lcd Real
              Fourthline
              Lcd "This Is a Real Temp"
              Cursor Off
              Waitms 500
              Goto Starts
              End 'end program

              امیدوارم مورد استفاده قرار بگیره

              دیدگاه


                #8
                برنامه ای دقیق تر

                سلام
                این برنامه دقتش از بالایی بیشتره

                $regfile = "m32def.dat"
                $crystal = 8000000
                Dim W0 As Byte , W1 As Byte , T As Word , Temp As Single
                Dim A1 As Single , A2 As Single , Dc As Single
                Dim Real As String * 6
                A1 = 0.32
                A2 = 0.0047
                Config Pind.0 = Input
                Wait 1
                '*************************Get Duty Cycle*************
                Starts:
                $asm
                lds r0,0
                lds r1,0
                $end Asm
                Bitwait Pind.0 , Reset
                Bitwait Pind.0 , Set
                T1:
                $asm
                inc r1
                $end Asm
                If Pind.0 = 1 Then Goto T1
                Bitwait Pind.0 , Set
                Bitwait Pind.0 , Reset
                T2:
                $asm
                inc r0
                $end Asm
                If Pind.0 = 0 Then Goto T2
                W0 = Peek(0)
                W1 = Peek(1)
                '**************************Calculate********* *******
                T = W0 + W1
                Dc = W1 / T
                Temp = Dc - A1
                Temp = Temp / A2
                Real= Fusing(temp , "#.&&&quot
                '***************************Print to lcd************
                Cls : Home
                Lcd "Don :"
                Lcd W1
                Lowerline
                Lcd "Doff:"
                Lcd W0
                Thirdline
                Lcd "Temp:"
                Lcd Real
                Fourthline
                Lcd "This Is a Real Temp"
                Cursor Off
                Waitms 500
                Goto Starts
                End 'end program
                موفق باشید

                دیدگاه


                  #9
                  پاسخ : برنامه ای دقیق تر

                  با سلام،
                  من هر دو برنامه شما رو امتحان کردم و به نظرم برنامه اول دقت بیشتری داشت!
                  در ضمن، هنوز 0.2% خطا داره. اگه با Capture mode بنویسیم، برنامه دقیق تری بدست نمیاد؟؟
                  کسی هست که بتونه کمکی در زمینه کار با Capture mode به من بکنه؟؟ oo:

                  دیدگاه


                    #10
                    پاسخ : smt-160 راهنمایی

                    سلام

                    برنامه ی زیر از وقفه ی صفر و تایمر برای خوندن 160 استفاده میکنه و دقتش هم خوبه.

                    بفرمایید: http://chiaco.persiangig.ir/document/smt160.zip

                    ِِDie for Life, Not Live to Die
                    Freedom Fighter
                    " ناخود گاه، هریک از ما ، از نامیرائی خود یقین دارد " . فروید

                    دیدگاه


                      #11
                      پاسخ : smt-160 راهنمایی

                      AVR135 سایت اتمل یک مثال کاربردی برای اندازه گیری Duty Cycle با دقت بالا و استفاده از ICP تایمر 1 است.برنامه به C نوشته شده.
                      اگر کریستال 16 بزارید باید به رزولیشن 0.05 درجه سانتیگراد برسید.
                      برای رزولیشن های بالاتر هم CPLD کارسازه که فکر نکنم لازم باشه.

                      دیدگاه

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