اطلاعیه

Collapse
No announcement yet.

تبدیل مقدار خوانده شده از adc میکرو به پارامتر مورد نظر

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

    تبدیل مقدار خوانده شده از adc میکرو به پارامتر مورد نظر

    سلام

    بعد از اینکه مقدار انالوگ توسط adc میکرو تبدیل به دیجیتال شد چطور به پارامتر مورد نظر تبدیل می کنیم؟مثل دما شتاب ...

    #2
    پاسخ : تبدیل مقدار خوانده شده از adc میکرو به پارامتر مورد نظر

    http://www.eca.ir/forum2/index.php?t...5262#msg375262
    چرا ناراحتی پاتریک!
    + امروز ی بچه دیدم سرچهارراه گل میفروخت
    - از دیدنش ناراحت شدی؟
    + نه
    پس چی ناراحتت کرده
    + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
    ------------------------------------------------------------------------------------------------------
    تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
    ------------------------------------------------------------------------------------------------------
    محصولات

    دیدگاه


      #3
      پاسخ : تبدیل مقدار خوانده شده از adc میکرو به پارامتر مورد نظر

      با سلام
      یه راهش استفاده از جدول lookup table است.

      دیدگاه


        #4
        پاسخ : تبدیل مقدار خوانده شده از adc میکرو به پارامتر مورد نظر

        نوشته اصلی توسط shaiigan
        سلام

        بعد از اینکه مقدار انالوگ توسط adc میکرو تبدیل به دیجیتال شد چطور به پارامتر مورد نظر تبدیل می کنیم؟مثل دما شتاب ...
        باید ببنی چه را بطه ای بین مقدار خوانده شده از سنسور دمات با مقدار عدد adc برقرار است که اگر خطی بود که خیلی راحت با یک فرمول ضرب و تقسیم حل می شود وگرنه باید از جدول لوک پ در بسکام و یا آرایه در زبان سی استفاده کنی
        دکتر چمران در 1311 در تهران متولد شد
        وي در زمان اقامت در آمريکا انجمن اسلامي آمريکا را تأسيس کرد که منجر به قطع بورسيه وي توسط شاه شد.
        او با اينکه يکي از دانشمندان مطرح آمريکا به حساب مي آمد بدون توجه به مدرک به مصر رفت و آموزش نظامي ديد.

        دیدگاه


          #5
          پاسخ : تبدیل مقدار خوانده شده از adc میکرو به پارامتر مورد نظر

          سلام دو
          من باید شتاب رو بدست بیارم و برنامم رو با کدویژن مینویسم میشه در مورد ارایه کمی بیشتر توضیح بدین؟

          دیدگاه


            #6
            پاسخ : تبدیل مقدار خوانده شده از adc میکرو به پارامتر مورد نظر

            نوشته اصلی توسط shaiigan
            سلام دو
            من باید شتاب رو بدست بیارم و برنامم رو با کدویژن مینویسم میشه در مورد ارایه کمی بیشتر توضیح بدین؟
            برای اینکه شتاب را بدست بیاورید بنده اطلاعات کافی ندارم که چطور می خواهید این کار را انجام دهید و اما توضیح در مورد آرایه :

            آرایه در واقع یک جدول اعداد می باشد که می توان یکسری اعداد را داخل آن ریخت و بعد آنها را خواند.
            مثلا adc بنده سه عدد 0 و 1 و 2 را نشان می دهد که عدد باید مقدار 100 باشد و عدد یک باید 55 باشد و عدد 2 باید 70 باشد پس هیچ رابطه ای نمی توان نوشت که
            0=100
            1=55
            2=70
            شود پس بنده یک آرایه می نویسم
            کد:
            flash unsigned char name[3]={100,55,70};
            حالا می توانم مقدار را به راحتی بخوانم مثلا
            کد:
            PORTB=name[read_adc(0)]
            حال در پورتB اگر adc مقدار صفر را نشان دهد پورت B می شود 100 و اگر adc مقدار یک را نشان دهد پورت B می شود 55 و ...

            البته بنده آرایه را در فلش ذخیره کردم اگر خواستید می توانید را sram نیز ذخیره کنید تا در حین اجرای برنامه نیز بتوانید مقدار را عوض کنید که فکر نمی کنم شما نیاز داشته باشید فقط گفتم که بدانید
            امیدوارم به دردت خورده باشد. :biggrin:
            دکتر چمران در 1311 در تهران متولد شد
            وي در زمان اقامت در آمريکا انجمن اسلامي آمريکا را تأسيس کرد که منجر به قطع بورسيه وي توسط شاه شد.
            او با اينکه يکي از دانشمندان مطرح آمريکا به حساب مي آمد بدون توجه به مدرک به مصر رفت و آموزش نظامي ديد.

            دیدگاه


              #7
              پاسخ : تبدیل مقدار خوانده شده از adc میکرو به پارامتر مورد نظر

              من شتاب رو با سنسور adxl202 بدست میارم که حدود 0.3 ولت تغییرات دارد ولتاژ خروجی این سنسور 2.5 ولت افست و ماکزیمم هم 2.8 ولت و مینیمم 2.18 ولت است.که اینو به adc میکرو میدم حالا نمیدونم مقدار دیجیتال بدست امده رو چطور تبدیل به شتابش کنم؟

              دیدگاه


                #8
                پاسخ : تبدیل مقدار خوانده شده از adc میکرو به پارامتر مورد نظر

                نوشته اصلی توسط shaiigan
                من شتاب رو با سنسور adxl202 بدست میارم که حدود 0.3 ولت تغییرات دارد ولتاژ خروجی این سنسور 2.5 ولت افست و ماکزیمم هم 2.8 ولت و مینیمم 2.18 ولت است.که اینو به adc میکرو میدم حالا نمیدونم مقدار دیجیتال بدست امده رو چطور تبدیل به شتابش کنم؟
                می شه کمی بیشتر توضیح بدید راجبه اینکه چقدر رزولشن از سنسور را می خواهید؟
                گفتید بازه ی سنسور بین 2.18 تا 2.8 ولت هست خب حالا برای شما چه مقدار دقت را می خواهید؟
                اگر ولتاژ adc را نسبتا پایین بیاریم مثلا 3.3 ولت و از میکروی سری a یاL استفاده کنید احتمالا بشه یه کارهایی کرد!!!
                مثلا :

                2.8-2.18= تقریبا می شود 0.6 ولت
                خب حلا اگر adc را روی 10 بیت تنظیم کنیم می شود 1024 حالت.
                پس ولتاژ 0 تا 3.3 ولت می شود 1024 حالت یعنی 3.3/1024 که می شود به ازای هر 3.2 میلی ولت یک تغییر. که تازه این در تئوری می باشد و در عمل نمی شود ولی باید تست کرد.
                پس در بازه ی 0.6 ولت ما باید حدود 186 تا بازه داشته باشیم.
                البته باید تست کنی
                بنظرم ولتاژ adc را به صورت مستقیم وصل کن و نزدیک پایه ی رفرنست باید یه خازن الکترولیت قرار دهی و چندین بار عمل نمونه گیری و تصحیح خطا را در برنامه داشته باشی
                وقتی تازه به نتیجه رسیدی اونوقت بهتره کار را شروع کنی
                البته کار خیلی بهتر اینکه اول این سنسور را به opamp بدی تقویت بشود و بعد خروی opamp را به میکرو دهی تا این همه مشکل نداشته باشی و راحتتر بتوانی این کار را انجام دهی.


                [move]opamp[/move]
                دکتر چمران در 1311 در تهران متولد شد
                وي در زمان اقامت در آمريکا انجمن اسلامي آمريکا را تأسيس کرد که منجر به قطع بورسيه وي توسط شاه شد.
                او با اينکه يکي از دانشمندان مطرح آمريکا به حساب مي آمد بدون توجه به مدرک به مصر رفت و آموزش نظامي ديد.

                دیدگاه


                  #9
                  پاسخ : تبدیل مقدار خوانده شده از adc میکرو به پارامتر مورد نظر

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

                  دیدگاه


                    #10
                    پاسخ : تبدیل مقدار خوانده شده از adc میکرو به پارامتر مورد نظر

                    منظرم از خروجی سنسور اینه که این سنسور مستقیم شتاب را می دهد یا شیب را چی می دهد.
                    مثلا می گوییم شیب را مستقیما می دهد.
                    خب وقتی این سنسور در حالت طبیعی می باشد مقدار ولتاژ می شود 2.5 ولت پس حال فهمیدیم که مقدار شیب صفر می شود 2.5 حالا اگر به یک opamp به صورت تفاضلی بدهیم تا مقدار ولتاژ مینیمم را حذف کند مثلا مقدار ولتاژ مینیمم می شود 2 ولت پس ما از صفر تا 2 ولت را حذف می کنیم و خروجی تقویت کننده را به adc می دهیم حالا اگر باید ولتاژ ی که در سطح شیب به شما می دهد را بدست بیاورید.
                    1- مقدار ولتاژ opamp در حالتی که روی سطح صاف است را اندازه می گیری (البته باید opamp را نیز ست کنی و خروجیش را پیک تا پیک بشود 5 ولت)
                    البته دقت کن که یه مقدار پیک تا پیک تغییرات که حتما بین بازه ی صفر تا ولتاژ adc مثلا 5 ولت باشد.
                    2- با توجه به دقتی که adc انتخاب کردی مقدار را تئوری و عملی تست می کنی مثلا اگر adc روی 10 بیت باشد و مثلا خروجی در opamp در سطح صاف نیز 2.5 ولت شود پس داریم 511
                    البته باید به دیتاشیت سنسور نگاه کنی گه تغییرات به صورت خطی است یا نه
                    به همین راحتی می توانی مقدار شیب را تأیین کنی مثلا اگر سنسورت مقدارش خطی باشه و نیازی به فرمول برای خطی کردن نداشته باشه به همین راحت می توانی شیب را بدست بیاوری
                    مثلا خروجی را اینگونه قرار بده که یه مقدار ثابتی مثلا 511 کم شود از مقدار adc پس وقتی adc عدد 511 را نشان داد می شود 511 -511 پس می شود صفر حال اگر شیب 90 درجه ما مقدار 1023 را داشته باشیم می شود 511-1023 که جواب می شود 512 حالا ببین 512 تقسیم بر چند می شود 90 مقدار می شود 5.688

                    پس برنامه اینگونه می شود.
                    کد:
                    int solv;
                    
                    solv=read_adc(0)-511;
                    solv=solv/5.688;
                    :biggrin:
                    دکتر چمران در 1311 در تهران متولد شد
                    وي در زمان اقامت در آمريکا انجمن اسلامي آمريکا را تأسيس کرد که منجر به قطع بورسيه وي توسط شاه شد.
                    او با اينکه يکي از دانشمندان مطرح آمريکا به حساب مي آمد بدون توجه به مدرک به مصر رفت و آموزش نظامي ديد.

                    دیدگاه

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