اطلاعیه

Collapse
No announcement yet.

کمک به رفع ایراد قدیمی کار با LM35

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

    کمک به رفع ایراد قدیمی کار با LM35

    با سلام. از LM35 برای اندازه گیری دما و کنترل یک المنت استفاده کرده ام. متاسفانه در خواندن مقدار دما اشکالات زیادی وجود داره. مثلا هربار که مقدار ADC رو میخونم یه چیزی نشون میده. پایه خروجی LM35 رو که با ولتمتر اندازه گیری میکنم ، بطور کاملا ثابتی مقدار 0.273 رو نشون میده اما همین مقدار توسط میکرو یکبار 27.1یکبار 26.9، یکبار 28.0 و ... رو نشون میده
    هر متدی از برنامه نویسی رو که بلد بودم پیاده کردم اما مشکل حل نشد که نشد. :angry: مثلا از بازه -0.1 تا +0.1 استفاده کردم (اعمال هیسترزیس)، تا جایی که میشد در لوپ مربوطه تاخیر ایجاد کردم، در هربار خواندن مقدار ADc چند ار با فواصل 10 میلی ثانیه ای مقدار ADc را خوانده و سپس متوسط گیری میکنم اما باز هم تاثیر چندانی نداره.
    در واقع مشکل اینه که چرا وقتی توسط مولتی متر این دما رو اندازه گیری میکنیم کاملا پایداره و کمترین تغییر رو داره اما با AVR این همه تغییرات داره.
    با اینکه هیچ منبع نویز قوی هم کنار مدار وجود نداره با اینحال از مدار نویز گیر سلف و خازن هم در مدار استفاده کردم. اینم بگم که سنسور روی مدار نصبه و فاصله ای از سیستم نداره.
    لطفا کمکم کنید که دیگه حسابی به بن بست رسیدم. :cry: بی صبرانه منتظر راهنمایی های شما همکاران گرامی هستم.

    #2
    پاسخ : کمک به رفع ایراد قدیمی کار با LM35

    نوشته اصلی توسط محمود سلیمانی
    با سلام. از LM35 برای اندازه گیری دما و کنترل یک المنت استفاده کرده ام. متاسفانه در خواندن مقدار دما اشکالات زیادی وجود داره. مثلا هربار که مقدار ADC رو میخونم یه چیزی نشون میده. پایه خروجی LM35 رو که با ولتمتر اندازه گیری میکنم ، بطور کاملا ثابتی مقدار 0.273 رو نشون میده اما همین مقدار توسط میکرو یکبار 27.1یکبار 26.9، یکبار 28.0 و ... رو نشون میده
    هر متدی از برنامه نویسی رو که بلد بودم پیاده کردم اما مشکل حل نشد که نشد. :angry: مثلا از بازه -0.1 تا +0.1 استفاده کردم (اعمال هیسترزیس)، تا جایی که میشد در لوپ مربوطه تاخیر ایجاد کردم، در هربار خواندن مقدار ADc چند ار با فواصل 10 میلی ثانیه ای مقدار ADc را خوانده و سپس متوسط گیری میکنم اما باز هم تاثیر چندانی نداره.
    در واقع مشکل اینه که چرا وقتی توسط مولتی متر این دما رو اندازه گیری میکنیم کاملا پایداره و کمترین تغییر رو داره اما با AVR این همه تغییرات داره.
    با اینکه هیچ منبع نویز قوی هم کنار مدار وجود نداره با اینحال از مدار نویز گیر سلف و خازن هم در مدار استفاده کردم. اینم بگم که سنسور روی مدار نصبه و فاصله ای از سیستم نداره.
    لطفا کمکم کنید که دیگه حسابی به بن بست رسیدم. :cry: بی صبرانه منتظر راهنمایی های شما همکاران گرامی هستم.
    سلام
    من فکر میکنم این سنسور ذاتا این مشکل رو داره
    ضمن این که جنس خود سنسور هم ممکن مشکل دار باشه
    چون منم این مشکل رو داشتم؛ منم از روش میانگین گیری استفاده کردم؛ خیلی بهتر شد
    اساتید اگه مشکل از ماست لطفا راهنمایی بفرمایید

    یه کار دیگه هم که من امتحان نکردم ولی شاید شاید خروجی رو پایدارتر کنه اینه که از یه مقاومت(مثلا 1 کیلو) بین پایه خروجی و زمین استفاده کنید
    این شماتیک هم فکر میکنم سنسور رو پایدارتر میکنه:


    اما حساسیت دما براتون اینقدر مهمه از سنسور های دقیقتری استفاده کنید
    آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

    116 کتابخانه مورد نیاز برای Altium Designer

    از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

    دیدگاه


      #3
      پاسخ : کمک به رفع ایراد قدیمی کار با LM35

      من با این سنسور کار نکردم
      ولی اگر فکر میکنی مشکل از adc چرا خودتو گیر برنامه میندازی یه آی سی ADC0804 بگیر من همه جورشم تست کردم با میکرو کار میکنه یعنی سرعتش هم خونی داره با هم
      تو تبدیلم فوق العاده عمل میکنه بدون خطا
      گر طالب فضلی افتادگی آموز *****هرگز نخورد آب زمینی که بلند است )

      اگر دقت کنید بیشتر مشکلاتمون رو با مدارها تو نت سرچ میکنیم پس اگر شما هم مطلبی کامل بلدی بنویس تا بقیه مشکلشون برطرف شه !

      دیدگاه


        #4
        پاسخ : کمک به رفع ایراد قدیمی کار با LM35

        از تنظیمات 8 بیتی استفاده کنید.یه خازن 100 نانو هم روی aref و زمین بذارید خوبه.ولتمتر مقدار موثر را محایبه می کنه.پس شاید خروچی lm35 را هم به یه خازن 100 نانو وصل کنید خوب باشه.
        آیا جهالت نیست که آدمی ساعات شیرین امروز را فدای روزهای آینده کند؟

        دیدگاه


          #5
          پاسخ : کمک به رفع ایراد قدیمی کار با LM35

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

          دیدگاه


            #6
            پاسخ : کمک به رفع ایراد قدیمی کار با LM35

            با سلام و احترام
            برای اینکه یک مقدار دقبق و بدون پرش در خروجی مبدل آنالوگ به دیجیتال داشته باشیم باید
            از یک آی سی مرجع ولتاژ دقیق استفاده کنیم مثل AD780 یا AD584
            که خیلی هم گرون هستن

            دیدگاه


              #7
              پاسخ : کمک به رفع ایراد قدیمی کار با LM35

              نوشته اصلی توسط plc1361
              با سلام و احترام
              برای اینکه یک مقدار دقبق و بدون پرش در خروجی مبدل آنالوگ به دیجیتال داشته باشیم باید
              از یک آی سی مرجع ولتاژ دقیق استفاده کنیم مثل AD780 یا AD584
              که خیلی هم گرون هستن
              یعنی منظورتون اینه که در پایه VREF میکرو از این آی سیها استفاده کنم؟ ممنون میشم اگه نقشه ای دارید پ کنید تا هم من و هم بقیه هم که این مشکل و دارند استفاده کنند. :applause:

              دیدگاه


                #8
                پاسخ : کمک به رفع ایراد قدیمی کار با LM35

                نوشته اصلی توسط محمود سلیمانی
                بعید میدونم مشکل از سنسور باشه. بیشتر فکر میکنم از خود میکرو و ADC باشه. چون وقتی با ولتمتر پایه خروجی سنسور رو اندازه گیری میکنم همه چیز مرتبه و هیچ مشکلی نیست اما وقتی با میکرو میخونمش پرت و پلا نشون میده.
                به جای سنسور یه پتانسیومتر بذار
                اگه مشکل از ADC باشه باید با پتانسیومتر هم مشکل داشته باشه
                بعید میدونم ADC مشکل داشته باشه
                آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

                116 کتابخانه مورد نیاز برای Altium Designer

                از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

                دیدگاه


                  #9
                  پاسخ : کمک به رفع ایراد قدیمی کار با LM35

                  سلام

                  منم که یکبار ال ام 35 رو راه انداختم با کدویژن دقیقا همین مشکل رو داشتم بعد متوجه شدم دوستان راه انداختن با بیسیک یا اتمل استادیو و قشنگ براشون کار کرده
                  و اینجاست که نام کدویژن میدرخشد :surprised:

                  اگه بیسیک یاد دارید ی بار امتحان کنید ببینید چی میشه. :redface:
                  "زمان خط است نه دايره" چه ايده بدي بوده گرد ساختن ساعت. احساس ميکني هميشه فرصت تکرار است.
                  ساعت دروغ ميگويد. دروغ. زمان بر گرد يک دايره نمي چرخد! زمان بر روي خطي مستقيم ميدود. و هيچگاه، هيچگاه، هيچگاه باز نميگردد.
                  ساعت خوب، ساعت شني است! هر لحظه به تو يادآوري ميکند که دانه اي که افتاد ديگر باز نميگردد.
                  پس بهتره يکم به ثانيه هايي که داريم فکر کنيم تا به راحتي از دستشون نديم....

                  دیدگاه


                    #10
                    پاسخ : کمک به رفع ایراد قدیمی کار با LM35

                    مطمئن نبودم الان شدم کار کار خود کد ویژنه فک کنم که وقتی کرک میشه ADC رو به صورت صحیح انجام نمیده.
                    اینو الان بستم به نحو احسنت داره جواب میده فقط 1 درجه کمو زیاد میشه.
                    [code=vb]
                    $regfile = "m16def.dat"
                    $crystal = 8000000
                    Config Lcdpin = Pin , Db4 = Pc.2 , Db5 = Pc.3 , Db6 = Pc.4 , _
                    Db7 = Pc.5 , Rs = Pd.7 , E = Pc.1
                    Config Lcd = 16 * 2
                    Cursor Off
                    CLS
                    Config Adc = Single , Prescaler = Auto , Reference = Avcc
                    Dim W As Word , A As Single
                    Dim W1 As Word , W2 As Word , W3 As Word , W4 As Word , Sum As Word
                    Config Single = Scientific , Digits = 3
                    Start Adc
                    Do

                    W = Getadc(0)
                    Waitms 500
                    W1 = Getadc(0)
                    Waitms 500
                    W2 = Getadc(0)
                    Waitms 500
                    W3 = Getadc(0)
                    Waitms 500
                    W4 = Getadc(0)
                    Waitms 500
                    Sum = W + W1
                    Sum = Sum + W2
                    Sum = Sum + W3
                    Sum = Sum + W4
                    sum=sum/5
                    Locate 1 , 1 : Lcd "Digit=" ; Sum ; " "
                    A = Sum * 5
                    A = A / 1023
                    Locate 2 , 1 : Lcd "Analog=" ; A ; " "
                    Loop
                    End
                    [/code]
                    "زمان خط است نه دايره" چه ايده بدي بوده گرد ساختن ساعت. احساس ميکني هميشه فرصت تکرار است.
                    ساعت دروغ ميگويد. دروغ. زمان بر گرد يک دايره نمي چرخد! زمان بر روي خطي مستقيم ميدود. و هيچگاه، هيچگاه، هيچگاه باز نميگردد.
                    ساعت خوب، ساعت شني است! هر لحظه به تو يادآوري ميکند که دانه اي که افتاد ديگر باز نميگردد.
                    پس بهتره يکم به ثانيه هايي که داريم فکر کنيم تا به راحتي از دستشون نديم....

                    دیدگاه


                      #11
                      پاسخ : کمک به رفع ایراد قدیمی کار با LM35

                      نوشته اصلی توسط masoud_m_bf
                      به جای سنسور یه پتانسیومتر بذار
                      اگه مشکل از ADC باشه باید با پتانسیومتر هم مشکل داشته باشه
                      بعید میدونم ADC مشکل داشته باشه
                      حق با شماست. با پتانسومتر هیچ تغییری در مقدار نداره!!! :sad: نمیفهمم، چرا پس وقتی با ولتمتر میخونیم هیچ تغییری نداره مقدار LM35 ولی با میکرو اینهمه پرش و تغییر داره؟!! :angry:

                      جناب مهندس M.H.Askari ممنون از زحمتی که کشیدید. البته من به دقت 0.4 درجه رسیدم ولی همینم داره اذیتم میکنه!!

                      دیدگاه


                        #12
                        پاسخ : کمک به رفع ایراد قدیمی کار با LM35

                        نوشته اصلی توسط محمود سلیمانی
                        حق با شماست. با پتانسومتر هیچ تغییری در مقدار نداره!!! :sad: نمیفهمم، چرا پس وقتی با ولتمتر میخونیم هیچ تغییری نداره مقدار LM35 ولی با میکرو اینهمه پرش و تغییر داره؟!! :angry:

                        جناب مهندس M.H.Askari ممنون از زحمتی که کشیدید. البته من به دقت 0.4 درجه رسیدم ولی همینم داره اذیتم میکنه!!
                        خب این ها پرش های لحظه ای هست که احتمالا مولتی متر فرکانس کمتری از میکرو داره و نمیتونه اونا رو حس کنه؛ اگه اسکوپ دم دست داری با اسکوپ خروجی سنسور رو ببین
                        ولی من احتمال زیادی میدم مشکلت با خازن حل بشه

                        یه سوال؛ شما میخوای با استفاده از سنسور و میکرو یه سردکن یا گرمکن رو راه اندازی کنی و این پرش ها برات مشکل سازه؟ مثلا تو اون دما خاص وسیله هی قطع و وصل میشه؟ اگه اینه میشه با دو سه خط برنامه حلش کرد آ
                        آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

                        116 کتابخانه مورد نیاز برای Altium Designer

                        از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

                        دیدگاه


                          #13
                          پاسخ : کمک به رفع ایراد قدیمی کار با LM35

                          نوشته اصلی توسط masoud_m_bf
                          خب این ها پرش های لحظه ای هست که احتمالا مولتی متر فرکانس کمتری از میکرو داره و نمیتونه اونا رو حس کنه؛ اگه اسکوپ دم دست داری با اسکوپ خروجی سنسور رو ببین
                          ولی من احتمال زیادی میدم مشکلت با خازن حل بشه

                          یه سوال؛ شما میخوای با استفاده از سنسور و میکرو یه سردکن یا گرمکن رو راه اندازی کنی و این پرش ها برات مشکل سازه؟ مثلا تو اون دما خاص وسیله هی قطع و وصل میشه؟ اگه اینه میشه با دو سه خط برنامه حلش کرد آ
                          باید دمای یک ابگرمکن رو با دقت 0.1 درجه کنترل کنم. از کنترل کننده PID استفاده کردم که به خوبی داره کارشو انجام میده. اما چون مقدار سنسور مدام تغییر میکنه کنترل دقیق غیر ممکن میشه. از دو سنسور LM35 استفاده کردم در دو قسمت مختلف منبع آب استفاده کردم که متوسط خروجی این دو سنسور بعنوان دمای خوانده شده در نظر گرفته شد. من کد قسمتی که با ADC رو خوندم و بصورت زیر نوشتم. ممنون میشم اگه راه حل بهتری به نظر شما و هرکدوم از دوستان میرسه راهنماییم کنند.

                          کد:
                          '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ADC Calculation ///////////////////////////////
                          Sub Adc_calc
                          
                          For I = 1 To 10
                            Adc0 = Getadc(0)
                            Adc_aux = Adc0 + Adc_aux
                            Waitms 10
                          Next
                          Adc0 = Adc_aux / 10
                          T0 = Adc0 / 6.65
                          Adc_aux = 0
                          
                          
                          For I = 1 To 10
                            Adc1 = Getadc(1)
                            Adc_aux = Adc1 + Adc_aux
                            Waitms 10
                          Next
                          Adc1 = Adc_aux / 10
                          T1 = Adc1 / 6.313
                          Adc_aux = 0
                          
                          
                          Temperature = T0 + T1
                          Temperature = Temperature / 2
                          
                          Temperature_n = Temperature_old - 0.1
                          Temperature_p = Temperature_old + 0.1
                          
                          If Temperature < Temperature_n Then
                            Temperature_old = Temperature_old - Temperature
                            Temperature_old = Temperature_old / 2
                            Temperature = Temperature - Temperature_old
                          
                          Else
                            If Temperature > Temperature_p Then
                             Temperature_old = Temperature - Temperature_old
                             Temperature_old = Temperature_old / 2
                             Temperature = Temperature + Temperature_old
                            Else
                             Temperature = Temperature_old
                            End If
                          End If
                          
                          Reset Watchdog
                          
                          Temperature_old = Temperature
                          
                          End Sub

                          دیدگاه


                            #14
                            پاسخ : کمک به رفع ایراد قدیمی کار با LM35

                            نوشته اصلی توسط محمود سلیمانی
                            باید دمای یک ابگرمکن رو با دقت 0.1 درجه کنترل کنم. از کنترل کننده PID استفاده کردم که به خوبی داره کارشو انجام میده. اما چون مقدار سنسور مدام تغییر میکنه کنترل دقیق غیر ممکن میشه. از دو سنسور LM35 استفاده کردم در دو قسمت مختلف منبع آب استفاده کردم که متوسط خروجی این دو سنسور بعنوان دمای خوانده شده در نظر گرفته شد. من کد قسمتی که با ADC رو خوندم و بصورت زیر نوشتم. ممنون میشم اگه راه حل بهتری به نظر شما و هرکدوم از دوستان میرسه راهنماییم کنند.
                            به نظر من که برنامه مشکلی نداره
                            روشی که مد نظر من هست دقت رو میاره پایین؛ و با توجه به این دقت مورد نیاز به درد شما نمیخوره
                            چند سال پیش برای کنترل کمپرسور یخچال همین مشکل رو داشتم
                            کاری که کردم این بود که مثلا اگه دمای x مد نظر بود؛ کمپرسور رو تا دمای x-2 خاموش نمیکردم
                            از اون طرف کمپرسور رو تا دمای x+2 هم روشن نمیکردم
                            اینجوری دما رو از یه عدد خاص به یک بازه تبدیل کردم که جهش های سنسور رو بی تاثیر میکرد
                            آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

                            116 کتابخانه مورد نیاز برای Altium Designer

                            از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

                            دیدگاه


                              #15
                              پاسخ : کمک به رفع ایراد قدیمی کار با LM35

                              با سلام مجدد
                              1- حتما باید یک خازن 100nf به ورودی AREF و زمین متصل کنید
                              2- با توجه به دیتاشیت lm35 بیشترین دقت 0.25 درجه سانتیگراد در دمای اتاق 0.75 درجه سانتیگراد در دیگر مکانها



                              پس گرفتن دقت 0.1 درجه از این سنسور امری محاله
                              3 - بهترین حالت با دقت 1 درجه زمانی ایجاد میشه که مورد یک رو حتما انجام بدین ولتاژ مرجع را 2.56v داخلی قرار بدین
                              و adc را روی مد 8 بیتی قرار داده و عدد قرائت شده بر حسب درجه سانتیگراد می باشد
                              4- مدار بر روی برد بورد نیز دچار نوسان می باشد پس بهتر است مدار بر روی pcb و لحیم کاری شده باشد
                              موفق باشین

                              دیدگاه

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