روزهای خط خطی  | راه اندازی سنسور دما (LM335) و اندازه گیری دما با AVR

راه اندازی سنسور دما (LM335) و اندازه گیری دما با AVR

سنسور lm335 یک سنسور دماست که در گستره ی وسیعی به صورت خطی عمل می کند. به بیان روشن تر بعد از کالیبره کردن سنسور در دمای مشخص (25 درجه ی سانتیگراد بهترین دما برای کالیبراسیون است.) رابطه ی خروجی سنسور با دما به صورت خطی بوده و با هر درجه افزایش یا کاهش دما به مقدار 10میلی ولت تغییر می کند. به این ترتیب می توان گفت کار کردن با lm335 بسیار ساده بوده و راه اندازی آن زمان و کار زیادی نیاز ندارد.

سنسور lm335 به صورت یک دیود زنر عمل می کند که ولتاژ شکست آن به صورت خطی با دما تغییر می کند و با افزایش یک درجه ی سانتیگراد به اندازه ی 10میلی ولت تغییر می کند. با این توضیح طراحی مدار راه انداز خیلی پیچیده نیست و با توجه به چند نکته به راحتی انجام می گیرد.

مدار راه انداز lm355

  1. مقاومت R1 برای بایاس معکوس کردن دیود زنر در مدار معادل lm335 استفاده می شود. در انتخاب این مقاومت باید دقت کنیم که مقاومت باید اجازه دهد جریان کافی جهت بردن دیود به ناحیه ی شکست زنری از آن عبور کند. استفاده از مقاومت های بزرگ باعث از کار افتادن سنسور می شود. مثلا اگر از مقاومت 10کیلو اهم استفاده کنیم صرفنظر از مقاومت داخلی سنسور و با فرض داشتن تغذیه ی 5ولت جریان 500میکرو آمپری از سنسور می گذرد. Lm335 برای درست کار کردن به حداقل 450میکرو آمپر جریان نیاز دارد و همانطور که می بینیم مقداری که ما به دست آوردیم درست لب مرز است و بعید است با چنین شرایطی سنسور درست کار کند
  2. انتخاب مقاومت های R2 , R3, R4 به صورتی که در مدار فوق آمده است باعث می شود خروجی سنسور در دمای اتاق و به ازای تغذیه ی 5ولت در حد 2.5 ولت باشد و  نوسان ولتاژ خروجی به مقدار لازم برای نمایش دماهای مجاز در گستره ی کاری سنسور را ممکن سازد.
  3. همانطور که در datasheet سنسور lm335 آمده است می توان برای کالیبره کردن مدار راه انداز سنسور  از یک ولوم 10کیلو اهم استفاده کرد ولی در بعضی شرایط مثل کاربرد فعلی این کار منطقی نیست. اولا وجود مقاومت متغیر در مدار به معنی این است که مدار توسط کاربر قابل تغییر و تنظیم است که در بسیاری از موارد که کاربر اطلاعاتی در مورد سیستم و نحوه ی عملکرد آن ندارد مطلوب نیست. در وهله ی بعد و با توجه به این که بناست مقدار سنسور توسط میکروکنترلر خوانده شود طبیعتا نیازی به ولوم نیست و کالیبراسیون توسط برنامه ی داخلی میکرو انجام می شود.
  4. بدیهی است برای تغذیه ی مدار باید از یک تنظیم کننده ی ولتاژ (رگولاتور) مثل 7805 استفاده کرد تا خروجی سنسور مقداری پایدار داشته باشد.

با استفاده از تنظیم کننده ی ولتاژ 7805 و در دمای 30درجه ی سانتیگراد ولتاژ خروجی سنسور در مدار فوق 2.69ولت خواهد بود. به این ترتیب در دمای 130درجه خروجی تقریبا 3.7ولت و در دمای -20درجه ی سانیگراد خروجی در حد 2.2 ولت خواهد بود. بنابراین می توان گفت خروجی سنسور در محدوده ی کاری اش در گستره ی قابل قبولی تغییر می کند و از مقدار حداکثر (5ولت) و حداقل (0ولت) تجاوز نمی کند.

برای تبدیل خروجی سنسور به دیجیتال مبدل آنالوگ به دیجیتال 10بیتی میکرو استفاده می کنیم و ولتاژ 5ولت خروجی رگولاتور را به عنوان ولتاژ مرجع به کار می بریم.

(5-0)/1024 = 0.0049≈5mV

در این شرایط خروجی سنسور به ازای هر درجه تغییر دما 10میلی ولت تغییر می کند و این تغییر به نوبه ی خود باعث دو واحد تغییر در خروجی ADC میکرو کنترلر خواهد شد. پس برای خواندن صحیح مقدار سنسور باید دو کار انجام دهیم:

  1. مقدار خروجی ADC را بر دو تقسیم کنیم.
  2. مقدار آفست را از مقدار به دست آمده در مرحله ی قبل کم کنیم. برای این کار مدار را راه اندازی کرده و مقدار خروجی را از روی LCD می خوانیم و دمای واقعی اتاق را از آن کم می کنیم. مقدار به دست آمده همان آفستی است که باید از مقدار خروجی مرحله ی 1 کم کرد.


**خروجی برنامه در شبیه سازی با مقدار واقعی حدود 10 درجه تفاوت دارد.

17 پاسخ به “راه اندازی سنسور دما (LM335) و اندازه گیری دما با AVR”

  1. somayeh گفت:

    عالی بود. بسیار ممنونم. :-*

  2. داریوش گفت:

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

    • امیدرضا امیدرضا گفت:

      آقا قدم نورسیده مبارک!
      خیلی خوشحالم که نوشته ی من تونسته به کارتون بیاد. ببینید خروجی سنسور در حالت کلی به صورت خطی تغییر می کنه. یعنی اگر در یک دمای خاص سنسور رو کالیبره کنیم در همه ی دماها درست جواب میده. یه نگاهی به این قسمت کد بندازید: temp = temp/2 – 242. در واقع عدد 242 کار کالیبراسیون رو برای ما انجام میده.
      باید در یک دمای خاص مثلا 25 درجه اونقدر با این عدد بازی کنید تا دمای نمایش داده شده با دمای واقعی برابر بشه. بعد از اون دیگه قاعدتا باید مدار درست کار کنه.

  3. وحید گفت:

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

    • امیدرضا امیدرضا گفت:

      سلام دوست عزیز
      من همین الان فایل رو چک کردم. فایل فشرده ای که من برای دانلود گذاشتم شامل ۴ تا فایله که یکیش فایل c مربوط به کده و سه تای دیگه مربوط به پروتئوس هستن.
      دوباره چک کنید اگر نشد اطلاع بدید تا براتون ایمیل کنم.

  4. aref گفت:

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

    • امیدرضا امیدرضا گفت:

      سلام دوست عزیز
      من دقیقا متوجه نشدم قصد دارید چه کاری انجام بدید. اگر یه مقدار بیشتر توضیح بدید شاید بتونم کمکتون کنم.

  5. س.ه گفت:

    اولا باید از مدارتون تشکر کنم. طراحی جالب و هوشمندانه ای داشت.
    ولی یک سوالی برای من پیش اومد. مقاوت R4 بین زمین و پایه میکرو قرار گرفته و به پایه adj سنسور متصل نیست درسته؟ نقش این مقاومت توی مدار چیه؟

  6. niloofar گفت:

    ممنون ازتوضیحاتتون فقط دیود زنرش چنده؟؟

  7. رضا احمدی گفت:

    باید گفت که سنسور lm335 با تغییر هر یک درجه کلوین ۱۰mv در خروجیش ولتاژ میدهد نه درجه سانتیگراد

    • امیدرضا امیدرضا گفت:

      سلام دوست خوبم
      ممنونم که نوشته من رو خوندید و وقت گذاشتید و دیدگاهتون رو برام نوشتید.
      چیزی که برای ما مهمه اختلاف دما از نقطه ی مرجعی هست که مثلا در دمای ۲۵ درجه سانتیگراد در نظر گرفتیم. یعنی ما یک دما رو اننخاب میکنیم و مقدار ولتاژ خروجی رو در اون نقطه اندازه میگیریم. بعد از اون میتونیم بگیم که با هر درجه تغییر دما ما ۱۰میلی ولت اختلاف ولتاژ خواهیم داشت. چون اینجا صحبت از اختلاف دماست فرقی نمیکنه که دما رو بر حسب کلوین بگیم یا درجه سانتگیراد.

  8. reza گفت:

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

    • امیدرضا امیدرضا گفت:

      سلام دوست عزیز
      باید دقت کنید که خروجی سنسور به ازای هر درجه تغییر دما فقط ۱۰میلی ولت تغییر میکنه. استفاده از سیم طولانی طبیعتا به معنای مسیر با مقاومت بالا خواهد بود که مقداری افت ولتاژ ایجاد میکنه و کل محاسبات رو به هم میریزه.

  9. فلانی گفت:

    سلام مهندس
    جسارتا این روش درست نیست و نیازی به مقدار آفست نیست. سنسور lm335 با ولتاژ ۵ ولت و مقاومت ی مثل ۱k روی دمای ۲۵ درجه سانتی گراد ولتاژ ۲٫۹۸۲ دارد. (مطابق دیتاشیت) و فقط باید بازه تغییرات adc که از ۴۵۷ تا ۸۱۵ میباشد به بازه تغییرات دما
    [۱۲۵,, ۵۰-]
    تبدیل شود. برای این تبدیل از این فرمول استفاده میشود:
    http://stackoverflow.com/questions/929103/convert-a-number-range-to-another-range-maintaining-ratio
    و دقت بسیار بالایی هم در محاسبات هست. نیازی به آفست نیست.
    با تشکر از سایت خوبتون

    • امیدرضا امیدرضا گفت:

      سلام دوست عزیز،
      ممنونم که مطلب بنده رو خوندید و باز هم ممنونم بابت دیدگاهتون. راستش من در حال حاضر فرصت تست کردن روشی که شما می فرمایید رو ندارم ولی با توجه به توضیحات خوب شما و لینک stackoverflow که گذاشتید درست و منطقی به نظر می رسه. به همین خاطر دیدگاه شما رو منتشر کردم که دوستان دیگه هم بتونن ازش استفاده کنن.

  10. محسن کریمی گفت:

    با سلام و تشکر خدا خیرتون بده خیلی لنگش بودم یک در دنیا صد درآخرت خدا به شما اجر بده

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *