اطلاعیه

Collapse
No announcement yet.

خطای دما و نوسان آن در این پروژه. (atmega8 &lm35)

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

    خطای دما و نوسان آن در این پروژه. (atmega8 &lm35)

    سلام.
    مشکلش اینه که اولا دما ثابت نیست. حدود 5 درجه نوسان داره، دوما دما درست نیست، مثلا الان دمای اتاق منو زده 40 درجه حدودا(از 37 تا 42 نوسان داره) در حالی که حدود 25 هستش احتمالا
    مشکل کجا میتونه باشه.
    میانگین هم میگیرم:
    کد:
    #include <mega8.h>
    #include <delay.h>
    #include <stdio.h>
    #include <stdlib.h>
    #asm
      .equ __lcd_port=0x18
    #endasm
    #include <lcd.h>
    
    float temp=0.0;
    
    void display(){
      char str1[16],str2[16]; 
      ftoa(temp,1,str1);
      sprintf(str2,"Temp=%3s",str1);
      lcd_clear();
      lcd_gotoxy(0,0);
      lcd_puts(str2);   
    }
    
    interrupt [ADC_INT] void adc_isr(void){
      unsigned int adc_data; 
      adc_data=ADCW;          
      temp=(adc_data*2.56/1024)*100;
    }
    
    void main(){
      int i;
      float sum;
      ACSR=0xC0;
      ADMUX=0xC0;
      ADCSRA=0x8F;
      lcd_init(16);
      #asm("sei")
      ADCSRA=0xCF;
      while(1){
        display();
        delay_ms(50); 
        sum=0;
        for(i=0;i<1000;i++)
        {
          ADCSRA=0xCF;
          sum+=temp;
          delay_ms(1); 
        }       
        temp=sum/1000;
      }
    }

    #2
    پاسخ : خطای دما و نوسان آن در این پروژه. (atmega8 &lm35)

    سلام. من خیلی C بلد نیستم ولی مشکل شما اگر در برنامه نباشه ممکنه به این دو مورد مربوط بشه >>> نوسان دما : احتمال وجود نویز بر روی پایه ADC میکروکنترلر
    بهتره خط دیتا را کوتاه و یا از خط ارتباطی را از سیم شیلد دار انتخاب کنید.
    حتما تمامی پایه های VCC و GND میکرو را متصل کنید.
    در ولتاژ رفرنس ADC از فیلتر پایین گذر استفاده کنید.
    نکته بسیار مهم : سنسور LM35 کالیبره نیست و باید حتما کالیبره شود. (با یک دماسنج درست می بایست مقدار صحیح دما را با کم و زیاد کردن عددی از مقدار خوانده شده از ADC تصحیح کنید.)

    __________________________________________________ __________________________________________________ _______________
    STM32 واقعا یه چیز دیگه است...

    دیدگاه


      #3
      پاسخ : خطای دما و نوسان آن در این پروژه. (atmega8 &lm35)

      نوشته اصلی توسط Javad Moosavi
      سلام. من خیلی C بلد نیستم ولی مشکل شما اگر در برنامه نباشه ممکنه به این دو مورد مربوط بشه >>> نوسان دما : احتمال وجود نویز بر روی پایه ADC میکروکنترلر
      بهتره خط دیتا را کوتاه و یا از خط ارتباطی را از سیم شیلد دار انتخاب کنید.
      حتما تمامی پایه های VCC و GND میکرو را متصل کنید.
      در ولتاژ رفرنس ADC از فیلتر پایین گذر استفاده کنید.
      نکته بسیار مهم : سنسور LM35 کالیبره نیست و باید حتما کالیبره شود. (با یک دماسنج درست می بایست مقدار صحیح دما را با کم و زیاد کردن عددی از مقدار خوانده شده از ADC تصحیح کنید.)

      __________________________________________________ __________________________________________________ _______________
      سلام.
      یعنی پایه هایی از میکرو که به جایی وصل نیست رو به زمین وصل کنم؟
      من زیاد از الکترونیک چیزی نمیدونم. اگه یکم ساده تر توضیح بدید ممنون میشم.

      دیدگاه


        #4
        پاسخ : خطای دما و نوسان آن در این پروژه. (atmega8 &lm35)

        نه منظور دوستمون اینه که اون یکی vcc و gnd رو هم وصل کنید.دوتا gndداره اونم وصل کن
        telgram:09396888049

        دیدگاه


          #5
          پاسخ : خطای دما و نوسان آن در این پروژه. (atmega8 &lm35)

          بهتره خط دیتا را کوتاه و یا از خط ارتباطی را از سیم شیلد دار انتخاب کنید.
          حتما تمامی پایه های VCC و GND میکرو را متصل کنید.
          در ولتاژ رفرنس ADC از فیلتر پایین گذر استفاده کنید.
          خط دیتا وجود نداره تقریبا. فعلا روی برد برد هست.
          با راهنمایی شما و دوستمون انجام دادم.

          جمله آخر یعنی دقیقا چکار کنم؟
          ------------------------

          ویرایش:
          یه خازن الکترولیتی 35ولت و 2.2میکروفاراد اضافه کردم یه پین خازن به پین AREF از میکرو وصل هست، و یه پینش هم به زمین.

          نوسان کامل حذف شد ردیف.

          فقط یه سوال این خازن برای این کار مناسب هست؟ الان این خازن اینجا چه کاری میکنه که نوسان حذف شد؟

          دیدگاه


            #6
            پاسخ : خطای دما و نوسان آن در این پروژه. (atmega8 &lm35)

            نوشته اصلی توسط ShahinRad
            خط دیتا وجود نداره تقریبا. فعلا روی برد برد هست.
            با راهنمایی شما و دوستمون انجام دادم.

            جمله آخر یعنی دقیقا چکار کنم؟
            خط دیتا دوست عزیز منظور همون اتصال پایه خروجی سنسور به ورودی ADC میکروکنترلر هستش.


            نوشته اصلی توسط ShahinRad
            ویرایش:
            یه خازن الکترولیتی 35ولت و 2.2میکروفاراد اضافه کردم یه پین خازن به پین AREF از میکرو وصل هست، و یه پینش هم به زمین.

            نوسان کامل حذف شد ردیف.

            فقط یه سوال این خازن برای این کار مناسب هست؟ الان این خازن اینجا چه کاری میکنه که نوسان حذف شد؟
            خازن مناسبه تا حدی ولی فکر کنم بهتره یک خازن مولتی لیر 100 نانوفاراد بذاری و یک خازن الکترولیتی 16 ولت 1000 میکروفاراد هم باهاش موازی کنی.
            مقدار قرائت شده برای ADC نسبت به ولتاژ AREF تعیین میشه و چون منابع تغذیه ولتاژ ثابتی ارائه نمی دن خازن در جاهایی که ولتاژ کم و زیاد میشه ریپل ها رو حذف می کنه. بهتره در ورودی تغذیه مدار از تثبیت کننده هم استفاده بشه مثل 7805 یا LM2576-5.

            فیلتر پایین گذر LC >>> در ورودی رفرنس ADC تا اونجا که میدونم یه سلف 100 میکروهانری هم باید باشه . به صورت سری.

            در صورت استفاده از LM2576-5 مدار ارائه شده برای تثبیت کننده در دیتاشیت، دارای فیلتر و ... هست که توصیه می کنم حتما از این تثبیت کننده استفاده کنید. (فقط یه کوچولو گرونه!!)

            STM32 واقعا یه چیز دیگه است...

            دیدگاه

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