اطلاعیه

Collapse
No announcement yet.

مشکل در ساخت دما سنج با AVR

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

    مشکل در ساخت دما سنج با AVR

    باسلام خدمت همه مهندسان عزیز
    یه دما سنج با MEGA32 و LM35 ساختم و براش یه ست پوینت تعریف کردم که اگه دما از اون پایین یا بالاتر یه سری کارا انجام بده. و حالا مشکل اینجاست که اون عددی که دمارو نشون میده کمی متغیره . مثلا اگه دما20 درجه باشه از 18 تا 22 همینجور تغییر میکنه و ثابت نمییمونه و یا به اصطلاح بازی میکنه که این باعث میشه طبق اون ست پوینت عمل نکنه و سیستم نا پایدار بشه و هر لحظه یه فرمانی بده. خوب حالا اگه راهکار نرم افزاری یا سخت افزاری دارید بگید ممنون میشم راهنماییم کنید. (راستی اینو هم بگم برای حذف نویز از اون راهکار سلف و خازنی که واسه A/D تو دیتاشیت گفته بود استفاده کردم ولی بازم نشد) باتشکر

    #2
    پاسخ : مشکل در ساخت دما سنج با AVR

    سلام
    از نمونه هات میانگین بگیر بعد ازشون استفاده کن....
    قنديل، تنديس قطره هايي است كه تسليم جاذبه زمين نشدند. "چگوآرا"

    دیدگاه


      #3
      پاسخ : مشکل در ساخت دما سنج با AVR

      نوشته اصلی توسط armay
      باسلام خدمت همه مهندسان عزیز
      یه دما سنج با MEGA32 و LM35 ساختم و براش یه ست پوینت تعریف کردم که اگه دما از اون پایین یا بالاتر یه سری کارا انجام بده. و حالا مشکل اینجاست که اون عددی که دمارو نشون میده کمی متغیره . مثلا اگه دما20 درجه باشه از 18 تا 22 همینجور تغییر میکنه و ثابت نمییمونه و یا به اصطلاح بازی میکنه که این باعث میشه طبق اون ست پوینت عمل نکنه و سیستم نا پایدار بشه و هر لحظه یه فرمانی بده. خوب حالا اگه راهکار نرم افزاری یا سخت افزاری دارید بگید ممنون میشم راهنماییم کنید. (راستی اینو هم بگم برای حذف نویز از اون راهکار سلف و خازنی که واسه A/D تو دیتاشیت گفته بود استفاده کردم ولی بازم نشد) باتشکر
      سلام دوست عزیز-من این پروژه رو انجام دادم البته بجای ست پوینت شما من پوش باتوم گزاشتم که بازدن اون دما کمو زیاد میشد.برنامه تو میزاری نگاش کنم؟ازadcاستفاده کردی دیگه؟

      دیدگاه


        #4
        پاسخ : مشکل در ساخت دما سنج با AVR

        باتشکر
        ولی مشکل از برنامه فکر نکنم باشه ولی خوب برنامشو میذارم یه نگاه بنداز

        دیدگاه


          #5
          پاسخ : مشکل در ساخت دما سنج با AVR

          #include <mega32.h>
          #include <delay.h>
          #include <alcd.h>
          #include <stdio.h>

          #define ADC_VREF_TYPE 0xE0

          unsigned char read_adc(unsigned char);

          void main(){
          unsigned char point=20;
          unsigned char temp;
          unsigned char lcd_buffer[16];


          DDRB=0xE0;
          PORTB=0x1F;

          ADMUX=ADC_VREF_TYPE & 0xff;
          ADCSRA=0x83;

          lcd_init(16);
          lcd_clear();

          while (1){
          temp = read_adc(0);
          sprintf(lcd_buffer,"Temperature=%d",temp );
          lcd_gotoxy(0,0);

          lcd_puts(lcd_buffer);
          //Read Key and Write SET POINT to LCD
          //PB0 is UP key PB1 is Down key
          if(PINB.0==0) {
          point++;
          while(PINB.0==0);
          }
          if(PINB.1==0) {
          point--;
          while(PINB.1==0);
          }
          sprintf(lcd_buffer,"SET POINT=%d",point);
          delay_ms(500);
          lcd_gotoxy(0,1);
          lcd_puts(lcd_buffer);

          //Comprate and Out on Hitter or Colling
          //PB5 is Normal ,PB6 is Cold , PB7 is Hot
          if(temp < point){
          PORTB.7=1; //hitter set is ON
          PORTB.6=0; //Coller set is OFF
          PORTB.5=0; //Normal is OFF
          }
          if(temp > point){
          PORTB.7=0; //hitter set is OFF
          PORTB.6=1; //Coller set is ON
          PORTB.5=0; //Normal is OFF
          }
          if(temp == point){
          PORTB.7=0; //hitter set is OFF
          PORTB.6=0; //Coller set is OFF
          PORTB.5=1; //Normal is ON
          }
          }
          }
          unsigned char read_adc(unsigned char adc_input){
          ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
          delay_us(10);
          ADCSRA|=0x40;
          while ((ADCSRA & 0x10)==0);
          ADCSRA|=0x10;
          return (ADCH);
          }

          دیدگاه


            #6
            پاسخ : مشکل در ساخت دما سنج با AVR

            نوشته اصلی توسط armay
            باتشکر
            ولی مشکل از برنامه فکر نکنم باشه ولی خوب برنامشو میذارم یه نگاه بنداز
            برنامه که مشکل نداره-من مقدار adc(0)رو تقسیم بر 4کرده بودم دما مشخص می شد-ولتاژه مرجع همvccبود برنامه شبیه همین جواب میده مشکلم نداره

            دیدگاه


              #7
              پاسخ : مشکل در ساخت دما سنج با AVR

              آره تو پروتئوس درست کار میکنه ولی توی واقعیت روی برد بورد که میبندی انگار نویز میگیره و بعضی مواقع عددی که نشون میده همینجور تغییر میکنه. در حالی که اون فیلتر پیشنهادی رو هم براش گذاشتم.

              دیدگاه


                #8
                پاسخ : مشکل در ساخت دما سنج با AVR

                سلام دوست عزیز
                اولا وقفه ADC، مد noise canceler و مد sleep رو برای عملکرد بهتر واحد ADC فعال کن(با کد ویزارد به راحتی قابل انجامه) ثانیا بسته به کاری که میکروت انجام میده از یه حلقه استفاده کن که مثلا 100 تا نمونه تو یک ثانیه بگیره و در پایان میانگین رو حساب کنه. من تازگی از LM35 استفاده کردم و مشکلی نداشتم

                دیدگاه


                  #9
                  پاسخ : مشکل در ساخت دما سنج با AVR

                  در مورد نوسان موجود خب یکی از دلایلش استفاده از بردبورد هست اما بنده مداراهای زیادی از سنسورهای ساده ای مثل LM35 ساختم (هم فیبر مدارچاپی و هم بردبورد) که نوسان آنچنانی نداشت و در حد دهم درجه بود(البته اساسا این سنسور دمای درستی رو به شما نمیده و خیلی خطا داره)
                  با این وجود در برنامه ها همیشه مقدار Min و max و یا مقدار نوسان هم به همراه set point تعریف میکردیم که باعث پایداری خروجی میشه
                  [br /][hr]http://pcenter.ir[hr][br /]

                  دیدگاه


                    #10
                    پاسخ : مشکل در ساخت دما سنج با AVR

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

                    یه خازن کوچیک بذاری . اینجوری جلوی خیلی از پرشات گرفته میشه
                    و اینکه دوستان عرض کردن از یه بازه مین و ماکس استفاده کن
                    اگه ست پویت تو مثلا 20 بگو اگه از 21 - 19
                    اگه درست نشد که با این پیشنهادات درستر میشه
                    فقط یه راه دیگه باقی میمونه
                    و اینه که بیخیال lm35 بشی به همین سادگی
                    اما در کل سنسور خوبیه فقط کمی زود جو گیر تغیراتت جوی میشه
                    مثل این پسرا هست که توی جمع ای که دختر هست جو گیر میشن یه کارایی میکنن یه حرفایی میزنن
                    خودشونم نمیتونن خودشونو کنترل کنن
                    فکر کنم lm 35 مذکر

                    دیدگاه


                      #11
                      پاسخ : مشکل در ساخت دما سنج با AVR

                      سلام
                      سه متغیر تعریف کن سپس دما رو سه بار پشت سرهم بخون و هربارتو یکی از سه متغیربزارسپس با یه دستور ifکه اگرسه متغیر برابر هستن اونوقت دمارو برابر یکی از تغیرها کن ونمایش بده
                      من با picکارمیکنم بار اول که سنورال ام35 رو راه اتدازی کردم این مشکل رو داشتم ولی بعدها که دوباره این پروزه رو با همین ایسی انجام دادم اصلا چنین مشکلی نداشت انقدر دما ثابت بود که گفتم شاید سنسور خرابخ :rolleyes:ولی سالم بود
                      تمیزبودن فیبر مسی مخصوصا pinانالوگ به دیجیتال که به سنسور وصله و مسیری که تو فیبر طی میکنه تا به سنسور وصل شه
                      رو تمییزبا الکل یا مواد تمییزکننده تمیز کن خیلی مهمه
                      اگريك فلج مادر زاد در مسابقه دو ماراتون نفراول نشود مقصر فقط وفقط خودش است...

                      دیدگاه


                        #12
                        پاسخ : مشکل در ساخت دما سنج با AVR

                        سلام دوستان

                        من یکبار این سنسور را راه اندازی کردم موقعی که دیتاشیتش رو مطالعه میکردم یک قسمت نوشته بود به ازای هر درجه سانتی گراد 10 میلی ولت تغییر ولتاژ ایجاد میشود.
                        اما وقتی armay رو خوندم این قسمت که ولتاژ بدست آمده تقسیم بر 10 بشه رو ندیدم، به این نکته هم دقت کنید.

                        موفق باشی

                        دیدگاه


                          #13
                          پاسخ : مشکل در ساخت دما سنج با AVR

                          نوشته اصلی توسط Baghmirani
                          سلام دوستان
                          من یکبار این سنسور را راه اندازی کردم موقعی که دیتاشیتش رو مطالعه میکردم یک قسمت نوشته بود به ازای هر درجه سانتی گراد 10 میلی ولت تغییر ولتاژ ایجاد میشود.
                          اما وقتی armay رو خوندم این قسمت که ولتاژ بدست آمده تقسیم بر 10 بشه رو ندیدم، به این نکته هم دقت کنید.
                          موفق باشی
                          دوست عزیز بله خروجی این سنسور به ازای هر درجه 10 میلی ولت ولتاژ میده و قرار نیست که چون 10mv ولتاژ میده باید تقسیم بر 10 کنیم ضریب ما با توجه به ولتاژ رفرنس بدست مییاد
                          [br /][hr]http://pcenter.ir[hr][br /]

                          دیدگاه


                            #14
                            پاسخ : مشکل در ساخت دما سنج با AVR

                            نوشته اصلی توسط adelavr110
                            دوست عزیز بله خروجی این سنسور به ازای هر درجه 10 میلی ولت ولتاژ میده و قرار نیست که چون 10mv ولتاژ میده باید تقسیم بر 10 کنیم ضریب ما با توجه به ولتاژ رفرنس بدست مییاد
                            adelavr110 عزیز اگه امکانش هست بیشتر توضیح بدید.
                            مثلا اگه ولتاژی که تابع adc_read بر میگردونه 220 میلی ولت باشه باید اون رو به 10 تقسیم کنیم تا مقدار 22 بدست بیاد و سپس اون رو حالا میتونیم با متغییر point مقایسه کنیم.
                            این چیزی هست که من خودم عملا انجامش دادم و برای چاپ دما بر روی LCD به همین صورت رفتار کردم.

                            دیدگاه


                              #15
                              پاسخ : مشکل در ساخت دما سنج با AVR

                              با سلام خدمت تمام دوستان آقا ما یک lm35 گرفتیم باهاش دماسنج درست کردیم ولی این دماسنج دقتی بیشتر از 0.5 درجه به من نمیده البته با atmega8
                              میخئام بدونم با این میکرو که دقت adc 10 بیتی داره دقت بالاتری هم میشه گرفت یا نه
                              با تشکر

                              دیدگاه

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