كود أردوينو لمستشعر درجة الحرارة LM75A

كود أردوينو لمستشعر درجة الحرارة LM75A

في هذا الدرس التعليمي سنتعلَّم كيفية استخدام حساس الحرارة LM75A مع لوحة أردوينو لقياس درجة الحرارة بالدرجات المئوية والفهرنهايت. يتواصل حساس LM75A عبر بروتوكول I2C، مما يجعل دمجه مع لوحات أردوينو سهلاً. بنهاية هذا الدرس سيكون لديك إعداد عملي يعرض قراءات درجة الحرارة كل ثانية.

للاستفادة القصوى من هذا الدرس، أوصي بمشاهدة الفيديو المرافق الذي يقدّم إرشادًا بصريًا حول الإعداد وتنفيذ الشيفرة (في الفيديو عند 20:29).

شرح الأجهزة

مستشعر درجة الحرارة LM75A هو مستشعر رقمي قادر على قياس درجة الحرارة المحيطة بدقة عالية. يعمل عبر بروتوكول الاتصال I2C، مما يسمح بتوصيل عدة مستشعرات على نفس الناقل. يتميز المستشعر بخاصية الإيقاف عند ارتفاع درجة الحرارة، والتي يمكن أن تساعد في توفير الطاقة عندما لا يكون قيد الاستخدام.

عادةً ما يتوفر هذا المستشعر إما كشريحة مستقلة أو كوحدة لوحة دوائر مطبوعة (PCB). تتضمن الوحدة دبابيس أساسية مثل VCC وGND وSDA وSCL اللازمة للاتصال مع لوحة Arduino. عند استخدام هذا المستشعر، من المهم التأكد من التوصيلات الصحيحة واختيار عنوان I2C الصحيح للتواصل.

تفاصيل ورقة البيانات

المصنّعإن إكس بي / تكساس إنسترومنتس
رقم القطعةLM75A
جهد المنطق/الإدخال والإخراج2.7 فولت إلى 5.5 فولت
جهد الإمداد2.7 V إلى 5.5 V
تيار الخرج (لكل قناة)3 ميلي أمبير
التيار الأقصى (لكل قناة)10 ميلي أمبير
إرشادات تردد PWMغير قابل للتطبيق
عتبات الإدخال المنطقية0.3 VCC (مرتفع)، 0.2 VCC (منخفض)
هبوط الجهد / Rمصرف-المصدر (عند التشغيل)/ التشبع0.5 فولت كحد أقصى
الحدود الحرارية-55 °C إلى +125 °C
حزمةSOIC-8 / TSSOP
ملاحظات / متغيراتمتوفر بعناوين I2C مختلفة

  • تأكد من تعيين عنوان I2C الصحيح في الكود الخاص بك.
  • استخدم مقاومات سحب على خطوط SDA وSCL إذا لزم الأمر.
  • زوّد المستشعر بجهد ثابت (2.7 فولت إلى 5.5 فولت).
  • راقب حدوث ارتفاع في درجة الحرارة؛ يمكن للمستشعر العمل حتى 125 °C.
  • عامل المستشعر بلطف لتجنب التلف أثناء التركيب.

تعليمات الأسلاك

Arduino_wiring_LM75A_bb

لتوصيل حساس درجة الحرارة LM75A بـ Arduino، ابدأ بتوصيل دبوس الأرضي (GND) للحساس بدبوس الأرضي (GND) في لوحة Arduino. بعد ذلك، وصل دبوس VCC للحساس بدبوس 5V على الـ Arduino. لأجل اتصال I2C، قم بتوصيل دبوس SDA للحساس (عادةً ما يكون محددًا باللون الأخضر) بدبوس A4 على الـ Arduino، ودبوس SCL (عادةً ما يكون محددًا باللون الأزرق) بدبوس A5. إذا كنت تستخدم طراز Arduino مختلفًا، فتأكد من توصيلك إلى دبابيس I2C الصحيحة؛ على سبيل المثال، في Arduino Mega يتصل SDA بالدبوس 20 وSCL بالدبوس 21.

إذا كنت تستخدم LM75A كرقاقة عارية بدلاً من وحدة، فتأكد من توصيل الدبابيس المقابلة بشكل صحيح: الدبوس الأول يتصل بـ A4 (SDA)، الدبوس الثاني يتصل بـ A5 (SCL)، الدبوس الرابع يتصل بالأرضي، والدبوس الثامن يتصل بـ VCC. اترك الدبابيس الأخرى غير موصولة. يضمن هذا الإعداد أن المستشعر يمكنه التواصل بشكل صحيح مع الأردوينو.

أمثلة على الشيفرة وشرح تفصيلي

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

LM75A lm75a_sensor(false, false, false);

ينشئ هذا السطر مثيلاً من فئة LM75A، ويمرر معاملات تمثل حالة دبابيس A0 وA1 وA2. يمكن تعيين الحالة الافتراضية إلىfalseإذا لم تُستخدم هذه الدبابيس.

في الـsetup()في الدالة نهيئ الاتصال التسلسلي بمعدل 9600 باود، وهو أمر بالغ الأهمية لعرض قراءات درجة الحرارة على المراقب التسلسلي.

void setup(void) {
  Serial.begin(9600);
  Serial.println("Robojax LM75A Test");
}

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

في الـloop()في الدالة، نستخرج درجة الحرارة بالدرجات المئوية ونتحقق من وجود أية أخطاء. إذا كانت درجة الحرارة صالحة، نطبعها إلى جانب ما يعادلها بالفهرنهايت.

float temperature_in_degrees = lm75a_sensor.getTemperatureInDegrees();
if (temperature_in_degrees == INVALID_LM75A_TEMPERATURE) {
  Serial.println("Error while getting temperature");
} else {
  Serial.print("Temperature: ");
  Serial.print(temperature_in_degrees);
  Serial.print(" degrees (");
  Serial.print(LM75A::degreesToFahrenheit(temperature_in_degrees));
  Serial.println(" Fahrenheit)");
}

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

للحصول على الشيفرة الكاملة، راجع قسم التحميل أسفل المقال.

عرض توضيحي / ما الذي تتوقعه

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

الصور

LM75a-1
LM75a-1
LM75a-3
LM75a-3
LM75a-12
LM75a-12
Arduino_wiring_LM75A_bb
Arduino_wiring_LM75A_bb
127-Arduino code for an LM75A temperature sensor
اللغة: C++
تم النسخ!

الموارد والمراجع

لا توجد موارد حتى الآن.

ملفات📁

Fritzing File