اطلاعیه

Collapse
No announcement yet.

چندتا نکته معمول تو ADC داخلی؟

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

    چندتا نکته معمول تو ADC داخلی؟

    سلام
    من می خوام بدونم وقتی از ADC داخلی استفاده می کنیم،البته کدویژن منظورمه.از دستور read_adc() استفاده می کنیم /
    1-حالا اگه فرض adc2 رو بخونیم مقدار خونده شده رو داخل floant می ریزیم این مقدار بر حسب چیه؟می دونم که یک مقدار dijite یعنی یه عدد 8 رقمیه؟
    2- سوال قبل واسه اینه که تو مرحله بعد من می خوام 8 بیتی بخونم مقدار flont رو ضربدر 2.56 بکم بعد تقسیم به 512 یا برعکس چون نباید حداکثر مقدارم از 512 بیشتر باشه ولی مقدار 800 هم داشتم!
    3-اخرین سوال من رفرنس داخلی 2.56 استفاده می کنم Vref با خازن زمین شده وAvcc هم به همون خازن خورده و با یه سلف یه vcc این سلف ممکنه روی vref تاثیر بذاره؟این جوری بگم انگار vref هم با خازن زمین شده هم با سلف pullup
    تو این جهان 7 میلیاردی من معنی ندارد و اگه تو این دنیا فقط 1 نفر وجود داشت باز هم من معنی نداشت

    #2
    پاسخ : چندتا نکته معمول تو ADC داخلی؟

    با سلام
    1-حالا اگه فرض adc2 رو بخونیم مقدار خونده شده رو داخل floant می ریزیم این مقدار بر حسب چیه؟می دونم که یک مقدار dijite یعنی یه عدد 8 رقمیه؟
    - سوال قبل واسه اینه که تو مرحله بعد من می خوام 8 بیتی بخونم مقدار flont رو ضربدر 2.56 بکم بعد تقسیم به 512 یا برعکس چون نباید حداکثر مقدارم از 512 بیشتر باشه ولی مقدار 800 هم داشتم!
    ببینید این تعریف تابع read_adc هست :

    unsigned int read_adc(unsigned char adc_input)

    خوب این یعنی اینکه این تابع یک ورودی یک بایتی داره و یک خروجی دو بایتی که البته مقدار این خروجی حداکثر میتونه 1024 یا همون 10 بیت باشه و مقدارش یک مقدار صحیح هست نه اعشاری و میتونید خروجی اش رو مستقیما در یک متغیر از نوع float هم بریزید و بعد عملیات حسابی با مقتدیر اعشاری رو روش انجام بدید

    -اخرین سوال من رفرنس داخلی 2.56 استفاده می کنم Vref با خازن زمین شده وAvcc هم به همون خازن خورده و با یه سلف یه vcc این سلف ممکنه روی vref تاثیر بذاره؟این جوری بگم انگار vref هم با خازن زمین شده هم با سلف pullup
    بله ، از هم جداشون کنید و vref رو بایک خازن دیگه به زمین وصل کنید، به عکس زیر دقت کنید :

    دیدگاه


      #3
      پاسخ : چندتا نکته معمول تو ADC داخلی؟

      با تشکر از جواب شما
      من چون دقت 8 بیت کافیه می خوام 8 بیت بخونم برای این کار دیگه محاسباتم میشه 512 درسته دیگه؟حالا مقدار floant من باید اول ضربدر 512 کنم بعد تقسیم به 2.56 یا برعکس(تو دیتا شیت میگه اول *512 بعد /vref ولی یکم جوابش عجیبه؟
      سوال اخر با فرض 8 بیت مقدار خونده شده نباید بیشتر از 512 باشه درسته اگه باشه نویز یا اشتباه داره می خونه دبگه درسته؟(حالا 10 بیتی از 1024نباید بیشتر یشه) اگه می تونی یه مثال عددی بزن که مثلا چه اعدادی را باید ببینم که سر کار نباشم :-S
      تو این جهان 7 میلیاردی من معنی ندارد و اگه تو این دنیا فقط 1 نفر وجود داشت باز هم من معنی نداشت

      دیدگاه


        #4
        پاسخ : چندتا نکته معمول تو ADC داخلی؟

        adc یک مقدار حداقل و یک مقدار حداکثر داره ، صفر و حالا توی 8 بیتی مقدار حداکثراش میشه ff هگزه که معادل 256 دسیمال هست؛ از اون طرف ورودی آنالوگ هم یک مقدار حداقل و حداکثر داره که با توجه به agnd و vref هست که تو اینجا agnd زمین پس مقدار حداقل صفر و vref برابر با 2.56ولت هست پس حالا یک تناسب داریم :


        2.56-->256
        vin --> ADCH

        که مقدار ADCH توسط تابع read_adc بدست میاد ،بنابراین :


        Vin = (2.56*ADCH)/256

        دیدگاه


          #5
          پاسخ : چندتا نکته معمول تو ADC داخلی؟

          خیلی ممنون گرفتم چی شد...... :applause:
          تو این جهان 7 میلیاردی من معنی ندارد و اگه تو این دنیا فقط 1 نفر وجود داشت باز هم من معنی نداشت

          دیدگاه

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