آموزش راه اندازی سنسور دما DS18B20 با آردوینو

فهرست مطالب

ویژگی های سنسور دما DS18B20

DS18B20  یک سنسور دما با قابلیت اندازه گیری در بازه -55  تا +125 درجه سانتی گراد و با دقت 0.5 درجه سانتی گراد است. دقت خروجی این سنسور از 9 تا 12 بیت قابل تنظیم است. این دقت به صورت پیش فرض روی 12 بیت تنظیم شده است.

پروتکل ارتباطی سنسور DS18B20  تک سیمه (One-Wire) است و شما تنها با اتصال یک سیم به آردوینو، قادر به اندازه گیری دمای محیط هستید.

نکته

یکی از بزرگترین مزیت های این سنسور، وجود پروتکل ارتباطی تک سیمه است. در این پروتکل هر سنسور دارای یک کد 64 بیتی یکتا است. با استفاده از این قابلیت، شما قادر خواهید بود تا خروجی چندین سنسور DS18B20 را به صورت مشترک به یک پایه آردوینو (یا دیگر پردازنده ها) وصل کنید.

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

دیتاشیت سنسور دمای DS18B20 را می توانید از اینجا دانلود کنید.

معرفی پایه‌ها (Pinout) سنسور دمای DS18B20

سنسور DS18B20 دارای 3 پایه به شرح زیر است:

  • VCC: تغذیه ماژول – 3 تا 5 ولت
  • GND: زمین
  • DQ: خروجی سنسور

پین اوت (Pinout) این سنسور را می توانید در تصویر زیر مشاهده کنید.

لوازمی که به آن احتیاج دارید

قطعات مورد نیاز

برد آردوینو R3 × 1
سنسور دماسنج دیجیتال DS18B20 × 1
ماژول دماسنج دیجیتال DS18B20 – ضد آب × 1
برد بورد × 1
مقاومت 4.7 کیلو اهم × 1
سیم جامپر × 1

نرم‌افزارهای مورد نیاز

آردوینو IDE

راه اندازی سنسور دما 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)

  • امیر Reply

    با عرض سلام

    حداکثر چند دما سنج را میشه با یک پرت اردیونو راه اندازی کرد؟

    آوریل 5, 2022 at 10:09 ق.ظ
    • مهران ملکی Reply

      سلام.
      با هر پایه برد آردوینو (پایه‌های 0 تا 13 دیجیتال و A0 تا A5 آنالوگ) میتونید تنها یک دماسنج از نوع DS18B20 رو راه‌اندازی کنید.

      آوریل 7, 2022 at 12:15 ب.ظ
    • بیژن Reply

      برای سنسور ds18b20 چون هر سنسور یک کد منحصر به فرد دارد فکر کنم تا هشت سنسور می توان به یک پایه دیتا وصل نمود

      آگوست 14, 2023 at 12:07 ب.ظ

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

نشانی ایمیل شما منتشر نخواهد شد.