اطلاعیه

Collapse
No announcement yet.

مشکل با adcدر میکرو

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

    مشکل با adcدر میکرو

    سلام یه چند صفحه ای رو گشتم اما مشکل خودم رو ندیدم و تاپیک جدید زدم...تو اینترنتم گشتم ولی چیزی نیافتم

    من میخوام با میکرو و adcسنسور lm35dzرو اندازه بگیرم اول فقط ال سی دی و میکرو راه اندازی کردم و خوب کار کردن و پایه های دیتا ال سی دی روی همون adc هستن {یعنی پورت a اتمگا 32} گذاشتم در ضمن مدارم هیچ سلف یا خازن یا کریستالی هم نداشت حالا یه برنامه نوشتم و یه سنسور lm35به مدار اضافه کردم ...اما الان روی ال سی دی همش اعداد تغییر میکنند مثلا از 240 میره 1001بعد باز دوباره 4اصلا هیمنجوری تغییر میکنه...

    اگر کسی بلده کمکم کنه ممنون میشم

    اینم برنامه به زبان بیسیک
    $regfile = "m32def.dat"
    $crystal = 10000000
    Config Lcdpin = Pin , Db4 = Pina.3 , Db5 = Pina.2 , Db6 = Pina.1 , Db7 = Pina.0 , Rs = Pina.4 , E = Pina.5
    Cursor Off
    Config Portc = Output
    Portc = 0
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Dim A As Word
    Start Adc
    Do
    A = Getadc(6)
    Cls
    Locate 1 , 1
    Lcd A
    Wait 1
    Loop

    #2
    پاسخ : مشکل با adcدر میکرو

    شما برای اینکه از ADC میکرو استفاده کنی.اولا باید اون خازنهای مربوط به رگولاتور را بذاری
    دوما اینکه از سلف و خازن که روی پایه های AVCC و AVref ای سی باید اضافه کنی.استفاده کنی تا باعث حذف نویز بشه
    3- برای افزایش دقت کارتون در یک زمان خاص نمونه های بیشتری بگیر وبعد میانگین اونو بگیر تا دقتتون افزایش پیدا کنه
    4- ای سی LM35 به ازای 2.73 یعنی صفر درجه عدد 558 را نشون میده و به ازای 3.73 یعنی دمای 100 درجه عدد 763 بنابراین باید برنامه اصلاح کنی تا دما را درست بخونی(کمکی خواستی در خدمتم)

    دیدگاه


      #3
      پاسخ : مشکل با adcدر میکرو

      نوشته اصلی توسط morteza borji
      سلام یه چند صفحه ای رو گشتم اما مشکل خودم رو ندیدم و تاپیک جدید زدم...تو اینترنتم گشتم ولی چیزی نیافتم

      من میخوام با میکرو و adcسنسور lm35dzرو اندازه بگیرم اول فقط ال سی دی و میکرو راه اندازی کردم و خوب کار کردن و پایه های دیتا ال سی دی روی همون adc هستن {یعنی پورت a اتمگا 32} گذاشتم در ضمن مدارم هیچ سلف یا خازن یا کریستالی هم نداشت حالا یه برنامه نوشتم و یه سنسور lm35به مدار اضافه کردم ...اما الان روی ال سی دی همش اعداد تغییر میکنند مثلا از 240 میره 1001بعد باز دوباره 4اصلا هیمنجوری تغییر میکنه...

      اگر کسی بلده کمکم کنه ممنون میشم

      اینم برنامه به زبان بیسیک
      $regfile = "m32def.dat"
      $crystal = 10000000
      Config Lcdpin = Pin , Db4 = Pina.3 , Db5 = Pina.2 , Db6 = Pina.1 , Db7 = Pina.0 , Rs = Pina.4 , E = Pina.5
      Cursor Off
      Config Portc = Output
      Portc = 0
      Config Adc = Single , Prescaler = Auto , Reference = Avcc
      Dim A As Word
      Start Adc
      Do
      A = Getadc(6)
      Cls
      Locate 1 , 1
      Lcd A
      Wait 1
      Loop


      سلام به شما دوست عزیز
      وقتی شما میخواید lcd به یکی از پرت های میکرو وصل کنید نیاز به 8pin کامل دارید
      که میشه یک port از میکرو
      خب شما میگید من روی اون port که adc میکرو قرار داره lcd
      قرار دادم خب با این کار تمام پایه های adc برای فرستادن دیتا به lcd استفاده میشه
      و به حالت خروجی قرار میگیره
      درصورتی که برای استفاده از adc میکرو باید جهت پایه مد نظرتون بصورت ورودی باشه
      واسه همینه داره این اطلاعات بتون نشون میده
      شما بیا port که میخوای lcd روش باشه رو عوض کن مشکل حل میشه



      بعد درجواب اون دوستمون که در مورد بستن سلف وخازن نوشته بودن
      بسته این عناصر در مدار برای بالا بردن دقت adc هست
      ولی در این مورد موضوع فرق میکنه
      کلا اگه کارایی که دوستمون گفته بود رو هم انجام ندید
      هیچ کدوم موجب این نمیشه جهشی به این بزرگی تو مقادیر پیش بیاد
      ولی در کل بستنشون برای بدست آوردن
      مقادید واقعی لازم
      است

      یا علی ......................................... :read: :read: :read: :read:

      دیدگاه


        #4
        پاسخ : مشکل با adcدر میکرو

        نوشته اصلی توسط morteza borji
        سلام یه چند صفحه ای رو گشتم اما مشکل خودم رو ندیدم و تاپیک جدید زدم...تو اینترنتم گشتم ولی چیزی نیافتم

        من میخوام با میکرو و adcسنسور lm35dzرو اندازه بگیرم اول فقط ال سی دی و میکرو راه اندازی کردم و خوب کار کردن و پایه های دیتا ال سی دی روی همون adc هستن {یعنی پورت a اتمگا 32} گذاشتم در ضمن مدارم هیچ سلف یا خازن یا کریستالی هم نداشت حالا یه برنامه نوشتم و یه سنسور lm35به مدار اضافه کردم ...اما الان روی ال سی دی همش اعداد تغییر میکنند مثلا از 240 میره 1001بعد باز دوباره 4اصلا هیمنجوری تغییر میکنه...

        اگر کسی بلده کمکم کنه ممنون میشم

        اینم برنامه به زبان بیسیک
        $regfile = "m32def.dat"
        $crystal = 10000000
        Config Lcdpin = Pin , Db4 = Pina.3 , Db5 = Pina.2 , Db6 = Pina.1 , Db7 = Pina.0 , Rs = Pina.4 , E = Pina.5
        Cursor Off
        Config Portc = Output
        Portc = 0
        Config Adc = Single , Prescaler = Auto , Reference = Avcc
        Dim A As Word
        Start Adc
        Do
        A = Getadc(6)
        Cls
        Locate 1 , 1
        Lcd A
        Wait 1
        Loop
        اولا حذف نویز رو حتما انجام بده(با سلف و خازن)،خیلی تاثیر داره،ثانیا برای pcb از پلیگان استفاده کن،ثالثا avcc و aref رو همزمان راه اندازی کن (من هم همین مشکل رو داشتم)،در اخر با یه پتانسومتر مدارت رو کالیبره کن.
        فقط کسانی که خیلی گریه کرده باشند ، خندیدن را بلدند

        دیدگاه


          #5
          پاسخ : مشکل با adcدر میکرو

          ممنون از کمک و توجهتون دوستان
          من 6 تا از پایه ها رو برای ال سی دی گرفتم {تو برنامه هم معلومه}

          من از برد سوراخ دار و منبع تغذیه ازمایشگاهی {انالوگ}استفاده میکنم که ممکنه برا اونا باشه....درسته ؟؟

          اینجور من تا حالا فهمیدم باید پورت ال سی دی و یه مدار جدید ببندم .خوب دوستان در این کار کریستال خارجی هم نیازه؟؟ و اگر ممکنه یه شماتیک از مداری که میفرمایید بگذارید

          دیدگاه


            #6
            پاسخ : مشکل با adcدر میکرو

            نوشته اصلی توسط morteza borji
            ممنون از کمک و توجهتون دوستان
            من 6 تا از پایه ها رو برای ال سی دی گرفتم {تو برنامه هم معلومه}

            من از برد سوراخ دار و منبع تغذیه ازمایشگاهی {انالوگ}استفاده میکنم که ممکنه برا اونا باشه....درسته ؟؟

            اینجور من تا حالا فهمیدم باید پورت ال سی دی و یه مدار جدید ببندم .خوب دوستان در این کار کریستال خارجی هم نیازه؟؟ و اگر ممکنه یه شماتیک از مداری که میفرمایید بگذارید
            دوست عزیز دقیقا مشکلات اولیه من رو داری،من هم با برد سوراخ دار و سیم کشی و ...این مدار رو ساختم و جواب دقیق نداد،ولی وقتی pcb رو براش زدم و کالیبره هم کردم دقتش درست شد،خود سیم کشی ها هم تو نویز انداختن تاثیر داره،به کریستال خارجی احتیاج نیست،من از اسیلاتور داخلی استفاده کردم(8MHz)، حتما و حتما از سلف و خازن طبق دیتاشیت mega32 برای حذف نویز استفاده کن.
            فقط کسانی که خیلی گریه کرده باشند ، خندیدن را بلدند

            دیدگاه


              #7
              پاسخ : مشکل با adcدر میکرو

              ممنون" من چون اولین بارمه مدار میکرو رو خودم میبندم{قبلا با برد اموزشی کار میکردم که اونم adcکار نمیکرد!!} و میخوام پروژه های مختلف مثلrtcو سنسور های مختلف رو تست کنم و در اخر یک pcbبسازم از برد سوراخ دار استفاده میکنم ...
              از ظهر تا حالا درگیر عوض کردن پورت ال سی دی بودم همین الان که باز با برنامه بالا امتحان کردم {فقط پیکر بندی ال سی دی تغییر کرد} مقدار ای دی سی که نشون میده بین 350 تا 450 متغییر هست بهتر شده ب نظرم{خروجی lm35با مولتی متر 210 میلی ولته} ... واین مقدار فکر کنم برای برد و نویز باشه درسته؟؟؟

              راستی یه سوال من پایه avcc که مرجع ولتاژ هستو باید مستقیم به زمین وصل کنم؟؟

              دیدگاه


                #8
                پاسخ : مشکل با adcدر میکرو

                نوشته اصلی توسط morteza borji
                ممنون" من چون اولین بارمه مدار میکرو رو خودم میبندم{قبلا با برد اموزشی کار میکردم که اونم adcکار نمیکرد!!} و میخوام پروژه های مختلف مثلrtcو سنسور های مختلف رو تست کنم و در اخر یک pcbبسازم از برد سوراخ دار استفاده میکنم ...
                از ظهر تا حالا درگیر عوض کردن پورت ال سی دی بودم همین الان که باز با برنامه بالا امتحان کردم {فقط پیکر بندی ال سی دی تغییر کرد} مقدار ای دی سی که نشون میده بین 350 تا 450 متغییر هست بهتر شده ب نظرم{خروجی lm35با مولتی متر 210 میلی ولته} ... واین مقدار فکر کنم برای برد و نویز باشه درسته؟؟؟

                راستی یه سوال من پایه avcc که مرجع ولتاژ هستو باید مستقیم به زمین وصل کنم؟؟
                نه......
                avcc که واتاژ واحد adc میکرو هست
                aref که ولتاژ دلخواه برای adc (البته اگر تنظیم بشه...)
                میکروی شما 2 تا gnd داره یکی ماله خود میکرو ویکی مال adc دوتاشو به هم وصل کن به زمین



                درضم دوستایی که اینقدر به این برد سو راخ دار گیر میدن
                دیگه از برد برد که بدتر نیست که
                وای که اسمشم میاد

                دیدگاه


                  #9
                  پاسخ : مشکل با adcدر میکرو

                  بله من دیروز باز یخورده مدار رو تغییر دادم و رگلاتور 7805 رو به مدار اظافه کردم در حالت معمولی ولتاژش 5 هست ولی وقتی ال سی دی و سنسور و میکرو کار میکنند ولتاژ به 4.55 میرسه ایا معمولی و علتش چیست؟؟

                  پرش کمتر شده ولی الان در حد 200 -100 تا رو هست...

                  پایهaref ازاده بدونه اتصال و الان avcc به vcc وvccهم مستقیم به پایه ریست و خروجی رگلاتور وصل هست و دوتا gnd ها هم به هم ...ایا درسته ؟؟؟

                  دیدگاه


                    #10
                    پاسخ : مشکل با adcدر میکرو

                    نوشته اصلی توسط h.torabi
                    نه......
                    avcc که واتاژ واحد adc میکرو هست
                    aref که ولتاژ دلخواه برای adc (البته اگر تنظیم بشه...)
                    میکروی شما 2 تا gnd داره یکی ماله خود میکرو ویکی مال adc دوتاشو به هم وصل کن به زمین



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

                    دیدگاه


                      #11
                      پاسخ : مشکل با adcدر میکرو

                      نوشته اصلی توسط morteza borji
                      بله من دیروز باز یخورده مدار رو تغییر دادم و رگلاتور 7805 رو به مدار اظافه کردم در حالت معمولی ولتاژش 5 هست ولی وقتی ال سی دی و سنسور و میکرو کار میکنند ولتاژ به 4.55 میرسه ایا معمولی و علتش چیست؟؟

                      پرش کمتر شده ولی الان در حد 200 -100 تا رو هست...

                      پایهaref ازاده بدونه اتصال و الان avcc به vcc وvccهم مستقیم به پایه ریست و خروجی رگلاتور وصل هست و دوتا gnd ها هم به هم ...ایا درسته ؟؟؟
                      من خودم شخصا از اداپتور سوییچینگ 5 ولت بطور مستقیم استفاده کردم،چون خوده 7805 یه ولتاژ (تقریبا 3 ولتی) و یه مقدار جریان می کشه،من باز هم می گم،فیلتر برای حذف نویز گذاشتی؟ پایه aref رو به avcc وصل کن.





                      فقط کسانی که خیلی گریه کرده باشند ، خندیدن را بلدند

                      دیدگاه


                        #12
                        پاسخ : مشکل با adcدر میکرو

                        ممنون با کمک دوستان مقدار پرش کمتر شده اما درست نشده تا الان کامل.... نه اصلا من نمیدونم فیلتر چی هست؟؟{تازه کارم}

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

                        من وقتی به کانال adc زمین وصل میکنم 0 نشون میده و وقتی vccرو به کانال وصل میکنم 1024 نشون میده...

                        الانم منبع رو internalانتخاب کردم و در دمای اتاق مقدار بین 700 تا نزدیکای 900تغییر میکنه....!!!!

                        با این نویزی که میکرو داره پروژه های دیگه رو هم میشه انجام داد؟؟{مثل ساعتrtc-تایمر کانتر ها و...}

                        این که اولیش بود بد جور خورد تو ذوقم...


                        دیدگاه


                          #13
                          پاسخ : مشکل با adcدر میکرو

                          نوشته اصلی توسط morteza borji
                          ممنون با کمک دوستان مقدار پرش کمتر شده اما درست نشده تا الان کامل.... نه اصلا من نمیدونم فیلتر چی هست؟؟{تازه کارم}

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

                          من وقتی به کانال adc زمین وصل میکنم 0 نشون میده و وقتی vccرو به کانال وصل میکنم 1024 نشون میده...

                          الانم منبع رو internalانتخاب کردم و در دمای اتاق مقدار بین 700 تا نزدیکای 900تغییر میکنه....!!!!

                          با این نویزی که میکرو داره پروژه های دیگه رو هم میشه انجام داد؟؟{مثل ساعتrtc-تایمر کانتر ها و...}

                          این که اولیش بود بد جور خورد تو ذوقم...
                          اگه می تونی با پروتئوس مدارت رو نشون بده
                          فقط کسانی که خیلی گریه کرده باشند ، خندیدن را بلدند

                          دیدگاه


                            #14
                            پاسخ : مشکل با adcدر میکرو

                            ببخشید پروتیوس پاک شده بود تا نصب کنم و مدارو بکشم یخورده طول کشید

                            اینم از مدار...
                            http://upload7.ir/imgs/2014-11/44599338251799181192.jpg

                            { با 7805 ارور میداد الان که 7805 رو تو پروتیوس حذف کردم درست شده و مدار کار کرد}...

                            در دمای 150 درجه ال سی دی 308 رو نشون میده و در دمای 0 درجه 0 رو نشون میده ...

                            قبلا سنسور روی پین هدر بود الان از روی پین برداشتم و مستقیم به برد سوراخ دار لحیم کردم پرش حدود50 تاست الان {کمتر از 100 تا کلا پرش داره}


                            در ضمن چجوری من باید اینمقدار ای دی سی هارو به دما تغییر بدم ؟؟فرمولی چیزی داره؟؟

                            دیدگاه


                              #15
                              پاسخ : مشکل با adcدر میکرو

                              بعد از کلی کلنجار رفتن با اختلاف دمای کمتر از 5درجه با دما سنج و پرش هر دو ثانیه حدود 1 تا حدودی موفق شدم
                              {چهار بار نمونه گرفتم هر 500 میلی ثانیه یک بار و با هم جمع کردم و تقسیم بر چهار کردم اخرم تقسیم بر یه عددی کردم که نزدیک به عدد دما سنج بشه}
                              البته دمای بین 25 تا 55 رو تا حالا تونستم اندازه بگیرم {روی بخاری واسه چند لحظه}

                              اما تا دستم ببه برد میخوره یا برد را بر میدارم یهو دما تغییر میکنه این برای نویزه دیگه و اگر میشه راه حلشو بگید
                              $regfile = "m32def.dat"
                              $crystal = 10000000
                              Config Lcdpin = Pin , Db4 = Pind.4 , Db5 = Pind.3 , Db6 = Pind.1 , Db7 = Pind.2 , Rs = Pind.6 , E = Pind.5
                              Cursor Off
                              Config Portc = Output
                              Portc = 0
                              Config Adc = Single , Prescaler = Auto , Reference = Avcc
                              Dim A As Word
                              Dim B As Word
                              Dim C As Word
                              Dim D As Word
                              Dim E As Word
                              Dim F As Word
                              Dim G As Word
                              Start Adc
                              Do
                              A = Getadc(6)
                              Waitms 500
                              B = Getadc(6)
                              Waitms 500
                              C = Getadc(6)
                              Waitms 500
                              D = Getadc(6)
                              Waitms 500
                              D = A + B
                              F = C + E
                              G = D + F
                              G = G / 4
                              G = G / 12
                              Cls
                              Locate 1 , 1
                              Lcd G
                              Wait 1
                              Loop

                              دیدگاه

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