اطلاعیه

Collapse
No announcement yet.

استفاده از adc بدون نویز

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

    استفاده از adc بدون نویز

    سلام
    بچه ها کسی آموزشی سراغ نداره که بتونم در میکروی avr آنالوگ رو به دیجیتال تبدیل کنم بدون نویز که فکر می کنم از adc noise reduction استفاده می شه و با استفاده از winavr

    #2
    پاسخ : استفاده از adc بدون نویز

    با سلام
    1- بخش آنالوگ چیپ و تمام قسمت های آنالوگ باید زمین جداگانه داشته باشند این زمین ها با زمین دیجیتال به وسیله یک مسیر به هم متصل می شوند
    2-مسیرهای آنالوگ تا حد امکان کوتاه انتخاب شوند
    3-از فیلتر پایین گذر استفاده کنید
    4-از مد های sleep و حالت adc noise canceler برای کاهش نویز القا شده توسط cpu استفاده کنید
    موفق باشی

    دیدگاه


      #3
      پاسخ : استفاده از adc بدون نویز

      نوشته اصلی توسط khatarat
      سلام
      بچه ها کسی آموزشی سراغ نداره که بتونم در میکروی avr آنالوگ رو به دیجیتال تبدیل کنم بدون نویز که فکر می کنم از adc noise reduction استفاده می شه و با استفاده از winavr
      سلام
      همانطور که آقای پراو گفتند یکی از راه های کاهش نویز مبدل آنالوگ به دیجیتال استفاده از مد sleep است ولی باید توجه داشته باشید که وقتی میکرو به مد sleep می روند کار CPU متوقف می شود و فقط تایمر ها و وقفه ها عمل میکنند.

      دیدگاه


        #4
        پاسخ : استفاده از adc بدون نویز

        من یک برنامه نوشتم که از مد sleep استفاده می کنه ولی درست کار نمی کنه و همینطور در طراحی مدار هم شک دارم ممکنه یک مدار که از روش متصل کردن ولتاژ به AREF استفاده کرده باشه بذارید

        دیدگاه


          #5
          پاسخ : استفاده از adc بدون نویز

          با سلام
          بستگی داره adc رو چگونه کانفیگ کرده باشی
          برای مثال به روش زیر عمل کن ببین جواب میگیری :
          aref رو internal قرار بده و در سخت افزار مدار فقط پایه agnd رو زمین کن و avcc و aref رو آزاد بذار
          موفق باشی

          دیدگاه


            #6
            پاسخ : استفاده از adc بدون نویز

            بچه ها لطف کنید یه نگاه به این برنامه بندازید نمی دونم مشکلش کجاست که یه سری چرت و پرت می فرسته به کامیپوتر
            از صحت برنامه ارسال سریال بدون adc مطمئنم


            void adc_init(void)
            {
            //select reference voltage
            ADMUX=(0<<REFS1)|(0<<REFS0);
            //ADCSRA|=(1<<ADEN)|(1<<ADIE)|6;//enable ADC with dummy conversion
            ADCSRA|=(1<<ADEN)|7;
            set_sleep_mode(SLEEP_MODE_ADC);

            }
            void adc_start_conversion(uint8_t channel)
            {
            //select ADC channel
            ADMUX=channel;
            //Start conversion with Interrupt after conversion
            //enable global interrupts
            sei();
            ADCSRA |= (1<<ADSC)|(1<<ADIE);
            set_sleep_mode(SLEEP_MODE_ADC);
            }

            ISR(ADC_vect)
            {
            uint8_t al,ah;
            al=ADCL;
            ah=ADCH;
            write(ah);
            write(al);
            }
            int main(void)
            {
            //uint8_t al,ah;
            USART_Init();
            adc_init();
            while(1)
            {

            for(uint8_t i=0;i<6;i++)
            {

            adc_start_conversion(i);
            sleep_mode();


            }

            write(13);
            write(10);



            }
            return 0;

            }

            دیدگاه


              #7
              پاسخ : استفاده از adc بدون نویز

              نوشته اصلی توسط پراو
              با سلام
              بستگی داره adc رو چگونه کانفیگ کرده باشی
              برای مثال به روش زیر عمل کن ببین جواب میگیری :
              aref رو internal قرار بده و در سخت افزار مدار فقط پایه agnd رو زمین کن و avcc و aref رو آزاد بذار
              موفق باشی
              این کار رو هم کردم ولی فایده نداشت

              یه نفر می تونه یه مدار بذاره من ببینم دقیقا باید این Aref و ورودی های آنالوگ رو چطور باید به میکرو بدم

              دیدگاه


                #8
                پاسخ : استفاده از adc بدون نویز

                حداکثر دقتی که می شه از adc یک مگا 8 بگیریم چقدره؟ من هر کاری می کنم تا 2 عدد خطا داره یعنی وقتی ولتاژ مرجع رو به ورودی به صورت ثابت وصل می کنم عددی که خروجی می ده بین 1021 تا 1023 تغییر می کنه البته با استفاده از noise canceler
                می خواستم ببینم می شه خطا رو از این کمتر کرد؟

                دیدگاه


                  #9
                  پاسخ : استفاده از adc بدون نویز

                  نوشته اصلی توسط khatarat
                  حداکثر دقتی که می شه از adc یک مگا 8 بگیریم چقدره؟ من هر کاری می کنم تا 2 عدد خطا داره یعنی وقتی ولتاژ مرجع رو به ورودی به صورت ثابت وصل می کنم عددی که خروجی می ده بین 1021 تا 1023 تغییر می کنه البته با استفاده از noise canceler
                  می خواستم ببینم می شه خطا رو از این کمتر کرد؟
                  سلام
                  دوست عزیز adc میکرو 10 بیتی است یعنی به ازای صفر ولت صفر و به ازای 5 ولت 1023 می دهد البته به شرطی که ولتاژ رفرنس را به vcc وصل کرده باشید.
                  شما برای اینکه دقت نمونه برداری را بالا ببرید می توانید از مد sleep استفاده کنید. تغذیه adc را هم از یک سلف و یک مقاومت تغذیه کنید که در سایت راجبش بحث شده است.
                  موفق باشید

                  دیدگاه

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