اطلاعیه

Collapse
No announcement yet.

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

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

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

    با سلام

    این مدار رو تو یکی از سایت های خارجی دیدم گفت برای استفاده دوستان هم بزارم

    چون برای اولین بار بود که با Proteus کار میکردم نتونستم شبیه سازشو درست بکنم اگر امکانش هست یکی از دوستان فایل Proteus رو هم قرار بده برای تست مدار

    مورد دوم هم اینکه تاجای که تو عکس ها دیدم دما با یک درجه افزایش پیدا میکرد ایا امکانش هست مقدار افزایش دما رو به 0.5 درجه قرار داد سورس برنامه هم همراه Hex گذاشتم











    #2
    پاسخ : در خواست راهنمایی برای تکمیل ترموستات



    lm35.DSN - 89 KB

    دیدگاه


      #3
      پاسخ : در خواست راهنمایی برای تکمیل ترموستات

      نوشته اصلی توسط afsoongar_ghadiri
      با سلام

      این مدار رو تو یکی از سایت های خارجی دیدم گفت برای استفاده دوستان هم بزارم

      چون برای اولین بار بود که با Proteus کار میکردم نتونستم شبیه سازشو درست بکنم اگر امکانش هست یکی از دوستان فایل Proteus رو هم قرار بده برای تست مدار

      مورد دوم هم اینکه تاجای که تو عکس ها دیدم دما با یک درجه افزایش پیدا میکرد ایا امکانش هست مقدار افزایش دما رو به 0.5 درجه قرار داد سورس برنامه هم همراه Hex گذاشتم
      سلام دوست عزیز
      تا جایی که من میدونم این سنسور از -55 تا 150 درجه رو سنس میکنه ... و مقدار حساسیتش 1mv/c هست ... به ازاس هر درجه 1 میلی ولت خروجیش بیشتر میشه.... فک نکنم بشه این حساسیت رو تغییر داد...
      یکجا خوندم : دمای 1 درجه ولتاژ خروجی سنسو 10 میلی ولت و به ازای 100 درجه خروجی سنسور 1 ولت هس ...
      حالا اگه کدشو خودت بخوای بنویسی میشه خروجی سنسورو به adc داد ... اگه بتونی ولتمتر بسازی میتونی بدون نیاز به کالیبره کردن سنسور دمارو سنس کنی...
      بازم این نظر منه

      دیدگاه


        #4
        پاسخ : در خواست راهنمایی برای تکمیل ترموستات

        سلام
        من با این سنسور چند تایی دماسنج درست کردم با دقت 0.1 درجه و سنسور در فاصله 30 متری نصب شده است .

        دیدگاه


          #5
          پاسخ : در خواست راهنمایی برای تکمیل ترموستات

          نوشته اصلی توسط yasser2000
          سلام
          من با این سنسور چند تایی دماسنج درست کردم با دقت 0.1 درجه و سنسور در فاصله 30 متری نصب شده است .
          سلام یاسر جان

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

          دیدگاه


            #6
            پاسخ : در خواست راهنمایی برای تکمیل ترموستات

            نوشته اصلی توسط par3eh
            سلام یاسر جان

            عزیز خوب شما اطلاعاتتون رو در اختیاره ما هم بزارین استفاده کنیم دگ ....من فقط از اطلاعات کاتالوگ سنسورو خونده بودم چندتا برنامه ساده ...
            اگه پروژه ای داری یا کد مربوط به این سنسور که حساسیتشو بالاتر بردی رو بزار همه استفاده کنن ...
            باسلام
            برنامه نویسی این سنسور که مورد خاصی نداره فقط باید از adc تا چند بار میانگین بگیری .
            در عین حال این برنامه رو که برای دماسنج خودم هست میزارم امیدوارم مفید باشه . برنامه شامل سه منو هست منو اول برای تنظیم دمای بالا منو دوم برای تنظیم دمای پایین و منو سوم بار کالیبره کردن دستگاه .
            از رفرنس داخلی استفاده کردم . avcc میکرو رو هم با یک سلف 10 میکرو به vcc و یه خازن 104 به gnd وصل کرم
            بین خروجی سنسور و gnd یه خازن 4.7 میکرو گذاشتم تا پرش دما رو به حداکثر0.1 میرسونه . این برنامه برای سگمنت مالتی پلکس سه رقمی کاتد مشترک هست . بین خروجی سنسور و gnd هم یه مقاومت 10کیلو گذاشتم تا موقعی که سنسور از مدار خارج بشه دمای صفر رو نشون بده .برای تغذیه هم از آداپتور سویچینگ استفاده کردم و بعد از 7805 یه خازن 104 گذاشتم .بین پایه aref و gnd از یه خازن 104 استفاده کردم که اگه نباشه پرش دما زیاد میشه . از این دماسنج برای سالن های مرغداری استفاده کردم که سنسور داخل سالن در فاصله 30 متری نصب شده و از کابل 2 زوج تلفنی مرغوب استفاده کردم . تا حالا که مشکلی نداشته . دیگه توضیح خاصی نداره .
            کد:
            $regfile = "m8def.dat"
            $crystal = 8000000
            
            Config Portb.7 = Output
            
            
            Config Portd = Output
                               'A-G (Data)
            Config Portb.0 = Output
            Config Portb.1 = Output
            Config Portb.2 = Output
            
            'push buton
            Config Portb.3 = Input
             Config Portb.4 = Input
             Config Portb.5 = Input
            
             'dot
            Config Portc.1 = Output
            
            'relay
             Config Portc.0 = Output
            
             'led port
             Config Portc.3 = Output
             Config Portc.4 = Output
              Config Portc.5 = Output
            
            Dataport Alias Portd
            Config Debounce = 50                    'Comm. Anode
            Config Adc = Single , Prescaler = Auto , Reference = Internal
            Config Timer0 = Timer , Prescale = 1024
            Enable Timer0
            Config Timer1 = Timer , Prescale = 1024
            Enable Timer1
            Enable Interrupts
            
            Dim K As Integer , G As Integer , Tol As Integer , Tol2 As Single , Tol3 As Integer
            
            Dim A As Word , Temp As Single , D As Integer , X As Word , Dama As Single , Damaval As Integer , Dama2 As Integer , Dama3 As Integer
            
            Dim Ashar1 As Integer , Yekan As Integer , Yekan1 As Integer , Dahgan1 As Integer , Y As Integer , Z As Integer
            
            Dim Key As Byte , B As Byte
            Declare Sub Send
            Declare Sub Refresh
            Declare Sub Submain
            Declare Sub Settempon
            Declare Sub Settempoff
            Declare Sub Setting
            Declare Sub Getdata
             Cls
            Start Adc
            '************************************************************
            
            On Timer0 P
            Start Timer0
            Start Timer1
            
            
            
            Goto Getdata
            P:
            Timer0 = 90
            Call Refresh
            
            Return
            
            
            '************************************************************
            
            Sub Getdata
             If Pinb.3 = 0 Then
              Bitwait Pinb.3 , Set
            
              End If
            
             Portc.5 = 0
             Portc.5 = 0
             Portc.5 = 0
             Readeeprom Tol , 30
             Readeeprom G , 20
            Readeeprom K , 10
            
             Do
            
             If Pinb.3 = 0 Then
              Bitwait Pinb.3 , Set
              Goto Settempon
              End If
             Temp = 0
              For X = 1 To 20
            
                A = Getadc(2)
                Temp = Temp + A
            
              Waitms 10
            Next
            
            Temp = Temp / 20
             Dama = Temp / 4
             Tol2 = Tol / 10
             Dama = Dama + Tol2
             Dama = Dama * 10
             Dama2 = Dama
            Dama3 = Dama2 - Damaval
            
            
            
            If Dama3 > 1 Then
             Do
             Incr Damaval
            
             Loop Until Damaval = Dama2
            
             End If
            
             If Dama3 < -1 Then
             Do
             Decr Damaval
            
             Loop Until Damaval = Dama2
             End If
            
             If Dama3 = 1 Or Dama3 = -1 Then
             End If
            
            
            
             'sevenseg rotin
            
               Ashar1 = Damaval Mod 10
               Yekan = Damaval / 10
               Yekan1 = Yekan Mod 10
               Dahgan1 = Damaval / 100
            
            
            
            
              Y = K - 5
              Z = G + 5
            
              If Damaval > K Then
               Portc.0 = 1
              Portc.4 = 0
              Waitms 20
              Portc.4 = 1
              Portc.3 = 0
            
              End If
            
            
              If Damaval > Y Then
              Portc.4 = 0
              Waitms 100
              Portc.4 = 1
            
              End If
            
            
              If Damaval < Y And Damaval > G Then
            
              Portc.4 = 0
              Portc.3 = 0
              Portc.0 = 0
              End If
              If Damaval < G Then
            Portc.0 = 1
            
              Portc.4 = 0
              Portc.3 = 1
              Waitms 100
               Portc.3 = 0
            
            
              End If
            
              Loop
            
            End Sub
            '**************************************************************
            Sub Refresh
            
               Portb.0 = 0 : Portb.1 = 1 : Portb.2 = 1 : Portc.1 = 0 : D = Ashar1 : Call Send
               Portb.0 = 1 : Portb.1 = 0 : Portb.2 = 1 : Portc.1 = 1 : D = Yekan1 : Call Send
               Portb.0 = 1 : Portb.1 = 1 : Portb.2 = 0 : Portc.1 = 0 : D = Dahgan1 : Call Send
            
            Return
            End Sub
            '**************************************************************
            Sub Send
              Dataport = Lookup(d , Segdata)
              Waitms 4
              Dataport = &B00000000
            
            
            
               Return
              End Sub
            '**************************************************************
            '**************************************************************
            '************************************************************
            Sub Settempon
            
            If Pinb.3 = 0 Then
              Bitwait Pinb.3 , Set
            
              End If
            
            Ashar1 = 11
            Yekan1 = 11
            Dahgan1 = 11
            
            Portc.5 = 0
            Portc.4 = 1
            Portc.3 = 0
            Readeeprom K , 10
            
            Do
            
              If Pinb.4 = 0 And K < 999 Then K = K + 1 : Waitms 20
            
            
              If Pinb.5 = 0 And K > 0 Then K = K - 1 : Waitms 20
            
            
            If Pinb.3 = 0 Then
             B = 0
              For Key = 1 To 5
               If Pinb.3 = 1 Then Goto Settempoff
                B = B + 1
                Waitms 500
              Next Key
            
               Writeeeprom K , 10
               Waitms 20
               Ashar1 = 11 : Yekan1 = 11 : Dahgan1 = 11
               Waitms 90
            
            End If
            
            
            
            '7seg rotin
            
            
                Ashar1 = K Mod 10
                Yekan = K / 10
                Yekan1 = Yekan Mod 10
                Dahgan1 = K / 100
            
            Loop
            
            End Sub
            
            
            '************************************************************
            
             Sub Settempoff
            If Pinb.3 = 0 Then
              Bitwait Pinb.3 , Set
            
              End If
            
            Ashar1 = 11
            Yekan1 = 11
            Dahgan1 = 11
            Portc.5 = 0
            Portc.4 = 0
            Portc.3 = 1
            
            Readeeprom G , 20
            
            Do
            
              If Pinb.4 = 0 And G < 999 Then Incr G : Waitms 20
            
            
              If Pinb.5 = 0 And G > 0 Then Decr G : Waitms 20
            
            
            If Pinb.3 = 0 Then
             B = 0
              For Key = 1 To 5
               If Pinb.3 = 1 Then Goto Setting
                B = B + 1
                Waitms 500
              Next Key
               Writeeeprom G , 20 : Waitms 20
               Ashar1 = 11 : Yekan1 = 11 : Dahgan1 = 11
               Waitms 90
            End If
            
            '7seg rotin
            
                Ashar1 = G Mod 10
                Yekan = G / 10
                Yekan1 = Yekan Mod 10
                Dahgan1 = G / 100
            
            Loop
            End Sub
            
            
             '************************************************************
             Sub Setting
            If Pinb.3 = 0 Then
              Bitwait Pinb.3 , Set
            
              End If
            Ashar1 = 11
            Yekan1 = 11
            Dahgan1 = 11
            
            
            Portc.5 = 1
            Portc.4 = 0
            Portc.3 = 0
            Readeeprom Tol , 30
            Do
            
              If Pinb.4 = 0 And Tol < 100 Then Incr Tol : Waitms 30
            
            
              If Pinb.5 = 0 And Tol > -100 Then Decr Tol : Waitms 30
            
            
             If Pinb.3 = 0 Then
             B = 0
              For Key = 1 To 5
               If Pinb.3 = 1 Then Goto Getdata
                B = B + 1
                Waitms 500
              Next Key
             Writeeeprom Tol , 30 : Waitms 20
              Ashar1 = 11 : Yekan1 = 11 : Dahgan1 = 11
              Waitms 90
               Goto Getdata
            End If
            
            '7seg rotin
            Tol3 = Tol
            If Tol3 < 0 Then
             Tol3 = Tol3 * -1
             Dahgan1 = 16
             Else
             Dahgan1 = 11
             End If
            
            If Tol3 < 99 Then
            
               Ashar1 = Tol3 Mod 10
                Yekan1 = Tol3 / 10
            
            End If
            
            Loop
             End Sub
            '****************************************************************************
            
            
            Segdata:
            Data &B00111111 , &B00000110 , &B01011011 , &B01001111 , &B01100110
            Data &B01101101 , &B01111101 , &B00000111 , &B01111111 , &B01101111
            Data &B11111111 , &B00000000 , &B01110110 , &B00110000 , &B01011100    'o  =14
            Data &B00111000 , &B01000000
            http://up.iranblog.com/images/wx4xbfbgx4evoblij2_thumb.jpg
            http://up.iranblog.com/images/xxre1sfj7gd96ldcjwid_thumb.jpg

            دیدگاه


              #7
              پاسخ : در خواست راهنمایی برای تکمیل ترموستات

              سلام
              این کد و pcb دماسنج .
              lm35.zip - 15 KB

              دیدگاه


                #8
                پاسخ : در خواست راهنمایی برای تکمیل ترموستات

                مرسی yasser2000

                فکر کنم فایل مشکل داره

                فایل باز نمیشه

                اگر فایل Proteus رو هم بزارید عالی میشه

                دیدگاه


                  #9
                  پاسخ : در خواست راهنمایی برای تکمیل ترموستات

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

                  http://uplod.ir/p1g6iedd2yfm/New_WinRAR_archive.rar.htm

                  دیدگاه


                    #10
                    پاسخ : در خواست راهنمایی برای تکمیل ترموستات

                    نوشته اصلی توسط yasser2000
                    باسلام
                    برنامه نویسی این سنسور که مورد خاصی نداره فقط باید از adc تا چند بار میانگین بگیری .
                    در عین حال این برنامه رو که برای دماسنج خودم هست میزارم امیدوارم مفید باشه . برنامه شامل سه منو هست منو اول برای تنظیم دمای بالا منو دوم برای تنظیم دمای پایین و منو سوم بار کالیبره کردن دستگاه .
                    از رفرنس داخلی استفاده کردم . avcc میکرو رو هم با یک سلف 10 میکرو به vcc و یه خازن 104 به gnd وصل کرم
                    بین خروجی سنسور و gnd یه خازن 4.7 میکرو گذاشتم تا پرش دما رو به حداکثر0.1 میرسونه . این برنامه برای سگمنت مالتی پلکس سه رقمی کاتد مشترک هست . بین خروجی سنسور و gnd هم یه مقاومت 10کیلو گذاشتم تا موقعی که سنسور از مدار خارج بشه دمای صفر رو نشون بده .برای تغذیه هم از آداپتور سویچینگ استفاده کردم و بعد از 7805 یه خازن 104 گذاشتم .بین پایه aref و gnd از یه خازن 104 استفاده کردم که اگه نباشه پرش دما زیاد میشه . از این دماسنج برای سالن های مرغداری استفاده کردم که سنسور داخل سالن در فاصله 30 متری نصب شده و از کابل 2 زوج تلفنی مرغوب استفاده کردم . تا حالا که مشکلی نداشته . دیگه توضیح خاصی نداره .
                    کد:
                    $regfile = "m8def.dat"
                    $crystal = 8000000
                    
                    Config Portb.7 = Output
                    
                    
                    Config Portd = Output
                                       'A-G (Data)
                    Config Portb.0 = Output
                    Config Portb.1 = Output
                    Config Portb.2 = Output
                    
                    'push buton
                    Config Portb.3 = Input
                     Config Portb.4 = Input
                     Config Portb.5 = Input
                    
                     'dot
                    Config Portc.1 = Output
                    
                    'relay
                     Config Portc.0 = Output
                    
                     'led port
                     Config Portc.3 = Output
                     Config Portc.4 = Output
                      Config Portc.5 = Output
                    .
                    .
                    .
                    کد:
                    خیلی ممنون آق یاسر،من کدویژن کار میکنم . میشه بگی چطور دقتشو 0.1 کردی؟ با همون گذاشتن خازن؟ توی تنظیمات adc لازم نیس کاریو انجام بدم؟
                    کلا توی سنسورهای دیگه هم میشه حساسیت رو بالا برد؟

                    دیدگاه


                      #11
                      پاسخ : در خواست راهنمایی برای تکمیل ترموستات

                      کد:
                      [quote=کیوان قاسمی]
                      خیلی ممنون آق یاسر،من کدویژن کار میکنم . میشه بگی چطور دقتشو 0.1 کردی؟ با همون گذاشتن خازن؟ توی تنظیمات adc لازم نیس کاریو انجام بدم؟
                      کلا توی سنسورهای دیگه هم میشه حساسیت رو بالا برد؟[/quote]
                      نوشته اصلی توسط کیوان قاسمی
                      سلام
                      دوست گرامی من کدویژن کار نمی کنم یعنی اصلا بلد نیستم :biggrin: ولی با همین برنامه که گذاشتم و با همون pcb که طراحی کردم این دقت رو داره .
                      با سپاس :smile:

                      دیدگاه

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