ویژگی های سنسور دما DS18B20
DS18B20 یک سنسور دما با قابلیت اندازه گیری در بازه -55 تا +125 درجه سانتی گراد و با دقت 0.5 درجه سانتی گراد است. دقت خروجی این سنسور از 9 تا 12 بیت قابل تنظیم است. این دقت به صورت پیش فرض روی 12 بیت تنظیم شده است.
پروتکل ارتباطی سنسور DS18B20 تک سیمه (One-Wire) است و شما تنها با اتصال یک سیم به آردوینو، قادر به اندازه گیری دمای محیط هستید.
نکته
یکی از بزرگترین مزیت های این سنسور، وجود پروتکل ارتباطی تک سیمه است. در این پروتکل هر سنسور دارای یک کد 64 بیتی یکتا است. با استفاده از این قابلیت، شما قادر خواهید بود تا خروجی چندین سنسور DS18B20 را به صورت مشترک به یک پایه آردوینو (یا دیگر پردازنده ها) وصل کنید.
این سنسور به دو شکل زیر موجود است.
دیتاشیت سنسور دمای DS18B20 را می توانید از اینجا دانلود کنید.
DS18B20 Temperature Sensor Datasheet
معرفی پایهها (Pinout) سنسور دمای DS18B20
سنسور DS18B20 دارای 3 پایه به شرح زیر است:
- VCC: تغذیه ماژول – 3 تا 5 ولت
- GND: زمین
- DQ: خروجی سنسور
پین اوت (Pinout) این سنسور را می توانید در تصویر زیر مشاهده کنید.
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرمافزارهای مورد نیاز
راه اندازی سنسور دما DS18B20 با آردوینو
گام اول: سیم بندی
مطابق مدار زیر، سنسور را به آردوینو وصل کنید. خروجی سنسور را می توانید به هر یک از پایه های ADC آردوینو وصل کنید.
نحوه اتصال هر دو سنسور معرفی شده به یک صورت است.
گام دوم: نصب کتابخانه
به Library manager رفته و کتابخانه ی سنسور دما DS18B20 را نصب کنید.
علاوه بر کتابخانه ی سنسور، نیاز به کتابانه ی OneWire هم دارید. اگر از نسخه های جدید نرم افزار Arduino IDE استفاده می کنید، پس از نصب کتابخانه ی DS18B20، به صورت خودکار پیشنهاد نصب کتابخانه ی OneWire به شما داده می شود، در غیر این صورت خودتان این کتابخانه را نصب کنید.
گام سوم: کد
کد زیر را روی برد آردوینو آپلود کنید. این کد دمای خوانده شده را در پنجره ی سریال نمایش می دهد.
/*
DS18B20 Temperature Sensor
modified on 08 Sep 2020
by Mohammad Reza Akbari @ Electropeak
Home
*/
#include <OneWire.h>
#include <DallasTemperature.h>
// Connect Sensor output to pin2
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
/*
The setup function. We only start the sensors here
*/
void setup(void)
{
Serial.begin(9600);
sensors.begin();
}
void loop(void)
{
sensors.requestTemperatures(); // Send the command to get temperatures
float temp = sensors.getTempCByIndex(0);
// Check if reading was successful
if (temp != DEVICE_DISCONNECTED_C)
{
Serial.print("Temperature of Sensor 0 is: ");
Serial.println(temp);
}
else
{
Serial.println("Error to reading data");
}
}
خروجی کد به شکل زیر است.
Comments (3)
با عرض سلام
حداکثر چند دما سنج را میشه با یک پرت اردیونو راه اندازی کرد؟
سلام.
با هر پایه برد آردوینو (پایههای 0 تا 13 دیجیتال و A0 تا A5 آنالوگ) میتونید تنها یک دماسنج از نوع DS18B20 رو راهاندازی کنید.
برای سنسور ds18b20 چون هر سنسور یک کد منحصر به فرد دارد فکر کنم تا هشت سنسور می توان به یک پایه دیتا وصل نمود