اطلاعیه

Collapse
No announcement yet.

سنسور دما smt160

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

    سنسور دما smt160

    من یه سنسور smt160 رو می خواهم بخونم.این سنسور pwm تولید میکنه.
    اما برنامه ای که نوشتم(از طریق پایه icp و مد capture) کار نمی کنه!
    کسی می دونه مشکل کجاست؟ روی پایه خروجی این سنسور با scope باید چی ببینم؟
    Be sure your sin will find you out

    #2
    پاسخ : سنسور دما smt160

    سلام

    تا نمونه ی برنامت رو نذاری نمیشه قضاوت کرد
    سنسور smt 160 درارای یه خروجیه مربعی شکله که با فرکانس حدود 40 کیلوهرتز نوسان میکنه

    و اطلاعات دما در فرکانس نیست بلکه اطلاعات در دیوتی سایکل این موج نهفته است که با گذاشتن این دیوتی سایکل در فرمول مربوطه دما بدست می آید
    من با استفاده از وقفه و تایمر این کار رو کردم اگه خواستی برنامه رو برات میذارم :smile:
    ِِDie for Life, Not Live to Die
    Freedom Fighter
    " ناخود گاه، هريك از ما ، از ناميرائي خود يقين دارد " . فروید

    دیدگاه


      #3
      پاسخ : سنسور دما smt160

      ببخشید این پست اضافی بود
      ِِDie for Life, Not Live to Die
      Freedom Fighter
      " ناخود گاه، هريك از ما ، از ناميرائي خود يقين دارد " . فروید

      دیدگاه


        #4
        پاسخ : سنسور دما smt160

        اینو میدونم که d.c. می ده.این برنامه منه ،ولی جواب نمیده.مشکلش کجاست؟
        Enable Interrupts
        Enable Icp1
        On Icp1 Vaghfe
        Do
        Kol = Hs + Ls
        Dc = Hs / Kol
        T = Dc * 100
        T = T - 32
        T = T * 1000
        T = T / 47
        T = Round(t))
        T = T / 10
        Loop
        End
        Vaghfe:
        If A = 1 Then
        Goto Highlevel
        Else
        Goto Lowlevel
        End If
        Highlevel:
        Hs = Capture1
        Stop Timer1
        Config Timer1 = Timer , Prescale = 1 , Capture Edge = Rising
        Timer1 = 0
        Start Timer1
        A = 0
        Goto Akhar
        Lowlevel:
        Ls = Capture1
        Stop Timer1
        Config Timer1 = Timer , Prescale = 1 , Capture Edge = Falling
        Timer1 = 0
        Start Timer1
        'On Icp1 Highlevel
        A = 1
        Akhar:
        Return
        Be sure your sin will find you out

        دیدگاه


          #5
          پاسخ : سنسور دما smt160

          تو این برنامه ی شما یه مشکل اساسی هست و اونم اینه که خودتون lowlevel و highlevel رو تعیین کردید در حالی که عملا باید این واقعه رو بسنجید

          مثلا با یه پایه ی دیگه من چون زیاد وقت نداشتم و در ضمن هر دو وقفه هم بیکار بود از هردو وقفه به صورت همزمان استفاده کردم البته قبول میکنم که زیاده روی کردم اما در عوض به صورت ریل تایم و خیلی دقیق دما رو خوندم البته با کمی تغییر در برنامه میشه از یک وقفه و یک پین از هر پورتی این کار رو کرد

          برنامه:
          کد:
          $regfile = "m8def.dat"
          $crystal = 1000000
          
          Config Portb.1 = Output
          Config Portb.2 = Output
          Config Int0 = Rising
          Config Int1 = Falling
          Config Timer1 = Timer , Prescale = 1
          Enable Interrupts
          Enable Int0
          Enable Int1
          On Int0 Int0_int
          On Int1 Int1_int
          Stop Timer1
          Start Timer1
          Config Lcdpin = Pin , Db4 = Pind.1 , Db5 = Pind.7 , Db6 = Pind.5 , Db7 = Pind.4 , E = Pind.0 , Rs = Pind.6
          Config Lcd = 16 * 2
          Cursor Off
          Dim X As Integer
          Dim Xf As Word
          Dim Xl As Word
          Dim Temp As Single
          Dim L As Byte
          Dim Lop2 As Byte
          Dim Lop1 As Byte
          Dim Cn As Byte
          Dim Cl As Byte
          Dim F As Single
          
          
          Do
          X = Xl + Xf
          F = Xl / X
          Locate 1 , 1
          Lcd F
          F = F - 0.32
          Temp = F / 0.0047
          Locate 2 , 1
          Lcd Round(temp) ; "c           "
          Lcd Timer1
          Loop
          
          Int1_int:
          Stop Timer1
          Xl = Timer1
          Timer1 = 0
          Start Timer1
          
          
          Return
          
          Int0_int:
          Stop Timer1
          Xf = Timer1
          Timer1 = 0
          Start Timer1
          
          
          Return
          
          End
          ِِDie for Life, Not Live to Die
          Freedom Fighter
          " ناخود گاه، هريك از ما ، از ناميرائي خود يقين دارد " . فروید

          دیدگاه


            #6
            پاسخ : سنسور دما smt160

            highlevel وlowlevel دو تا روتینه که زمان 1 و 0 بودن رو می شماره وشمارش با هر بار تغییر وضعیت پایه، reset میشه.
            شما از int0 استفاده کردید،در صورتیکه 8 بیتی هست.ولی خروجی سنسور 1khz هست،یعنی باید تا حدود 800 بتونه بشماره !
            شما عملا از این برنامه جواب گرفتید؟
            Be sure your sin will find you out

            دیدگاه


              #7
              پاسخ : سنسور دما smt160

              من از timer1 استفاده کردم اگه منظورتون اینه

              و خروجی سنسور هم فکر کنم حدود 40 کیلو هرتز باشه

              بله من از این برنامه عملا جواب گرفتم :smile:
              ِِDie for Life, Not Live to Die
              Freedom Fighter
              " ناخود گاه، هريك از ما ، از ناميرائي خود يقين دارد " . فروید

              دیدگاه


                #8
                پاسخ : سنسور دما smt160

                خروجی سنسور 1-4 khz هست.برنامه شما رو چک کردم، باید درست کار کنه.ولی تئی proteus جواب درستی نمی ده.من بجای سنسور یه function generator گذاشتم ولی با تغییر فرکانس برنامه دچار اشتباه میه.شما هم فکر میکنید مشکل از پروتئوسه؟
                در عمل خروجی سنسور چند امپره؟یعنی چطوری میشه سالم بودنشو تست کرد؟
                Be sure your sin will find you out

                دیدگاه


                  #9
                  پاسخ : سنسور دما smt160

                  شما سیگنال رو باید به صورت همزمان به هر دو پین وقفه یعنی int0 , int1 بدید یعنی عملا این دو پایه به هم وصل میشه

                  با فانکشن چنراتور هم این کار رو نکنید چون تنضیمات دیوتی سایکل نداره و همیشه دیتوی سایکل 50 درصد داره

                  شما در پروتئوس از pulse استفاده کنید به عکس زیر توجه کنید

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

                  دیدگاه


                    #10
                    پاسخ : سنسور دما smt160

                    من برنامه شما رو اجرا کردم ولی دمای -68 رو نشون می ده(یعنی d.c=0) .چرا؟ :angry:
                    Be sure your sin will find you out

                    دیدگاه


                      #11
                      پاسخ : سنسور دما smt160

                      شما تو پروتئوس از پالس استفاده کردید؟

                      دامنه ی پالس رو 5 ولت تنظیم کردید؟

                      فرکانس پالس رو 1khz کردید ؟

                      اگه همه ی این کارها رو کردید فایل پروتئوس و برنامه ای که کامپایل کردید رو برای من بفرستید

                      اگه عملی بستید امکان داره سنسورتون هم سوخته باشه
                      ِِDie for Life, Not Live to Die
                      Freedom Fighter
                      " ناخود گاه، هريك از ما ، از ناميرائي خود يقين دارد " . فروید

                      دیدگاه


                        #12
                        پاسخ : سنسور دما smt160

                        عملی بستم.غیر از oscilloscope چطور میشه سنسورو تست کرد؟
                        Be sure your sin will find you out

                        دیدگاه


                          #13
                          پاسخ : سنسور دما smt160

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

                          و اگه فرکانس متر هم ندارید با یه ولتمتر

                          اگه دیوتی سایکل کم بشه ولتاژ خروجی هم کم میشه و بلعکس

                          مدار سنسور رو هم از روی دیتاشیتش ببند
                          ِِDie for Life, Not Live to Die
                          Freedom Fighter
                          " ناخود گاه، هريك از ما ، از ناميرائي خود يقين دارد " . فروید

                          دیدگاه


                            #14
                            پاسخ : سنسور دما smt160

                            من با یه سنسور سالم هم جواب نگرفتم ! برنامه اصلا وارد روتین های وقفه نمیشه.چرا؟ یا باید از نحوه اتصال باشه.یا از دستورات!
                            من که دیگه کلافه شدم.چون ظاهرا هم اتصالات درسته و هم برنامه
                            Be sure your sin will find you out

                            دیدگاه


                              #15
                              پاسخ : سنسور دما smt160

                              سلام

                              من فایل پروتئوس آزمایش شده رو برات پلود کردم http://rapidshare.com/files/94786217/smt160.zip.html

                              واسه نحوه ی وصل کردن 160 از اطلاعات دیتاشیتش استفاده کن
                              ِِDie for Life, Not Live to Die
                              Freedom Fighter
                              " ناخود گاه، هريك از ما ، از ناميرائي خود يقين دارد " . فروید

                              دیدگاه

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