خانه / پروژه های میکروکنترلر AVR / پروژه با انواع LCD / راه اندازی سنسور دما DS18B20 با میکروکنترلر AVR

راه اندازی سنسور دما DS18B20 با میکروکنترلر AVR

در این پست از سایت اِمیک, راه اندازی سنسور دما DS18B20 را اموزش خواهیم داد. ما در این پروژه با استفاده از میکروکنترلر AVR دمای این سنسور را خوانده و روی یک LCD کاراکتری 2*16 نمایش می دهیم. برنامه نویسی این پروژه در محیط کدویژن انجام شده است و برنامه به زبانی ساده نوشته شده تا همه بتوانید برنامه را به راحتی متوجه بشوید و در صورت نیاز خود تغیرات لازم را در ان اعمال کنید. از انجایی که این سنسور بسیار دقیق و کاربردی است ما در پروژه هایی که در اینده قرار خواهیم داد حتما از این سنسور استفاده می کنیم بنابراین این مطلب را حتما کامل یاد بگیرید.

prj-ds18b20-lcd

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

سنسور دما DS18B20 :

سنسور DS18B20 یک سنسور دمای بسیار دقیق می باشد که می توان از ان در پروژه های مختلفی مانند دستگاه جوجه کشی ، گلخانه های هوشمند ، تنظیم دمای محیط و موارد مشابه استفاده کرد. ما قبلا سنسور دمای LM35 را هم راه اندازی کرده بودیم ولی LM35 یک سنسور انالوگ می باشد و همچنین دقت کمتری نسبت به سنسور سنسور دما DS18B20 دارد. سنسور DS18B20 یک سنسور دمای دیجیتال با دقت اندازه گیری 0.5 درجه سانتی گراد است که می تواند دمای 55- تا 125+ درجه را اندازه گیری کند، پروتکل ارتباطی با این سنسور یک سیمه (1wire) است. با یک سیم می توان تا 9 سنسور دیجیتال DS18B20 را راه اندازی کرد و طول سیم واسط بین سنسور و میکروکنترلر می تواند تا حداکثر 7 متر باشد. سنسور DS18B20 یک سنسور خیلی دقیق و عالی برای استفاده در پروژه هایی است که به دقت و اعتماد نیاز دارند. شکل این سنسور و پین های ان به صورت زیر است :

pin-temperature-sensor-ds18b20

مشخصات :

  •  ارتباط 1WIRE (یک سیمه)
  • ولتاژ کاری ۳ تا ۵.۵ ولت
  • تنظیم دقت اندازه گیری در مدهای ۹ , ۱۰ , ۱۱ و ۱۲ بیتی
  • قابلیت اندازه گیری دمای ۵۵- تا ۱۲۵+ سانتی گراد (۶۷- تا ۲۵۷+ فارنهایت)
  • اندازه گیری دما با دقت ۱۲ بیت در طول ۷۵۰ میلی ثانیه
  • دارای آدرس مخصوص برای هر سنسور در قالب ۶۴ بیت
  • قابلیت قرار دادن تعداد زیاد سنسور بر روی یک خط باس
  • ساخته شده در دو پکیج TO-92 و SOIC-8 PIN
  • خطای اندازه گیری 0.5± درجه سانتی گراد در بازه ۱۰- تا ۸۵+ درجه سانتی گراد

 

شماتیک پروژه :

sh-prj-ds18b20-lcd

همانطور که در تصویر بالا مشاهده می کنید این پروژه دارای شماتیک ساده ای می باشد و قطعات اصلی ان شامل سنسور DS18B20 و میکروکنترلر ATmega16 برای خواندن مقادیر دما از سنسور و یک lcd کاراکتری 2*16 برای نمایش مقادیر دما می باشد. پتانسیومتر RV1 برای تنظیم کنتراست lcd می باشد و در صورتی که نمی خواهید استفاده کنید پین 3 ال سی دی رو به منفی تغذیه متصل کنید. لازم است که پین خروجی سنسور DS18B20 را با یک مقاومت 4.7K (مقاومت بالاکش R1) به مثبت تغذیه متصل کنیم. توجه کنید که از انجایی که در شبیه سازی پروتئوس پین های تغذیه میکروکنترلر وجود ندارد شما در عمل پین های 10 و 11 میکرو را به ترتیب به مثبت و منفی تغذیه متصل کنید.

 

برنامه :

همانطور که گفته شد برنامه این پروژه به زبان C و با کامپایلر کدویژن نوشته شده است. در ابتدا شما باید در کدویژن یک پروژه جدید ایجاد کنید و از قسمت Chip میکروکنترلر ATmega16 را انتخاب کنید و فرکانس ان را 1 مگ تنظیم کنید

prj-ds18b20-Chip

در ادامه در قسمت Port یکی از پورتها را برای اتصال به lcd خروجی کنید. ما پورت C را برای اتصال LCD انتخاب کرده ایم

prj-ds18b20-Port

در مرحله بعد از قسمت 1Wire Bus Interface ما پین صفر از پورت B را برای ارتباط یک سیمه (1wire) انتخاب می کنیم (تنظیمات به صورت تصویر زیر انجام شود)

prj-ds18b20-1W

و در قسمت Alphanumeric LCD تنظیمات را به صورت تصویر زیر برای اتصال به پورت C انجام می دهیم

prj-ds18b20-Tlcd

در مرحله اخر برای ایجاد کدهای ابتدایی برنامه باید مانند تصویر زیر روی Generate program, save and exit کلیک کنیم و پروژه را سه باز ذخیره کنیم

prj-ds18b20-Save

برنامه نهایی ما به صورت زیر می باشد, فقط توجه کنید که کتابخانه سنسور به صورت <ds1820.h> ایجاد می شود که باید به این صورت تغییر دهید <ds18b20.h> یک b اضافه می کنیم. و همانطور که در کد زیر می بینید هنگام خواندن از سنسور هم یک b اضافه می کنیم :

توضیحات قسمت های مهم برنامه نوشته شده, سوالی داشتید می تونید در قسمت نظرات مطرح کنید

 

کلیپ تست عملی پروژه :

 

دانلود فایل ها

پسورد فایل زیپ : www.emic.ir

نظر یادتون نره…

درباره ی عابد رازانی

فارغ التحصیل کارشناسی الکترونیک از دانشکده باهنر شیراز و علاقمند به برنامه نویسی و طراحی مدارات الکترونیکی, در حال حاضر به تولید محتوای اموزشی و طراحی و انجام پروژه مشغول هستم و همچنین درحال اماده شدن برای ارشد

3 دیدگاه

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

  2. سلام خسته نباشید میخواستم بدونم اگه بجای یک سنسور ds18b20 بخوام سه عدد سنسور بگذارم باید چیکارکنم

    • سلام, هر کدام از این سنسورها یک کد شناسایی کارخانه ای دارن، که باید ابتدا یک دستور شناسایی برای همه سنسورها بفرستیم تا خودشان را معرفی کنند! سپس در برنامه به کمک کدهایی شناسایی هر سنسوری را که خواستیم, میتونیم صدا بزنیم و دمایی ان را بخوانیم! در اینده حتما این پروژه رو قرار میدم

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

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