اطلاعیه

Collapse
No announcement yet.

دقت بیشتر

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

    دقت بیشتر

    سلام
    دوستان من یه برنامه ولتمتر دارم که دقیق کار نمیکنه؛ولتاژ پائین رو یک دهم ولت و ولتاژهای بالاتر رو تا یکی-دو ولت بیشتر نشون میده .
    واسه اینکه دقیق تر بشه چیکار کنم؟

    #2
    پاسخ : دقت بیشتر

    باید برامون بگی چطوری ساختی از مبدل چند بیتی داری استفاده میکنی محدوده ولتاز اندازه گیریت چقدره و غیره توضیحات کامل بزار تا بشه کمکت کرد

    دیدگاه


      #3
      پاسخ : دقت بیشتر

      با میکرو atmega8 کار میکنم.برنامه هم اینه:
      $regfile = "m8def.dat"
      $crystal = 8000000

      Config Lcd = 16 * 2

      Config Lcdpin = Pin , Rs = Portd.5 , E = Portd.4 , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3

      Config Adc = Single , Prescaler = Auto
      Dim A As Word
      Dim B As Single
      Enable Adc
      Start Adc
      Do
      Cls
      A = Getadc(0)
      B = A / 204.6
      B = B * 6
      Home
      Cursor Blink

      Lcd Fusing(b , "#.#&quot
      Wait 15
      Loop
      End 'end program

      فعلا برنامه به این صورته که 0-30 ولت dc رو اندازه گیری میکنه.توی تقسیم ولتاژ هم از مقاومت 1k و 4.7k استفاده شده.
      لطفا اگه راهی هست بگید ممنون میشم

      دیدگاه


        #4
        پاسخ : دقت بیشتر

        سلام
        یه ولتاژ مرجع براش انتخاب کن و اگه از AVCC یا ولتاژ داخلی به عنوان مرجع استفاده می کنی پایه Aref رو با یه خازن مثلا 104 زمین کن
        (البته این رو همه دیگه می دونن ولی بعضی از دوستان یادشون می ره پایه AVCC رو وصل کنن که حتما باید اینکار رو کرد حتی اگه از AVCC استفاده نمیشه )

        برای دقت بیشتر هم می شه از میانگین گیری استفاده کرد.

        for i=1 to 20
        B=B+A
        waitms 10
        next i
        B=B/20

        موفق باشید...

        دیدگاه


          #5
          پاسخ : دقت بیشتر

          دوست من وقتی صحبت از adc میشه چند عامل در دقتش تاثیر داره 1 تعداد بیت های adc و دوم ولتاز سورس و سوم محدوده کاری . چهارم بحث پتانسیل مرجع . وقتی که شما بیای از 8 بیت برای اندازه گیری استفاده کنی محدوده شما به 256 قسمت تقسیم میشه البته 5 ولت رو نه 30 ولت! یعنی برای 30 ولت دقت 6 برابر کمتره! این مهم ترین عامله! اگه دقت بالا میخوای از adc با بیت بیشتر استفاده کن. اون سلف و خازن avcc رو حتما وصل کن . تازه اگر از یک adc استفاده کنی که محدوده ولتاز سورس خودش بیشتر باشه مثلا 0 تا 12 ولت امکان افزایش دقت به طور چشم گیری هست و اما یک پیشنهاد اگه ولتمتر دقیق میخوای با ایسی های اماده کار کن تا به دقت خوبی برسی.

          دیدگاه


            #6
            پاسخ : دقت بیشتر

            نوشته اصلی توسط mehrdad_italy
            سلام
            یه ولتاژ مرجع براش انتخاب کن و اگه از AVCC یا ولتاژ داخلی به عنوان مرجع استفاده می کنی پایه Aref رو با یه خازن مثلا 104 زمین کن
            (البته این رو همه دیگه می دونن ولی بعضی از دوستان یادشون می ره پایه AVCC رو وصل کنن که حتما باید اینکار رو کرد حتی اگه از AVCC استفاده نمیشه )

            برای دقت بیشتر هم می شه از میانگین گیری استفاده کرد.

            for i=1 to 20
            B=B+A
            waitms 10
            next i
            B=B/20

            موفق باشید...
            لطفا یکم بیشتر توضیح بدید.
            من پایه 21 میکرو (aref) رو به 5ولت وصل کردم؛البته پایه vcc و avcc و aref یعنی 7و20و21 رو بهم وصل کردم بعد همه رو به 5ولت وصل کردم.

            دیدگاه


              #7
              پاسخ : دقت بیشتر

              برای AVCC بهتره از مدار زیر استفاده کنی



              شما اگه طبق روشی که گفتم میانگین بگیری مشکلت برطرف میشه اگه زمان برات زیاد مهم نیست 20 بار با فاصله مثلا 50 میلی ثانیه نمونه برداری کن و در اخر ازش میانگین بگیر .
              ( البته من خودم یه بار این مشکل رو داشتم و مشکل از کانال ADC بود و با تغییر کانال ADC مشکلم برطرف شد)

              دیدگاه


                #8
                پاسخ : دقت بیشتر

                کانال رو تغییر دادم، همونطوری که گفتید از سلف و خازن هم استفاده کردم ولی بازم دقیق نشون نمیده.برنامه رو میذارم شاید ایرادی داشته باشه
                Enable Adc
                Start Adc

                C = Getadc(1)
                D = C / 204.6
                D = D * 1.9

                برنامه مربوط به ولتمتر 0-15 ولت دی سی است.برای تقسیم ولتاژ هم از مقاومت 1k و 1.8k استفاده کردم.دیگه چه کاری باید انجام بدم؟؟؟؟

                دیدگاه


                  #9
                  پاسخ : دقت بیشتر

                  راستی یه مسئله دیگه هم که وجود داره اینه که از 10ولت بیشتر رو هر ولتی که باشه حتی 15 ولت ،همه رو 10.49 ولت نشون میده.آخه چرا؟؟؟ :cry:
                  کسی میتونه کمک کنه.این برنامه رو سریع باید تموم کنم،لطفا کمک کنید.ممنونم

                  دیدگاه


                    #10
                    پاسخ : دقت بیشتر

                    آخه چرااا کسی جواب نمییییده :cry2:

                    یه سوال دیگه هم داشتم؛ :redface: :icon_razz:دلیل اینکه ولتاژ خونده شده از پورت adc رو تقسیم به 204.6 میکنیم چیه؟لطفا کامل توضیح بدین.ممنون میشم

                    دیدگاه

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