اطلاعیه

Collapse
No announcement yet.

درخواست راهنمایی برای noise canceling

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

    درخواست راهنمایی برای noise canceling

    با سلام.
    من یه پروژه دارم که در اون 2 تا LM35 دارم و باید دمای اونها رو هر 1 ثانیه بخونم اما موقع خوندن دما پرش خیلی زیاده . با اینکه سنسورها کنار هم هستن اختلاف دما 2-3 درجه دارن و هر بار دما 2-3 درجه با دفعه قبلی تفاوت داره و گاهی در مدت یک دقیقه تا 10 درجه دما را بالا پایین نشون می ده . تا جایی که می تونستم با انواع فیلترها ولتاژ میکرو و تغذیه آنالوگ و تغذیه سنسورها را صاف کردم اما مشکل حل نشد . اخرین راه استفاده از گزینه noise canceling میکرو به نظرم رسید.
    مطابق ویزارد کدویژن از این تابع استفاده کردم :
    کد:
    // Read the AD conversion result
    // with noise canceling
    
    unsigned int read_adc(unsigned char adc_input)
    {
    ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
    // Delay needed for the stabilization of the ADC input voltage
    delay_us(10);
    #asm
      in  r30,mcucr
      cbr r30,__sm_mask
      sbr r30,__se_bit | __sm_adc_noise_red
      out mcucr,r30
      sleep
      cbr r30,__se_bit
      out mcucr,r30
    #endasm
    return adc_data;
    }

    و بعد برای خوندن مقدار از دستور زیر استفاده کردم :
    کد:
    [left]
    Temp1=read_adc(1);[/left]
    اما با اولین فعال شدن این دستور میکرو هنگ می کنه و خروجی نمی ده . کسی می دونه اشکال کارم کجاست؟ این مساله خیلی برای من حیاتی و مهمه .
    کد کامل پروژم هم اینجاست :
    http://aks98.com/images/jzy11oneznzjvd09sv17.zip

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

    سلام.
    دوستان کسی در پروژه با کدویژن از Noise Canceling استفاده کرده؟ می تونید برنامه منو چک کنید و ایرادشو بگین؟ خیلی برام حیاتی و مهمه.

    دیدگاه


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

      سلام
      من از LM35 زیاد استفاده کردم و میتونم بگم اگه یه مزیت هم داشته باشه اینه که نویز خروجی اون خیلی کمه
      که البته اینم به خاطره امپدانس خروجی پایین اونه. البته من تو مدار از ADC میکرو استفاده نکردم ولی به نظر من
      مشکلت فقط adc میکرو هستش نه نویزگیری LM35
      که اونم بچه هایی که با adc میکرو تجربه بیشتر دارن باید کمکت کنن
      یه چیز دیگه از LM35 که باید بدونی علیرغم رنج دمایی تا 150+ معمولا تو دمای 95 به بالا زیاد دوام نمیاره

      دیدگاه


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

        ممنون اما سوال من اینه که چطوری از دستور Noise Canceling میکرو استفاده کنم؟ چرا موقع استفاده از این دستور میکرو متوقف می شه و دیگه راه اندازی نمی شه؟ کد دستورم و سورس برنامه را گذاشتم . اشکالش کجاست؟

        دیدگاه


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

          .

          دیدگاه


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

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

            دیدگاه


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

              نوشته اصلی توسط naeemafar
              چرا از DS1820 استفاده نمی کنی هم دیجیتاله هم دقت بالاست و رزولوشنش هم خیلی بالاست
              راه اندازیش خیلی ساده هست
              چون در نهایت مجبورم از pt100 استفاده کنم. محل اندازه گیری دما جاییه که در معرض رطوبت و آسیبهای فیزیکی قرارداره و ممکنه سنسور آسیب ببینه . در این شرایط PT100 بهترین گزینه است . فعلا دنبال روش راه اندازی PT100 هستم اما قبلش گفتم سعی کنم از مشابه آنالوگ اون استفاده کنم. چون مشکل نویز میکرو در زمان اندازه گیری آنالوگ در PT100 هم وجود داره . متاسفانه تو این سایت هم دوستان فقط به صورت تئوری راه حلهایی ارائه می دن اما دریغ از یه مثال کاربردی! من اینجا هیچ راه حلی به صورت نمونه برنامه و شماتیک مدار برای راه اندازی PT100 هم پیدا نکردم.
              فکر کردم مشکلی هم که درمورد noise canceling میکرو گفتم هم راه حلش برای دوستان ساده باشه . اما نمی دونم چرا جوابی نگرفتم هنوز.
              یه نکته عجیبی هم که برخورد کردم این بود که مدارم روی بردبورد هیچ مشکلی نداره و در نمایش مقادیر lm35 تقریبا پرش نداره . اما حالا که PCB شده خیلی پرش داره . یه نفر میانگین گیری را توصیه کرد . اما چون قابل اعتماد بودن دما خیلی برام اهمیت داره قابل اجرا نیست.

              دیدگاه


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

                علی آقا خیلی زود نامید شدی!

                من 5 شش سال پیش با LM35 کارمیکردم با استفاده از 8951 و آی سی ADC804 که فقط 8 بیت دقت داره
                ولی دما رو با 1 درجه اختلاف و بدون مشکل روی میکرو داشتم
                چون دستگاه رو تو محیطهای صنعتی استفاده میکردم برای LM35 یه غلاف درست کرده بودم
                به اینصورت که داخل یه پیچ 8 استیل رو یه شعاع 5mm (باندازه قطر LM35) و بطول 3cm سوراخ میکردم
                (البته تراشکار اینکارو میکرد نه من!) بعد سنسور رو داخل سوراخ پیچ میذاشتم و توی سوراخ رو با چسب
                آکواریم پر میکردم و تا دمای زیر 90 رو انصافا ازش راضی بودم
                ضمنا کابلی که من برا LM35 استفاده میکردم تو یه محیط خیلی خیلی پر نویز با طول تقریبا 50 متر بود!

                اما در مورد PT100 که پرمصرف ترین و کاربردی ترین سنسور دماست یه مشکل وجود داره اونم اینه که
                تغییرات اهم بر دمای ناچیزی داره حدود 0.39 اهم بر درجه

                PT100 رو معمولا 3 سیمه یا 4 سیمه می بندن (بدلیل اینکه خطای ناشی از مقاومت کابل رو به حداقل
                برسونن) البته برا فواصل کوتاه یا جایی که دقت زیاد نخواد 2 سیمه هم بسته میشه

                تو روش 4 سیمه که من ازش استفاده کردم ابتدا بوسیله 2 تا سیم و یه مدار تزریق جریان . یه جریان دائم
                بین 2 تا 4 میلی آمپر رو به PT100 تزریق میکنیم خوب واضحه که مقاومت کابل یا افزایش و کاهش مقاومت
                سنسور اثری بر جریان نداره
                حالا اگر دما و در نتیجه مقاومت سنسور تغییر کنه با توجه به ثابت بودن جریان . ولتاژ دو سر PT100 نیز همزمان با تغییر دما تغییر میکنه
                حالا میمونه خوندن این ولتاژ که یه روشش اینه که اونو بدی به یه تقویت کننده دیفرانسیل و خروجی اونو هم
                به یه ADC با دقت بالا (من از ADC574 استفاده کردم) وصل کنی

                البته راه بهترش استفاده از AD7730 هستش که برا همین کار ساخته شده


                دیدگاه


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

                  سلام
                  یادمه تو کدویژن فقط کافی بود که تیک noise canceling زده بشه... مشکلی نداشت من باهاش کار کرده بودم... (الان که کدویژنم باز کله پا شده! نمیتونم تست کنم)

                  از اسکن اتوماتیک استفاده کردی؟
                  https://www.linkedin.com/in/mohammadhosseini69

                  http://zakhar.blog.ir

                  دیدگاه


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

                    سلام. نمیدونم این چیزی که میخوام بگم ربطی به قضیه داره یا نه ولی تابع read_adc رو به جای آکولاد بسته با آکولاد باز بستی!!!!! آخر کد رو نگاه کن

                    دیدگاه


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

                      سلام.
                      ممنون از جواباتون. در نهایت فکر کنم همونطور که گفتین مجبورم برم سمت استفاده از ad7780 . چون در حال طراحی یه دستگاهی بودم که باید به تعداد بالا تولید بشه هزینه این مبدل زیاد بود اما چون از AD میکرو نتیجه ای که می خوام نگرفتم مجبورم. خودمم گیج شدم که اشکال کار کجاست و چرا موقع استفاده از Noise cancel میکرو متوقف می شه . در مورد اون آکولادباز و بسته گفتین اشکال از نحوه نمایش Right To left بود!
                      بازم ممنون

                      دیدگاه

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