عکس پیش‌فرض نوشته

سنسور DS18B20 یک سنسور دماسنج است که با اتصال آن به میکرو می توان از آن برای اندازه گیری دما، استفاده کرد.

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

DS18B20-Arduino

همچنین رنج دمایی که می تواند اندازه گیری کند بین 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 در خود دارند، زمانی که بخواهیم آنها را به هم متصل کنیم و از طریق یک سیم کار انتقال دیتا را انجام دهیم لازم است که به هر سنسور یک آدرس منحصر به فرد دهیم و زمانی که بخواهیم دمای آن سنسور را ببینیم باید در برنامه ابتدا آدرس آن سنسور را روی خط ارسال کنیم تا سنسوری که آن آدرس را در خود ذخیره کرده است، دمای خود را روی خط بفرستد.