اطلاعیه

Collapse
No announcement yet.

مشکل سنسور دیجیتالی

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

    مشکل سنسور دیجیتالی

    سلام دوستان این سنسور های دیجیتالی رو که نوع های مختلفی دارند رو دیدید مثلا یکی شون مثل ds18s20 یا نوع های دیگه که برای اندازه گیری دما هست و پروژه های زیادی هم باهاشون درست شده یه مشکلی که این قطعه ها دارند اینه که زمانی که مقدار دما تغییر می کنه بعد از چند ثانیه (2یا 3) مقدارشو نشون می ده به نظر من کلاک ارتباط یک سیمه (که در این سنسور استفاده می شه) مقدار کمی داره که شنیدم حدود 2 کیلو هرتز هست و تا مقدارشو بخونه طول می کشه و کلاک اصلی میکرو که زیادتر هست زودتر به تابع می رسه ولی تابع هنوز مقدار دما رو اندازه نگرفته و باعث می شه کند کار کنه

    حالا روش های دیگه مثل i2c که سنسورlm75 هست چی کارش کنم که این مشکل زمان خوندنش هم جدا باشه از کلاک اصلی وهم وقتی کلاک اصلی بهش رسید دیگه تاخیر نداشته باشه

    اگه متوجه نشدید سوالمو یه مثال عملی می زنم:

    فکر کنید می خوایم که مقدار دما رو از lm75 بخونیم و نشون بدیم و زمانی که مقدار دما تغییر کرد بدون زمان تاخیر نشونش بدیم مثال هایی که دیدم همشون تاخیر دارن حالا چی کار کنیم ؟

    #2
    پاسخ : مشکل سنسور دیجیتالی

    no one

    دیدگاه


      #3
      پاسخ : مشکل سنسور دیجیتالی


      مشکل اصلی من که خیلی هم مشکل بزرگی هست اینه که درست متوجه نمی شم که آخر می تونیم از یه طرف دستورات برنامه اصلی رو اجرا کنیم و همزمان با اون دیتا رو با ارتباط های سریال رد و بدل کنیم ؟؟ مثل اینکه میکرو به ارتباط i2c ادامه بده و همراه با اون هم بیایم مثلا یه یه کار دیگه ای انجام بدیم/بدون اینکه میکرو زمانی رو صبر کنه تا دیتا از i2c بیاد (i2c جدا کارشو بکنه مثلا همین دستور strat_i2c بگیم و دیتا بدیم و یه کار دیگه انجام بدیم ارتباط هم به کار خودش ادامه بده)

      دیدگاه


        #4
        پاسخ : مشکل سنسور دیجیتالی

        تغییرات دما بستگی به ظرفیت گرمایی محیط اندازه گیری و سرعت پاسخ سنسور شما داره. معمولاً زمان 1-2 ثانیه برای دما چیز مهمی نیست. اگر مشکل شما پاسخ کند سنسورتونه، خوب عوضش کنید. سنسورهای آنالوگ سرعت پاسخشون به مراتب سریعتره (مثلاً 0.1 ثانیه).
        اگر به دنبال راه حل سریع برای خوندن اطلاعات از سنسور هستید، که خوب باید طبق دیتاشیت عمل کنید و مثلاً همونطور که خودتون گفتید نباید بیشتر از 2kHz کلاک بهش بدید. این دیگه بسته به نوع سنسور داره و از دست ما کاری بر نمیاد!

        و اگر ابهامی توی برنامه نویسی دارید، باید سوالتون رو واضح تر بپرسید. برای I2C بیتی (bit-banged) با کلاک 2kHz، میکروکنترلر نهایتاً 20ms درگیر خوندن هست و شما هم که می گید سنسورتون 2-3 ثانیه تأخیر داره. این 20ms توی 2-3 ثانیه به نظرم اصلاً جای نگرانی نداره! فرض کنید تأخیر سنسورتون 2 ثانیه ست. شما باید هر 2 ثانیه یک بار سنسور رو بخونید و این فقط 20ms طول می کشه. 1.98 ثانیه وقت باقی می مونه تا نمونه بعدی که می خواید بخونیدش...
        بیایید با Google آشتی کنیم!

        دیدگاه

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