اطلاعیه

Collapse
No announcement yet.

ساخت مقاومت سنج با AVR

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

    ساخت مقاومت سنج با AVR

    سلام بر دوستان عزیز و اساتید گرامی
    من میخوام با میکرو یک مقاومت سنج درست کنم. یعنی وقتی مقاومت رو بین دو تا از پایه های میکرو وصل کردم، اندازه مقاومت رو بر روی یک LCD بنویسه. حالا من نمیدونم چطوری اندازه مقاومت رو بدست بیارم. باید بتونم ولتاژ دو سر و جریان گذرنده از مقاومت رو بدست بیارم و از روی اون اندازه مقاومت رو تعیین کنم. فقط باید اندازه گیری خیلی دقیق باشه. کسی میتونه راهنماییم کنه که چطور جریان و ولتاژ دو سر مقاومت رو اندازه بگیرم؟
    از همه دوستان ممنونم

    #2
    پاسخ : ساخت مقاومت سنج با AVR

    سلام.
    اول شما بگو که با چه زبانی برنامه مینویسی؟
    اگر بیسیک کار میکنی من یه برنامه برات میزارم استفاده کن.

    دیدگاه


      #3
      پاسخ : ساخت مقاومت سنج با AVR

      نوشته اصلی توسط mhm_004
      سلام بر دوستان عزیز و اساتید گرامی
      من میخوام با میکرو یک مقاومت سنج درست کنم. یعنی وقتی مقاومت رو بین دو تا از پایه های میکرو وصل کردم، اندازه مقاومت رو بر روی یک LCD بنویسه. حالا من نمیدونم چطوری اندازه مقاومت رو بدست بیارم. باید بتونم ولتاژ دو سر و جریان گذرنده از مقاومت رو بدست بیارم و از روی اون اندازه مقاومت رو تعیین کنم. فقط باید اندازه گیری خیلی دقیق باشه. کسی میتونه راهنماییم کنه که چطور جریان و ولتاژ دو سر مقاومت رو اندازه بگیرم؟
      از همه دوستان ممنونم
      سلام دوست عزیز
      یه راه اینه: ممکنه راههای بهتری هم باشه
      با توجه به شماتیک زیر اگه Vreff مربوط به ADC رو کنترل کنیم میتونیم از اون در بدست آوردن مقاومت مجهول کمک بگیریم.
      در حالت 10 بیتی خروجی بدست اومده از ADC عبارت است از:
      Count=(Vin/Vreff)*1024
      از اونجاییکه Vreff=R2*i و Vin=RX*i داریم:
      Count=(Rx/R2)*1024
      ==>
      RX=Count*R2/1024
      یعنی مقاومت مجهول محاسبه میشه.

      چون رفرنس ADC میکرو کمتر از 1 ولت رو قبول نداره (اگه اشتباه نکنم!) باید با تقسیم مقاومتی R1, R2 کاری کنیم این ولتاژ در محدوده قابل قبول باشه.

      بنابراین در رنج مقاومت مجهول 0-200اهم :
      R1=1.2K , R2=1K
      و در رنج 0-2000 اهم:
      R1=12k, R2=10K
      الی آخر

      دیدگاه


        #4
        پاسخ : ساخت مقاومت سنج با AVR

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

        این برنامه با بیسیکه و اینطوریه که اول مقدار ADC رو میخونه و میریزه توی A و بعد توی V و بعد عملیات رو روش انجام میده و مقدار نهایی رو میریزه توی R.

        البته اصل عملیات مهمه و هیچ تفاوتی نداره که توی C باشه یا بیسیک.
        A = Getadc(7)
        V = A
        V = V / 1024
        V = V * 5
        R = 5 / V
        R = R - 1
        R = 2.2 / R
        درضمن یه مقاومت 2.2k هم باید از پایه ADC که میخوای باهاش مقدار رو بخونی به VCC متصل بشه.مدارات کاهش نویز ADC هم فراموش نشه.
        سوالی داشتی در خدمتم.موفق باشی.

        دیدگاه


          #5
          پاسخ : ساخت مقاومت سنج با AVR

          آها یادم رفت بگم.مقدار نهایی برگدونده شده برحسب کیلو اهم هست.
          و غیر از A که برای خوندن از ADC برحسب Word گرفته شده مابقی متغیر ها(R,V)نوعشون single هستش.
          و مقاومت مورد نظر برای اندازه گیری بین پایه مورد نظر ADC و زمین قرار میگیره برای اندازه گیری.

          دیدگاه


            #6
            پاسخ : ساخت مقاومت سنج با AVR

            این هم فایل پروتئوس به همراه سورس کد C:
            http://up.iranblog.com/images/8k91tz7alptopdf7oib.rar

            دیدگاه


              #7
              پاسخ : ساخت مقاومت سنج با AVR

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

              دیدگاه


                #8
                پاسخ : ساخت مقاومت سنج با AVR

                سلام مجدد دوستان
                فقط یه سوالی دارم، این روش هایی که گفتین با چه دقتی مقاومت رو اندازه میگیره؟ من دقت بالایی لازم دارم مثلا دقت 0.001 جواب میده؟
                ممنون

                دیدگاه


                  #9
                  پاسخ : ساخت مقاومت سنج با AVR

                  نوشته اصلی توسط mhm_004
                  سلام مجدد دوستان
                  فقط یه سوالی دارم، این روش هایی که گفتین با چه دقتی مقاومت رو اندازه میگیره؟ من دقت بالایی لازم دارم مثلا دقت 0.001 جواب میده؟
                  ممنون
                  سلام دوست عزیز
                  من تاحالا این مدار رو درست نکردم ولی فکر میکنم عملی باشه.
                  البته برای رسیدن به این میزان دقتی که نیاز داری، فکر کنم بهتر باشه از یه ADC خارجی استفاده کنی مثل AD7780 ,AD7190.

                  اینو هم درنظر بگیر که مقاومت پروب های اهممتر خیلی خیلی بالاتر از 0.001 است. بنابراین در عمل برای رسیدن به همچین دقتی علاوه بر استفاده صحیح و اصولی از ADC (جداسازی زمین آنالوگ و دیجیتال و ... )به کالیبراسیون بسیار دقیقی نیازداری.

                  مثلا اگه در محاسباتی که در چند پست بالاتر برای ADC10 بیتی
                  RX=Count*R2/1024
                  انجام دادم از یه ADC 16 بیتی استفاده کنیم داریم:
                  RX=Count*R2/65536
                  و در این حالت در رنج 200 اهم و به ازای R2=1000 اهم رزولوشن اندازه گیرت میشه:
                  1000/65536=0.015 یا 15 میلی اهم!!

                  دیدگاه


                    #10
                    پاسخ : ساخت مقاومت سنج با AVR

                    نوشته اصلی توسط hosein1122
                    سلام دوست عزیز
                    من تاحالا این مدار رو درست نکردم ولی فکر میکنم عملی باشه.
                    البته برای رسیدن به این میزان دقتی که نیاز داری، فکر کنم بهتر باشه از یه ADC خارجی استفاده کنی مثل AD7780 ,AD7790.

                    اینو هم درنظر بگیر که مقاومت پروب های اهممتر خیلی خیلی بالاتر از 0.001 است. بنابراین در عمل برای رسیدن به همچین دقتی علاوه بر استفاده صحیح و اصولی از ADC (جداسازی زمین آنالوگ و دیجیتال و ... )به کالیبراسیون بسیار دقیقی نیازداری.

                    مثلا اگه در محاسباتی که در چند پست بالاتر برای ADC10 بیتی انجام دادم از یه ADC 16 بیتی استفاده کنیم داریم:
                    RX=Count*R2/65536
                    و در این حالت در رنج 200 اهم و به ازای R2=1000 اهم رزولوشن اندازه گیرت میشه:
                    1000/65536=0.015 یا 15 میلی اهم!!
                    دوست عزیز خیلی خیلی ممنونم از راهنماییهات، راستش من خیلی با ADC و اینجور چیزا کار نکردم، واسه همین کوچکترین راهنمایی هات برام ارزشمنده. من نگاه میکردم AD7780 ، یه ADC 24 بیتی هست، یعنی با استفاده از این ADC دقت خیلی بالا میره.
                    فقط اگه میتونی یه کم در مورد راههای اصولی استفاده از ADC راهنماییم کن، یعنی چی زمین آنالوگ و دیجیتال رو از هم جدا کنم؟ و دیگه اینکه خروجی ADC خارجی رو چطوری به میکرو بدم؟
                    ممنونم دوست عزیز

                    دیدگاه


                      #11
                      پاسخ : ساخت مقاومت سنج با AVR

                      نوشته اصلی توسط mhm_004
                      من نگاه میکردم AD7780 ، یه ADC 24 بیتی هست، یعنی با استفاده از این ADC دقت خیلی بالا میره.
                      یعنی چی زمین آنالوگ و دیجیتال رو از هم جدا کنم؟ و دیگه اینکه خروجی ADC خارجی رو چطوری به میکرو بدم؟
                      درسته که AD7780یک ADC 24 بیتی هست ولی اکثر اوقات اونقدر نویز محیط بالا هست که بهتره از اون در مد 16 بیتی استفاده کرد. این آی سی 2 مد 16 و 24 بیتی داره.

                      برای آشنایی بیشتر با این ADC ها میتونی توی سایت سرچ کنی، مطالب ارزشمندی پیدا میکنی که اطلاعاتت رو خیلی بالا میبره. یکی از قدیمی ترین و بهترین اونها اینه:
                      http://www.eca.ir/forum2/index.php?topic=21006.0

                      -در مورد نحوه اتصال به میکرو هم در تاپیکی که آدرس دادم و هم در دیتاشیت وAD7780 , AD7730 مطالبی گفته شده. دیتاشیت AD7780 رو از سایت آنالوگ دیوایس بگیری یا مستقیما: www.analog.com/static/imported-files/data_sheets/AD7780.pdf

                      -برای اطلاعات بیشتر درمورد جداسازی زمین آنالوگ و دیجیتال هم توی دیتاشیت این آی سی ها گفته شده و هم توی این pdf: http://www.analog.com/static/importe...als/MT-031.pdf


                      دیدگاه


                        #12
                        پاسخ : ساخت مقاومت سنج با AVR

                        یعنی دقت بالا برای اندازه گیری مقاومت با استفاده از میکرو و ADC امکان پذیر نیست؟ یعنی حداکثر با دقت 0.015 اهم میشه مقاومت رو اندازه گرفت؟ تازه اگه نویز بذاره؟
                        یه سوال دیگه اینکه اگه نویز نمیذاره از 24 بیت ADC7780 استفاده کنیم، واسه چی اصلا ساخته شده؟ منظورم اینه که حتما راهی است که بشه نویز رو کم کرد و از دقت بالاتر از 16 بیت استفاده کرد.
                        از بابت مطالبی که معرفی کردی ممنونم. به نظرم خیلی چیزا از پست ها گیرم بیاد. راستی فرق AD7705 و AD7790 چیه؟ هر دوتا 16 بیتی هستن

                        دیدگاه


                          #13
                          پاسخ : ساخت مقاومت سنج با AVR

                          نوشته اصلی توسط mhm_004
                          یعنی دقت بالا برای اندازه گیری مقاومت با استفاده از میکرو و ADC امکان پذیر نیست؟ یعنی حداکثر با دقت 0.015 اهم میشه مقاومت رو اندازه گرفت؟ تازه اگه نویز بذاره؟
                          یه سوال دیگه اینکه اگه نویز نمیذاره از 24 بیت ADC7780 استفاده کنیم، واسه چی اصلا ساخته شده؟ منظورم اینه که حتما راهی است که بشه نویز رو کم کرد و از دقت بالاتر از 16 بیت استفاده کرد.
                          از بابت مطالبی که معرفی کردی ممنونم. به نظرم خیلی چیزا از پست ها گیرم بیاد. راستی فرق AD7705 و AD7790 چیه؟ هر دوتا 16 بیتی هستن
                          چند سوال اساسی مطرحه که قبل از ساخت دستگاه باید معلوم بشه:
                          1-رنج مقاومتهایی که میخوای اندازه گیری کنی چقدر هست؟
                          2- حداقل دقت مورد نیاز (نه حداکثر!) یعنی کمتر از اون اصلا بدردت نخوره.
                          3-برای کالیبراسیونشون به مولتی متر یا مقاومت سنجی دسترسی داشته باشی که دقت اندازه گیریش برابر با دقت مورد نیازت باشه و البته بهتر اینه که دقت بیشتری داشته باشه

                          یه اشتباه لپی هم شده که تصحیحش میکنم: منظور از AD7790 همون AD7190 هست.
                          برای اینکه مشکل سطح نویز و تاثیرش در رزولوشن و دقت رو ببینی اینجا رو نگاه کن که خود آنالوگ دیوایس انجام داده:
                          http://www.analog.com/en/circuits-fr...CN0102/vc.html

                          البته در اندازه دانش من نیست که بگم این پروژه با دقت 0.001 اهم انجام پذیر نیست، اما میخوام با واقعیت های این کار هم آشنا بشی.

                          ایشالا که استاد کوهستانی، دایی عزیز، به زودی به اینترنت دسترسی پیدا کنند تا هممون بتونیم از راهنماییهاشون بهرمند شیم.
                          شما هم میتونی توی این فاصله اطلاعاتت رو بالا ببری تا ایشون برگردند. اگه هم کاری از دست من بر میومد در خدمتم.

                          دیدگاه


                            #14
                            پاسخ : ساخت مقاومت سنج با AVR

                            نوشته اصلی توسط hosein1122
                            چند سوال اساسی مطرحه که قبل از ساخت دستگاه باید معلوم بشه:
                            1-رنج مقاومتهایی که میخوای اندازه گیری کنی چقدر هست؟
                            2- حداقل دقت مورد نیاز (نه حداکثر!) یعنی کمتر از اون اصلا بدردت نخوره.
                            3-برای کالیبراسیونشون به مولتی متر یا مقاومت سنجی دسترسی داشته باشی که دقت اندازه گیریش برابر با دقت مورد نیازت باشه و البته بهتر اینه که دقت بیشتری داشته باشه

                            یه اشتباه لپی هم شده که تصحیحش میکنم: منظور از AD7790 همون AD7190 هست.
                            برای اینکه مشکل سطح نویز و تاثیرش در رزولوشن و دقت رو ببینی اینجا رو نگاه کن که خود آنالوگ دیوایس انجام داده:
                            http://www.analog.com/en/circuits-fr...CN0102/vc.html

                            البته در اندازه دانش من نیست که بگم این پروژه با دقت 0.001 اهم انجام پذیر نیست، اما میخوام با واقعیت های این کار هم آشنا بشی.

                            ایشالا که استاد کوهستانی، دایی عزیز، به زودی به اینترنت دسترسی پیدا کنند تا هممون بتونیم از راهنماییهاشون بهرمند شیم.
                            شما هم میتونی توی این فاصله اطلاعاتت رو بالا ببری تا ایشون برگردند. اگه هم کاری از دست من بر میومد در خدمتم.
                            دوست عزیز راهنماییهات خیلی برام مفیده، تنها کاری که در قبالش از دستم بر می آد اینه که دعا کنم زندگی بر وفق مرادت باشه.
                            راستش من فعلا دارم قابلیت انجام این پروژه رو با AVR بررسی میکنم. ولی میدونم که به دقت حدود 0.001 نیاز هست. (در همین حد، بیشتر باشه بهتره ولی کمتر از این خوب نیست)
                            قراره بررسی کنم که اگه این پروژه با میکرو قابل انجام نباشه، بریم سراغ ARM یا روش دیگه. در مورد رنجش دقیقا نمیدونم باید بپرسم. مولتی متر با دقت بالا رو هم قاعدتا باید در اختیارم بذارن تا بتونم کالیبراسیون رو انجام بدم.

                            فعلا برم این چیزایی که گفتین رو بخونم ، ایشاا.. دوباره مزاحم میشم :smile:

                            دیدگاه


                              #15
                              پاسخ : ساخت مقاومت سنج با AVR

                              نوشته اصلی توسط hosein1122
                              سلام دوست عزیز
                              یه راه اینه: ممکنه راههای بهتری هم باشه
                              با توجه به شماتیک زیر اگه Vreff مربوط به ADC رو کنترل کنیم میتونیم از اون در بدست آوردن مقاومت مجهول کمک بگیریم.
                              در حالت 10 بیتی خروجی بدست اومده از ADC عبارت است از:
                              Count=(Vin/Vreff)*1024
                              از اونجاییکه Vreff=R2*i و Vin=RX*i داریم:
                              Count=(Rx/R2)*1024
                              ==>
                              RX=Count*R2/1024
                              یعنی مقاومت مجهول محاسبه میشه.

                              چون رفرنس ADC میکرو کمتر از 1 ولت رو قبول نداره (اگه اشتباه نکنم!) باید با تقسیم مقاومتی R1, R2 کاری کنیم این ولتاژ در محدوده قابل قبول باشه.

                              بنابراین در رنج مقاومت مجهول 0-200اهم :
                              R1=1.2K , R2=1K
                              و در رنج 0-2000 اهم:
                              R1=12k, R2=10K
                              الی آخر

                              سلام مجدد ، ببخشید هی مزاحم میشم
                              من ADC میکرو رو مطالعه میکردم، یه چیزی برام جای سوال بود. این مداری که شما اینجا گذاشتین، از ورودی های تفاضلی ADC استفاده میکنه، درسته؟ در اینصورت داریم:
                              Rx=R2*count/(512*Gain).l
                              درسته؟ و اگه این چیزی که نوشتم درست باشه با افزایش gain نمیشه دقت رو برد بالا؟

                              یه چیزه دیگه اینکه نمیشه Vref رو 5 ولت داد و مقاومت R2 رو حذف کرد، باز میشه Rx رو برحسب مقداری که ADC داره و مقاومت R1 بدست آورد. یعنی منظورم اینه که از ورودی تفاضلی استفاده نکرد؟

                              دیدگاه

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