اطلاعیه

Collapse
No announcement yet.

مشکل با ADC

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

    مشکل با ADC

    سلام
    برنامه زیر رو من تو بسکام نوشتم و تو پروتیوس اجرا کردم ولی رو lcdفقط قسمت اعشاری تغییر می کنه،اشکال از چیه؟ :sad:
    یک پتانسیومتر 10K رو به ADC وصل کردم که یک سرش به ولتاژ 5V و یک سرش هم به زمین وصله.
    ایراد از چیه؟!
    رو LCD قسمت صحیح 424 صحیح است و با تغییر پتانسیومتر فقط قسمت اعشاری تغییر می کنه .مقدار پتانسیومتر و ولتاژ DC رو هم تغییر دادم ولی هیچ تغییری ایجاد نشد!!!!!!!!!!!!!
    چیکار باید کنم؟!!!!!!!!

    $regfile = "m16def.dat"
    $crystal = 8000000
    Config Lcd = 16 * 2
    Config Lcdbus = 4
    Config Lcdpin = Pin , Db7 = Portb.7 , Db6 = Portb.6 , Db5 = Portb.5 , _
    Db4 = Portb.4 , E = Portb.3 , Rs = Portb.2
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Dim A As Word
    Dim B As Single
    Dim C As Single
    Dim D As Single
    Dim E As Single
    Dim G As Single
    Dim F As Integer
    B = 0
    C = 0
    D = 0
    E = 0
    F = -1
    G = 424.29
    Start Adc
    Do
    A = Getadc(0)
    B = A
    B = B / 204.5
    C = B / 7.7
    D = C * F
    D = D * 17.314
    E = C + G
    Cls
    Home
    Lcd "CO2=" ; E ; " ppm"
    Waitms 100
    Loop
    End[hr]
    زندگی تاس خوب آوردن نیست ، تاس بد را خوب بازی کردن است

    #2
    پاسخ : مشکل با ADC

    بهتر نبود برنامه رو اینطوری تغییر می دادی



    $regfile = "m16def.dat"
    $crystal = 8000000
    Config Lcd = 16 * 2
    Config Lcdbus = 4
    Config Lcdpin = Pin , Db7 = Portb.7 , Db6 = Portb.6 , Db5 = Portb.5 , _
    Db4 = Portb.4 , E = Portb.3 , Rs = Portb.2
    Config Adc = Single , Prescaler = Auto ', Reference = Avcc
    Dim A As Word

    Dim E As Single

    Const K =( -1 * 17.314 /(204.5 * 7.7)) + 424.29

    Start Adc
    Do
    A = Getadc(0)
    Cls : Home
    Lcd "CO2=" ; E ; " ppm"
    Waitms 100
    Loop
    End

    این طوری خودتم می فهمی داری چه کار می کنی

    حاصل عبارت ( -1 * 17.314 /(204.5 * 7.7)) یک عدد خیلی کوچیک میشه

    نمی دونم این همه ضرب و تقسی م برای چیه




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

    دیدگاه


      #3
      پاسخ : مشکل با ADC

      سلام
      راستش یک ولتاژ 200 ، 300 میلی ولتی هست که می خوام بدم به ADC برای همین اول با یک op-amp با بهره 7.7 تا حدود 3 ولت رسوندمش بعد به ADC می خوام بدمش، اول تقسیم بر 204.5 کردمش تا معادل آنالوگ اولیه به دست بیاد بعد هم تقسیم بر 7.7 که بهره ی op-amp هست کردم تا سیگنال اصلی رو به دست بیارم ، بقیه ضرب و تقسیم هم معادله یک خط هست که مقدار ADC رو توش بزاره و جواب آخر رو نمایش بده.
      دلیل اینکه این جوری نوشتم این بود که می خواستم عملیات ضرب و تقسیم رو مرحله به مرحله تو پروتیوس هم چک کنم تا ایرادشو پیدا کنم که نشد!!!!!!!!!!!!!!!!!
      وقتی ورودی ADC ، 2.5 ولت میشه طبق محاسبات دستی باید 418 رو نشون بده که نمی ده ، مرحله به مرحله هم که چک کردم ، جمع آخری رو درست انجام نمی ده!!!!!!!!!!!!!1
      اشکال کار از کجاست؟؟؟؟؟؟؟؟؟؟؟؟؟؟
      چیکار باید کنم؟!!!!!!!!! :sad:
      زندگی تاس خوب آوردن نیست ، تاس بد را خوب بازی کردن است

      دیدگاه


        #4
        پاسخ : مشکل با ADC

        ضرب داخل اون پرانتز عدد خیلی کوچیکیه
        همونجا مشکل داری
        اعداد رو یه بار دیگه چک کن

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

        دیدگاه

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