درس إحترافي عدد 4: حسّاس للحرارة (Capteur de température TMP36)

قد نحتاج في لأحد مشاريعنا إلى قيس حرارة الغرفة أو حرارة طقس …
في هذا الدرس سنتعرّف على مكوّن
حسّاس للحرارة ( Capteur de température TMP36)

حسّاس للحرارة TMP36وهو مكوّن إلكتروني ذات دقّة كبيرة و يعمل بالتيّار كهربائي مستمر منخفض الجهد (حوالي من 2.75 فولط إلى 5.5 فولط )
يمكن قيس دراجة حرارة من -40° إلى 125° بخطأ ±1°
يوفّر تيّار كهربائي متناسب مع الحرارة فـ 0.01 فولط كل درجة حرارة 10 mV/°C
يوفّر كبداية ( -40°) قيمة أصليّة 0.1 فولط
يحتوي على 3 أقطاب (قطب يركّب في الموجب و قطب يركّب في السالب و قطب لإخراج المعلومة

شاهد هذا الفيديو

الدّارة الكهربائيّة

في ما يلي الدّارة الكهربائيّة متكوّنة من لوحة أردوينو و حسّاس للحرارة و لوحة تجارب
تمّ ربط القطب الخاص بالإخراج معلومة بالمنفذ التماثلي و فولطمتر لقيس الجهد المتوفّر من حسّاس للحرارة كم هو مبيّن في الرسمة التاليّة

قيمة درجة الحرارة

توفّر لوحة أردوينو في المنفذ التماثلي من 0 إلى 1024 إذا تقبّل تيّار كهربائي من 0 إلى 5 فولط
نعتبر An قراءة متوفّرة من لوحة الأردوينو
لمعرفة قيمة الجهد بالفولط بالنسبة 1 تماثلي An*5/1024
كنقطة بداية بما أنّ الجهد في دراجة حرارة -40° تساوي 0.1 فولط
الجهد المتوفّر

(An*5/1024)-0.1


بما أنّ 0.01 فولط كل درجة
ما يعادلها

(An*5/1024-0.1)/0.01
ما يعادلها
(An*5/1024-0.1)*100


بما أنّ أول دراجة حرارة -40° تساوي
C=-40+(An*5/1024-0.1)*100

كود البرنامج

int An;
float C;
void setup()
{
An = 0;
C = 0;
Serial.begin(9600);
}
void loop()
{
An = analogRead(A3);

C=-40.0+(An*5.0/1023.0-0.1)100.0;
Serial.println(C);
delay(1000);
}

ملاحظة فقط
إن C عدد عشري وهذ العمليّة C=-40+(An*5/1024-0.1)*100 تحتوي على إعداد صحيحة (40-و5و1024و100) و هذه حسب لغة البرمجة لا تستقيم يجب تحويلها إلى أعداد عشرية و تصبح (40.0-و5.0و1024.0و100.0)
و تصبح على هذا الشكل

C=-40.0+(An*5.0/1023.0-0.1)*100.0;

هذا البرمجة السابقة تقيس درجة الحرارة ثم تظهر على شاشة الحاسوب قيمتها

شاهد هذا الفيديو

يمكنك مشاهدة التمرين على موقع Tinkercad

تمرين

إضافة للدارة السّابقة 4 صمامات مشعّة (أزرق و أخضر و برتقالي و أحمر) لقيس حرارة الطقس
صمام الأزرق (طقس بارد) يضيء فقط عندما تكون الحرارة أقل من 20°
صمام الأخضر(طقس معتدل) يضيء فقط عندما تكون الحرارة أكبر أو مساوية 20°وأقل من 30°
صمام البرتقالي(طقس حار) يضيء فقط عندما تكون الحرارة أكبر أو مساوية 30°وأقل من 40°
صمام الأحمر(طقس حار) يضيء فقط عندما تكون الحرارة أكبر أو مساوية 40°

في الدارة الكهربائيّة التالية إستعمنا
– منفذ رفم 8 للصمام الأزرق
– منفذ رفم 9 للصمام الأخضر
– منفذ رفم 10 للصمام البرتقالي
– منفذ رفم 11 للصمام الأحمر
و نفس المنفذ لإدخال المعلومة َ A3

البرمجة

و هذا كود البرمجة للتمرين

int An;
float C;
void setup()
{
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
An = 0;
C = 0;
Serial.begin(9600);
}
void loop()
{
An = analogRead(A3);
C=-40.0+(An5.0/1023.0-0.1)100.0;
Serial.println(C);
if (C< 20) {

digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
}
else if(C>= 20 && C< 30 ){
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
} else if(C>= 30 && C< 40 ){
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
}

else{
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
}
}

شرح للأكواد

int An;

تعيين متغيّر An كعدد صحيح

float C;

تعيين متغّرC من نوع عشري

void setup(){

بداية الإعدادات

pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);

تعيين المنفذ 8 و 9 و 10 و 11 منفذ رقمي لإخراج التيّار الكهربائي

An = 0;

تحديد An قيمته الأصليّة 0

C = 0;

تحديد C قيمته الأصليّة 0

Serial.begin(9600);

تهيئة لوحة أردوينة بإرسال معطيات للحاسوب على منفذ التسلسل

}

نهاية الإعدادات

void loop()

البرمجة الرئيسيّة وهي متكرّرة حسب سرعة أردوينو و البرنامج

{

بداية البرمجة

An = analogRead(A3);

تعيين قيمة An قيمة المنفذ التماثلي A3

C=-40.0+(An5.0/1023.0-0.1)*100.0;

إحتساب الحرارة وقع تفسيرها سابقا

Serial.println(C);

كتابة على شاشة الحاسوب قيمة الحرارة C

if (C< 20) {

إذا كانت C أصغر من 20 نفّذ

digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);

جعل المنفذ 8 (صمام مشع الأزرق) يحتوي على تيّار كهربائي و البقية المنافذ (8 و 9 و10و11) لا تحتوي

}

نهاية التنفيذ

else if(C>= 20 && C< 30 ){

و إذا كانت C أكبر أو يساوي 20 و أصغر من 30 نفّذ

digitalWrite(8,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(11,LOW);

جعل المنفذ 9 (صمام مشع الأخضر) يحتوي على تيّار كهربائي و البقية المنافذ (8 و10و11) لا تحتوي

}

نهاية التنفيذ

else if(C>= 30 && C< 40 ){

و إذا كانت C أكبر أو يساوي 30 و أصغر من 40 نفّذ

digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);

جعل المنفذ 10 (صمام مشع البرتقالي) يحتوي على تيّار كهربائي و البقية المنافذ (8 و 9 و11) لا تحتوي

}

نهاية التنفيذ

else{

إذا كانت الشروط السّابقة غير متوفّرة نفّذ هذه الأوامر

digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);

جعل المنفذ 11 (صمام مشع الأحمر) يحتوي على تيّار كهربائي و البقية المنافذ (8 و 9 و10) لا تحتوي

}

نهاية التنفيذ else

}

نهاية البرمجة

أكثر توضيح حول التمرين شاهد هذا الفيدية

أي إشكالات أو تساءل حول هذا الدرس الرجاء إضغط هنا

تمرين خاص

إنجاز دارة كهربائيّة تحتوي لوحة أردوينو و لوحة تجارب و مقاوم كربوني وحسّاس للحرارة و شاشة LCD و إضافات أخرى
ىتظهرعلى شاشة LCD قيمة الحرارة و إذا تجاوزت الحرارة أكثر من 100° يضئء الصمام المشع


أوّل من يرسل إنجازهذا التمرين صحيح سوف تنشر في هذه المقالة مع ذكر إسمه مع حسابه على الفيسبوك
للنشر التمارين