اطلاعیه

Collapse
No announcement yet.

خطا در مقدار عدد دریافتی از ADC مگا 8

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

    خطا در مقدار عدد دریافتی از ADC مگا 8

    سلام
    من به ADC میکرو ولتاژ های در حد میلی ولت میدم . در ولتاژ زیر 500 میلی ولت (ولتاژ های پائین) عددی رو که ADC به من برمیگردونه خطا داره .

    این مسله بخاطر دقت ADC میکرو که 10 بیتیه یا مشکل از جای دیگه هست .

    مثلا من 45 میلی ولت به ADC 0 میدم و طبق روابط زیر


    کد:
    1023/5000=.2046
    .2046*45=9.207

    ADC باید عدد 9.2 رو به من بده ولی داره عدد 4 رو به من میده .ضمن اینکه هرچقدر هم ولتاژ زو کمتر میکنم خطا بدتر میشه
    ولتاژ رفرنس 5 هست


    کد:
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Start Adc
    
     Adc_result = Getadc(0)
    یا به اندازه آرزوهایت تلاش میکنی یا به اندازه تلاشت ارزو میکنی

    #2
    پاسخ : خطا در مقدار عدد دریافتی از ADC مگا 8

    سلام dr

    شما یه خازن 104 بزار بین پایه gnd و aref

    بعد کدتو به این تغیر بده

    کد:
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    Config Adc = Single , Prescaler = Auto , Reference =internal
    Start Adc
    
     Adc_result = Getadc(0)

    الان رفرنس شما 2,56 داخلیه و میتونی به اعداد adc اعتماد کنی چون رفرنست دقیقه
    .The best question deserves a better answer
    =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
    «پناه»می برم «به خدا»
    از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
    محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .

    دیدگاه


      #3
      پاسخ : خطا در مقدار عدد دریافتی از ADC مگا 8

      نوشته اصلی توسط •.´™ مَسِِــــح`.•
      سلام dr

      شما یه خازن 104 بزار بین پایه avcc و aref

      بعد کدتو به این تغیر بده

      کد:
      $regfile = "m8def.dat"
      $crystal = 8000000
      
      Config Adc = Single , Prescaler = Auto , Reference =internal
      Start Adc
      
       Adc_result = Getadc(0)

      الان رفرنس شما 2,56 داخلیه و میتونی به اعداد adc اعتماد کنی چون رفرنست دقیقه
      رفرنس داخلی از خارجی بد تره! :NO:
      چون نزدیک CPU هستش و نویز میگیره!
      1 در دنیا 100 در آخرت (درس و مشق فعالیتمو تو انجمن کم کرده)
      من آنچه شرط بلاغست با تو میآ‌گویم. تو خواه از سخنم پند گیر و خواه ملال. سعدی
      !Electronic On! Programming On
      هوشمندانه سوال بپرسیم!
      http://ir02x6.persiangig.com/logo/eca/tanks_01.png

      دیدگاه


        #4
        پاسخ : خطا در مقدار عدد دریافتی از ADC مگا 8

        نوشته اصلی توسط Mahan.Rafiee
        رفرنس داخلی از خارجی بد تره! :NO:
        چون نزدیک CPU هستش و نویز میگیره!
        اتمل رو بردی زیر سوال :دی

        چه ربطی داره حاجی شما اون خازن رو بزار رو aref وgnd حل میشه
        علتشم اینه که اون پایه نویز میگیره
        .The best question deserves a better answer
        =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
        «پناه»می برم «به خدا»
        از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
        محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .

        دیدگاه


          #5
          پاسخ : خطا در مقدار عدد دریافتی از ADC مگا 8

          نوشته اصلی توسط اقای دکتر
          سلام
          من به ADC میکرو ولتاژ های در حد میلی ولت میدم . در ولتاژ زیر 500 میلی ولت (ولتاژ های پائین) عددی رو که ADC به من برمیگردونه خطا داره .

          این مسله بخاطر دقت ADC میکرو که 10 بیتیه یا مشکل از جای دیگه هست .

          مثلا من 45 میلی ولت به ADC 0 میدم و طبق روابط زیر


          کد:
          1023/5000=.2046
          .2046*45=9.207

          ADC باید عدد 9.2 رو به من بده ولی داره عدد 4 رو به من میده .ضمن اینکه هرچقدر هم ولتاژ زو کمتر میکنم خطا بدتر میشه
          ولتاژ رفرنس 5 هست


          کد:
          $regfile = "m8def.dat"
          $crystal = 8000000
          
          Config Adc = Single , Prescaler = Auto , Reference = Avcc
          Start Adc
          
           Adc_result = Getadc(0)
          برای کم شدن نویز یه سلف 10میکروهانری و یه خازن 100 نانو بر دار بعد سلف رو به پین AVCC وصل کن و اون سر سلف رو به مثبت بده بعدش اون خازن رو به همین پین زمین کن.

          برنامتم به این شکل تغییر بده تا نویز CPU رو عمل تبدیل نویز نندازه!:

          کد:
          $regfile = "m8def.dat"
          $crystal = 8000000
          Dim Adc_result As SINGLE, A As Bit
          A = 0
          Config Adc = Single , Prescaler = Auto , Reference = Avcc
          Enable Interrupts
          Enable Adc
          Start Adc
          
           Adc_result = Getadc(0)
           On Adc Lable
           If A = 0 Then Idle
          
           '.
           '.
           '.
          
           Do
           '...
           Loop
          
          
           End                            'end program
          
            Lable:
            A = 1
            Return
          1 در دنیا 100 در آخرت (درس و مشق فعالیتمو تو انجمن کم کرده)
          من آنچه شرط بلاغست با تو میآ‌گویم. تو خواه از سخنم پند گیر و خواه ملال. سعدی
          !Electronic On! Programming On
          هوشمندانه سوال بپرسیم!
          http://ir02x6.persiangig.com/logo/eca/tanks_01.png

          دیدگاه


            #6
            پاسخ : پاسخ : خطا در مقدار عدد دریافتی از ADC مگا 8

            نوشته اصلی توسط •.´™ مَسِِــــح`.•
            سلام dr

            شما یه خازن 104 بزار بین پایه gnd و aref

            بعد کدتو به این تغیر بده

            کد:
            $regfile = "m8def.dat"
            $crystal = 8000000
            
            Config Adc = Single , Prescaler = Auto , Reference =internal
            Start Adc
            
             Adc_result = Getadc(0)

            الان رفرنس شما 2,56 داخلیه و میتونی به اعداد adc اعتماد کنی چون رفرنست دقیقه
            سلام
            همون طور که دوستمون گفت
            استفاده از رفرنس داخلی دقت رو بالا می بره همچنین برای کم کردن نویز بهتره تغذیه پایه های avcc , Aref رو از یک سلف 10 میکرو هانری رد کنی بعدش با خازن 104 زمین کنی ولی این سلف و خازن رو حتما قرار بده خیلی تاثیر داره
            برد جوجه کشی:
            مطالعه پست 1 (حتما مطالعه کنید)


            مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

            دانلود

            توجه:
            این برد نیمه صنعتی و خانگی هست...
            برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

            آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

            دیدگاه


              #7
              پاسخ : خطا در مقدار عدد دریافتی از ADC مگا 8

              سلام
              از همگی تشکر میکنم
              متاسفانه نمیتونم از ولتاژ رفرنس 2.5 استفاده کنم .
              چون محدودی ولتاژی بین 0 تا حدودا 3 ولت هست
              یا به اندازه آرزوهایت تلاش میکنی یا به اندازه تلاشت ارزو میکنی

              دیدگاه


                #8
                پاسخ : خطا در مقدار عدد دریافتی از ADC مگا 8

                نوشته اصلی توسط اقای دکتر
                سلام
                از همگی تشکر میکنم
                متاسفانه نمیتونم از ولتاژ رفرنس 2.5 استفاده کنم .
                چون محدودی ولتاژی بین 0 تا حدودا 3 ولت هست
                شما میتونی 1000 بار از ADC بخونی بعد بیای یه میانگین بگیری!
                1 در دنیا 100 در آخرت (درس و مشق فعالیتمو تو انجمن کم کرده)
                من آنچه شرط بلاغست با تو میآ‌گویم. تو خواه از سخنم پند گیر و خواه ملال. سعدی
                !Electronic On! Programming On
                هوشمندانه سوال بپرسیم!
                http://ir02x6.persiangig.com/logo/eca/tanks_01.png

                دیدگاه


                  #9
                  پاسخ : خطا در مقدار عدد دریافتی از ADC مگا 8


                  یا تقسیم مقاومتی بزار رو وردی adc و با یه جدول تناسب ساده مقدار adc رو بخون

                  یا refrenc تو وصل کن به پایه aref (نکته: 5 ولت aref جدا از 5 ولت تغدیه باشه تا دسنخوش تغیرات نباشه)
                  .The best question deserves a better answer
                  =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
                  «پناه»می برم «به خدا»
                  از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
                  محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .

                  دیدگاه


                    #10
                    پاسخ : خطا در مقدار عدد دریافتی از ADC مگا 8

                    سلام
                    رفرنس داخلی استفاده کن، خیلی جواب بهتری می گیری.

                    تجربه ی من اینه که نویز ADC بیشتر اثر خطوط تغذیه هست.

                    قبل از پایه ی AVCC یه فریت بید بذار
                    قبل از VCC هم یه فریت بید بذار
                    روی پایه Aref خازن 100 نانو بذار

                    تو خط تغذیه پنج ولت مدارت خازن های 4.7 میکرو، 1 میکرو، 100 نانو و 10 نانو بذار

                    تو ورودی ADC ات هم فیلتر بذار
                    یه مقاومت 10کیلواهم و یه خازن 100 نانو


                    حتما جواب خوبی می گیری :smile:
                    برای کاری در حوزه اربعین نیاز به نیروی داوطلب هستیم.
                    http://hosseinwalkingday.com

                    دیدگاه

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