مواجهة حساس درجة الحرارة الرقمي DS18B20 ذو السلك الواحد مع الاردوينو 3

تم نشر هذا المشروع لجميع الأشخاص المهتمين في مجال تصنيع وابتكار المشاريع الإلكترونية والبرمجية، و نود التنويه أن موقع انا الكتروني يخلي مسؤوليته التامة في حال لم يعمل المشروع لدى العميل أو في حال الاستخدام الخاطئ للمكونات الإلكترونية والكهربائية التي قد تؤدي لحدوث الحرائق أو غيرها لا سمح الله.

حساس درجة الحرارة DS18B20

واحدة من أسهل وأرخص وسيلة لإضافة حساس درجة الحرارة في مشروع الاردوينو الخاص بك هو استخدام DS18B20 حساس درجة الحرارة الرقمي .

هذه المجسات دقيقة إلى حد ما ولا تحتاج إلى مكونات خارجية للعمل . لذلك ، مع وجود عدد قليل من الاتصالات وبعض أكواد الاردوينو  ، ستقيس درجة الحرارة في أي وقت من الأوقات !

نظرة عامة علي حساس درجة الحرارة DS18B20 :

DS18B20 هو عبارة عن حساس درجة الحرارة ، تم تصنيعه بواسطة شركة Dallas Semiconductor Corp . تتطلب مواجهة السلك 1 دبوسًا رقميًا واحدًا فقط للاتصال ثنائي الاتجاه مع متحكم دقيق .

يأتي حساس درجة الحرارة  DS18B20 عادة في شكلين . أحدهما الذي يأتي في حزمة TO-92 يشبه تماما الترانزستور العادي . والاخر في نمط مسبار مقاوم للماء والتي يمكن أن تكون أكثر فائدة عندما تحتاج إلى قياس شيء بعيد ، تحت الماء أو تحت الأرض  .

Types-Of-DS18B20-Temperature-Sensor

حساس درجة الحرارة DS18B20 دقيق إلى حد ما ولا يحتاج إلى مكونات خارجية للعمل . يمكن قياس درجات الحرارة من -55 درجة مئوية إلى +125 درجة مئوية مع دقة ± 0.5 درجة مئوية .

دقة حساس  درجة الحرارة DS18B20 قابلة للتكوين من قبل المستخدم إلى 9 أو 10 أو 11 أو 12 بت . ومع ذلك ، فإن الدقة الافتراضية عند بدء التشغيل تصل إلى 12 بت (أي الدقة 0.0625 درجة مئوية) .
يمكن تشغيل حساس درجة الحرارة  DS18B20 بواسطة مزود طاقة 3V إلى 5.5V ويستهلك 1mA فقط خلال تحويلات درجة الحرارة النشطة .

هنا المواصفات الكاملة :

Power Supply 3V to 5.5V
Current Consumption 1mA
Temperature Range -55 to 125°C
Accuracy ±0.5°C
Resolution 9 to 12 bit (selectable)
Conversion Time < 750ms

أطراف حساس درجة الحرارة DS18B20 :

DS18B20-Pinout-Including-Waterproof-Temperature-Sensor
  • GND هو دبوس الأرضي .
  • DQ هو 1-سلك بيانات الناقل يجب أن تكون متصلا بالدبوس الرقمي على المتحكم .
  • VDD يوفر الطاقة الذي يمكن أن يتراوح بين 3.3 إلى 5V .

منتجات المشروع

بامكانك شراء كل منتج على حدى من المتجر بالضغط على المنتج المطلوب
او شراء منتجات المشروع بالكامل ادناه

الأسلاك في حساس درجة الحرارة DS18B20 وربطه مع لاردوينو :

بما فيه الكفاية من النظري ، دعنا نذهب الي الجانب العملي! دعنا نربط حساس درجة الحرارة DS18B20 مع الاردوينو .

الاتصالات بسيطة إلى حد ما . ابدأ بتوصيل VDD بلوحة 5V للخارج في الاردوينو و GND إلى الأرضي .
قم بعد ذلك بتوصيل دبوس الإشارة الرقمية المتبقي DQ بالدبوس الرقمي 2 على اردوينو .

ستحتاج أيضًا إلى إضافة المقاوم بسحب 4.7k بين الإشارة وطرف الطاقة للحفاظ على نقل البيانات مستقرًا .

DS18S20-hookup

إذا كنت تستخدم الإصدار المضاد للماء من DS18B20 ، فقم بتوصيل الشريط الأحمر بـ 5 فولت ، بينما يتصل اللون الأسود بالأرض ، أما الشريط الأصفر فهو عبارة عن بيانات تنتقل إلى الرقم 2 الرقمي على اردوينو . ما زلت بحاجة إلى توصيل مقاوم سحب 4.7K من البيانات إلى 5V .

Wiring-Waterproof-DS18B20-Temperature-Sensor-to-Arduino
تنبيه : في حال لم تكن متأكد من قدرتك على تنفيذ خطوات المشروع يرجى استشارة شخص متخصص في هذا المجال.

كود تشغيل حساس درجة الحرارة DS18B20

سوف يوفر لك الكود البرمجي التالي فهمًا تامًا لكيفية قراءة قراءات درجة الحرارة من حساس درجة الحرارة ويمكن أن يكون بمثابة أساس لمزيد من التجارب العملية والمشاريع .

قبل تحميل الكود قد تحتاج الي تحميل المكتبات يمكنك الوصول اليها من خلال الاردوينو نفسه بالبحث عنها وهي OneWire و DallasTemperature كما بالصورة أدناه .

1
2

الان يمكنك تحميل الكود البرمجي والاستمتاع بالتجربة , وأذا كنت تواجه أي مشكلة الرجاء ترك تعليقك بالاسفل أو مراسلتنا علي وسائل التواصل المتاحة بالمتجر.

لتحميل الكود البرمجي اضغط هنا
#include <OneWire.h>
#include <DallasTemperature.h>

// Data wire is plugged into digital pin 2 on the Arduino
#define ONE_WIRE_BUS 2

// Setup a oneWire instance to communicate with any OneWire device
OneWire oneWire(ONE_WIRE_BUS);	

// Pass oneWire reference to DallasTemperature library
DallasTemperature sensors(&oneWire);

void setup(void)
{
  sensors.begin();	// Start up the library
  Serial.begin(9600);
}

void loop(void)
{ 
  // Send the command to get temperatures
  sensors.requestTemperatures(); 

  //print the temperature in Celsius
  Serial.print("Temperature: ");
  Serial.print(sensors.getTempCByIndex(0));
  Serial.print((char)176);//shows degrees character
  Serial.print("C  |  ");
  
  //print the temperature in Fahrenheit
  Serial.print((sensors.getTempCByIndex(0) * 9.0) / 5.0 + 32.0);
  Serial.print((char)176);//shows degrees character
  Serial.println("F");
  
  delay(500);
}

إليك كيفية ظهور الإخراج في الشاشة التسلسلية .

DS18B20-Temperature-Sensor-Output-On-Serial-Monitor

مع أطيب الامنيات بالتوفيق ….

أنتهت !!!

3 Comments

  1. شكرا اخي على التوضيح
    ممكن كود لقياس درجة الحرارة باستعمال حساس CTN واظهاره في الشاشة LCD.وبارك الله فيك اخى.

  2. قمت بكل المراح لاكن لم يشتغل ولم أحصل علي الإشارات ما العمل

    1. أهلا بك ،
      نعتذر عن تأخرنا في الرد بسبب الضغط الشديد الفترة الأخيرة،

      لا نعلم اذا كان المشروع يعمل الان ولكن نرجو منك التاكد من تثبيت المكتبات بشكل صحيح، كما يمكنك التواصل مع الدعم الفني بشكل مباشر من خلال هذا الرابط

      ielectrony Support Team

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *