سنسور DS18B20 یک سنسور دماسنج است که با اتصال آن به میکرو می توان از آن برای اندازه گیری دما، استفاده کرد.
این سنسور به صورت دیجیتالی کار می کند و نحوه اتصال آن به صورت تک سیم می باشد.
همچنین رنج دمایی که می تواند اندازه گیری کند بین 55- تا 125 درجه است.
دقت اندازه گیری این سنسور 0.1 درجه است.
با توجه به اینکه این سنسور به صورت دیجیتالی کار می کند، دقت خیلی خوبی دارد و نویز پذیر نیست پس می توان از آن در محیط های صنعتی استفاده کرد.
البته این سنسور در بازار به صورت معمولی و صنعتی وجود دارد که تفاوتی از نظر نحوه کار ندارد و فقط مدل های صنعتی به صورت ضدآب و دارای کابل سرخود است.
مهمترین مزیت این سنسور این است که می توان کابل سیم آن را تا 100 متر افزایش داد بدون اینکه هیچ افت و خطایی در سیستم اندازه گیری دما به وجود آید.
در این پروژه ما از یک سنسور DS18B20 صنعتی، برای اندازه گیری دما و یک ماژول Arduino برای دریافت و پردازش سیگنال استفاده کرده ایم.
در این مطلب برنامه ای برای نمایش میزان دما بر روی پورت سریال نوشته ایم.
#include <OneWire.h> #include <DallasTemperature.h> #define ONE_WIRE_BUS 2 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); void setup(void) { Serial.begin(9600); Serial.println("www.SabzElco.ir"); Serial.println("Test DS18B20"); Serial.println("OK"); sensors.begin(); } void loop(void) { Serial.print("Temperature for Device 1 is: "); Serial.println(sensors.getTempCByIndex(0)); }
توضیحات برنامه:
خط اول و دوم: تعریف کتابخانه های پروتکل تک سیم و سنسور دما
خط سوم: تعریف پین شماره 2 برای اتصال سنسور DS18B20
خط پنجم و ششم: تعریف پروتکل تک سیم
خط 9 و 10 و 11 و 12 : پیکربندی پورت سریال
خط 13 : شروع به کار سنسور
خط 18 و 19 : دریافت میزان دما و نمایش آن
با این برنامه فقط می توان یک سنسور دما DS18B20 را راه اندازی کرد.
یکی از قابلیت های سنسور DS18B20 این است که می توان چندین سنسور دما را به هم وصل کرد و فقط از طریق یک سیم کار انتقال اطلاعات را به ماژول میکرو انجام داد.
این سنسورها یک حافظه ROM در خود دارند، زمانی که بخواهیم آنها را به هم متصل کنیم و از طریق یک سیم کار انتقال دیتا را انجام دهیم لازم است که به هر سنسور یک آدرس منحصر به فرد دهیم و زمانی که بخواهیم دمای آن سنسور را ببینیم باید در برنامه ابتدا آدرس آن سنسور را روی خط ارسال کنیم تا سنسوری که آن آدرس را در خود ذخیره کرده است، دمای خود را روی خط بفرستد.
این آموزش برای همیشه رایگانه! میتونید با اشتراکگذاری لینک این صفحه از ما حمایت کنید یا با خرید یه فنجون نوشیدنی بهمون انرژی بدید!
میخوام یه نوشیدنی مهمونتون کنم
سلام من ای کد برای تب سنج وارد کردم و این متن نمایش داده میشه ، مشکل داره ایا؟ از کجاست چجوری رفعش کنم؟
متن اخر اینه که نمایش داده میشه
سلام
متأسفانه در حال حاضر امکان تست کدتون رو نداریم.
از خطا مشخصه که در یکی از توابع سعی کردید unsigned int رو به int تبدیل کنید و به خطا خورده. (در اینجا
if(ds18b20_read(&ds18b20_temp))
)سلام برای پروژه تب سنج هم میشه این برنامه وارد کرد یا نیاز به تغییرات داره؟
اگر برنامشو بزارید ممنون میشم
سلام
اگر کاری که میخواید انجام بدید صرفاً سنجش دما هست، بله این کد مناسب کارتون خواهد بود. اما توجه کنید که ممکنه سنسور DS18B20 دقت لازم برای سنجش تب رو نداشته باشه. این مورد رو حتماً قبل از استفاده عملیاتی و واقعی از پروژه چک کنید.
پروژه عملیاتی نیست و فقط قراره ارائه انجام بدم و مراحل انجام رو شرح بدم ؛ سنسور دما هم خود استاد گفتن
پس میتونم ازش استفاده کنم؟
بله. نباید مشکلی باشه.
سلام برای پروژه تب سنج دانشگاه برنامه شمارو وارد کردم
با این متن روبرو شدم درسته همه چیز ؟
سلام
اینها خطا نیستند و فقط گزارش وضعیت پروگرام کد هست. احتمالاً مراحل رو درست رفتید؛ اما حتماً قبل از کار کشیدن، تستش هم بکنید که مطمئن بشید.
سلام خسته نباشید
این کد زدید به پایه 2 وصل میشه منظورتون پایه دیجیتال بوده یا انالوگ (A2)؟
تشکر
سلام
سنسور دماسنج DS18B20 دیجیتالی کار میکنه.
این دستور استفاده نشه فکر کنم کار نکنه
سلام
ممنون از توجه شما
این برنامه تست شده و مشکلی ندارد.
با سلام و خسته نباشید . بسیار عالی بودولی ای کاش نقشه شماتیک پروژه ها را هم در سایت قوی و پرکاربرد خود قرار می دادید. با تشکر
با سلام
شماتیک پیچیده ای ندارد.
سنسور 3 پایه دارد که دو پایه آن مربوط به تغذیه و پایه سوم نیز که مربوط به دیتا است به پایه 2 میکرو (آردوینو) متصل می شود.