جدول المحتويات:

معايرة مستشعر DS18B20 مع Arduino UNO: 3 خطوات (بالصور)
معايرة مستشعر DS18B20 مع Arduino UNO: 3 خطوات (بالصور)

فيديو: معايرة مستشعر DS18B20 مع Arduino UNO: 3 خطوات (بالصور)

فيديو: معايرة مستشعر DS18B20 مع Arduino UNO: 3 خطوات (بالصور)
فيديو: Arduino pH probe 2024, شهر نوفمبر
Anonim
معايرة حساس DS18B20 مع Arduino UNO
معايرة حساس DS18B20 مع Arduino UNO
معايرة حساس DS18B20 مع Arduino UNO
معايرة حساس DS18B20 مع Arduino UNO
معايرة حساس DS18B20 مع Arduino UNO
معايرة حساس DS18B20 مع Arduino UNO

تنصل:

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

الخطوة 1: قم بإعداد جهازك

جهز جهازك
جهز جهازك

فيما يلي قائمة بما تحتاجه:

  1. Arduino UNO (أو MEGA)
  2. مستشعر (مجسات) DS18B20
  3. 4 كيلو أوم - 5 كيلو أوم مقاومة (استخدمت 5 كيلو أوم)
  4. شاشة LCD لقراءة القيم (يمكنك أيضًا استخدام كمبيوتر محمول وقراءتها فقط على شاشة تسلسلية)
  5. رسم تخطيطي يستخدم المستشعر ويظهر القيم بطريقة أو بأخرى

بادئ ذي بدء ، عليك توصيل الوحدات والمستشعر بوحدة التحكم الخاصة بك. سأترك الجزء المعقد من شاشة LCD لكي تبحث في الويب ، وسأخبرك فقط بكيفية توصيل المستشعر.

عادة ما تأتي هذه المستشعرات بثلاثة أسلاك ملونة: أسود ، أحمر ، أصفر. الأولين للطاقة والثالث للبيانات. قم بتوصيل الأسود بـ GNN ، والأحمر بـ Vcc (5V) والأصفر على الإدخال التناظري ، دعنا نقول A0.

الآن قم بتوصيل المقاومة بين الأصفر والأحمر لإكمال التوصيلات.

قم أيضًا بتوصيل شاشة LCD (أقترح شاشة LCD 16x2 بسيطة مع اتصال i2c لاستخدام 4 أسلاك فقط في المجموع) وقد انتهيت من الأسلاك والكابلات.

الآن الرسم بسيط للغاية:

# تضمين "OneWire.h"

# تضمين "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1) ؛ مستشعر دالاس درجة الحرارة 1 (وسلكنا 1) ؛ #include "LiquidCrystal_I2C.h"

LiquidCrystal_I2C lcd (0x27، 16، 2) ؛ تعويم RawValue = 0 ؛

إعداد باطل () {lcd.init () ؛ اضاءه خلفيه ال سى دى()؛ sensor1.begin () ؛ sensor1.setResolution (11) ؛ } حلقة فارغة () {sensor1.requestTemperatures () ؛ تعويم RawValue = sensor1.getTempCByIndex (0) ، lcd.setCursor (0 ، 0) ؛ lcd.print ("Sens. 1") ؛ lcd.print (RawValue، 1) ؛ }

كما ترى ، نستخدم مكتبة Dallas Temperature وشاشة LCD مع اتصال i2c.

في الإعداد ، ندخل شاشة LCD وجهاز استشعار ، وفي الحلقة ، نطلب ببساطة درجة الحرارة ونخزن القيمة داخل RawValue المتغير لعرضها على شاشة LCD.

إذا كنت تريد أن تبقي الأمر أكثر بساطة ، فما عليك سوى استخدام الشاشة التسلسلية بالرسم التالي

# تضمين "Wire.h" #include "OneWire.h" #include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1) ؛ مستشعر دالاس درجة الحرارة 1 (وسلكنا 1) ؛

تعويم RawValue = 0 ؛

الإعداد باطل(){

تأخير (1000) ؛ Serial.begin (9600) ؛ sensor1.begin () ؛ sensor1.setResolution (11) ؛

}

حلقة باطلة () {sensor1.requestTemperatures () ، تعويم RawValue = sensor1.getTempCByIndex (0) ، Serial.print ("Sens. 1") ؛ Serial.println (RawValue، 1) ؛ }

اتبعني الآن في قلب المشروع لمعايرة المستشعر.

الخطوة 2: معايرة نقطتين

معايرة نقطتين
معايرة نقطتين
معايرة نقطتين
معايرة نقطتين
معايرة نقطتين
معايرة نقطتين

شيء يجب معرفته أولاً

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

يمكنك التحقق من ذلك هنا!

لكي نكون صادقين ، يجب عليك التحقق من الضغط الجوي وليس الارتفاع. لكن هذه الطريقة دقيقة بما فيه الكفاية.

الحمام ثلاثي النقاط ، أو الحمام الجليدي ، هو درجة الحرارة التي يوجد عندها الماء في الحالات الثلاث الصلبة والسائلة والغازية ، ودرجة الحرارة هذه هي 0 ، 01 درجة مئوية. سنستخدم ، للتبسيط ، 0 درجة مئوية.

بمعرفة القيمة التي يقرأها المستشعر والقيمة التي يجب أن تكون ، يمكننا تعديل القيمة الأولية لـ DS18B20 إلى شيء أكثر صحة.

ملحوظة: يمكنك أيضًا استخدام المزيد من درجة الحرارة لمعايرة المستشعر بمجرد وضعه في مادة أخرى تعرف نقطة غليانها مثل الأثير (35 درجة مئوية) أو البنتان (36 ، 1 درجة مئوية) أو الأسيتون (56 درجة مئوية) أو الإيثانول (78 ، 37 درجة مئوية) ، لكن تلك المواد المغلية تنتج غازات عالية الاشتعال! لذا لا تفعل ذلك!

ماء مغلي:

ضع بعض الماء في إناء وقم بتسخينه حتى يغلي (تتطور فقاعات الغاز والماء يهيج نفسه). اغمر المستشعر في مكان لا يلمس فيه أي شيء سوى الماء. انتظر بضع دقائق واقرأ شاشة LCD أو الشاشة التسلسلية

يجب أن تظل درجة الحرارة كما هي لمدة دقيقة واحدة على الأقل. إذا كان الأمر كذلك ، اكتب هذه القيمة. هذا هو الخاص بك: RawHigh قيمة.

حمام ثلاثي النقاط:

الآن خذ كوبًا كبيرًا (لا تحتاج إلى أي شيء ضخم ولا وعاء) واملأه حتى الحدود بمكعبات الثلج. حاول استخدام مكعبات ثلج صغيرة الحجم. الآن املأ 80٪ من الزجاج بالماء البارد. أعد ملئها بالثلج إذا حاولت الرافعة النزول.

الآن ضع المستشعر داخل شيء الماء / الجليد وانتظر دقيقة ونصف. اقرأ درجة الحرارة التي يجب أن تظل كما هي لمدة 30 ثانية على الأقل. إذا كان الأمر كذلك ، فقم بتدوينها ، إنها قيمة RawLow الخاصة بك.

الخطوة 3: استخدم القيم التي تحصل عليها في الطريق الصحيح

إذن ، لديك الآن بعض القيم المهمة:

  • RawHigh
  • RawLow
  • المرجع
  • مرجع منخفض

من الواضح أن القيمة المرجعية هي 99.9 درجة مئوية للماء المغلي (على ارتفاع 22 مترًا) ، و 0 درجة مئوية لحمام الجليد الذائب. الآن احسب نطاقات تلك القيم:

  • RawRange = RawHigh - RawLow
  • ReferenceRange = ReferenceHigh - ReferenceLow

أنت الآن جاهز لاستخدام هذا المستشعر في أي مشروع آخر مع التأكد من أنه سيعطيك القياس الصحيح. كيف؟ باستخدام القيمة التي حصلت عليها هنا في المشروع الذي ستقوم بإنشائه باستخدام هذا المستشعر.

في مشروعك المستقبلي ، سيتعين عليك استخدام القيم التي قرأتها في هذا وأقترح أن تفعل ذلك باستخدام نفس الأسماء التي استخدمتها هنا.

قم بتعريف المتغيرات قبل قسم void setup () تمامًا مثل هذا:

عائم RawHigh = 99.6 ؛ عائم RawLow = 0.5 ؛ عائم ReferenceHigh = 99.9 ؛ عائم ReferenceLow = 0 ؛ عائم RawRange = RawHigh - RawLow ؛ عائم ReferenceRange = ReferenceHigh - ReferenceLow ؛

بعد ذلك ، في كل مرة ستستخدم فيها المستشعر ، يمكنك استخدام الصيغة التالية لحساب القيمة المصححة:

float CorrectedValue = (((RawValue - RawLow) * ReferenceRange) / RawRange) + ReferenceLow ؛

من الواضح أن RawValue هي قراءة المستشعر.

هذا كل شيء!

أنت الآن تعرف كيفية معايرة مستشعر DS18B20 أو أي مستشعر آخر ستستخدمه! استمتع!

موصى به: