استخدام المقاومة الحرارية طريقة سهلة ورخيصة الثمن لقياس درجة الحرارة مثلها مثل استعمال الحساس LM35، ومن أجل قياس درجة الحرارة بدقة بإستعمال هذا النوع من المقاومات نحتاج إلى متحكم دقيق، لهذا سنستخدم في هذا المشروع الاردوينو من اجل قراءة درجة الحرارة وشاشة LCD من اجل عرضها.
العناصر التي نحتاجها:
- مقاومة حرارية 10 كيلوأوم.
- اردوينو.
- مقاومة 10 كيلوأوم.
- مقاومة متغيرة 10 كيلوأوم.
- شاشة كريستالية (LCD).
دائرة عرض درجة الحرارة بواسطة الاردوينو باستعمال مقاومة حرارية:
في هذه الدائرة قمنا بتوصيل المقاومة الحرارية مع المأخذ A0 للاردوينو، وقمنا بتوصيلها أيضا مع مقاومة بقيمة 10 كيلوأوم بغرض استعمالهما كمقسم للجهد، فبفضل هذا الأخير نستطيع تحديد قيمة الفولطية بين طرفي المقاومة الحرارية وهذا ما سيسمح لنا بمعرفة درجة الحرارة كما سنوضح من خلال هذه المقالة.
سنستعمل في هذا المشروع مقاومة حرارية من نوع NTC.
وبعملية حسابية بسيطة أخرى نجد أن قيمة المقاومة الحرارية تكون: Rt = R (Vin/Vout) - 1
ويتم حساب درجة الحرارة بواسطة العلاقة التالية: T = 1 / (A + B*ln(Rt) + C*ln (Rt)3 )
A، B وC عبارة عن قيم ثابثة يمكنك الحصول عليها من الداتاشيت، Rt كما نعلم هي قيمة المقاومة الحرارية وln يمثل اللوغاريتم النيبيري.
ومنه إذا أردنا معرفة درجة الحرارة فيكفينا معرفة قيمة المقاومة الحرارية، فأي تغير ولو طفيف في هذه الأخيرة يعني أن هناك تغير في درجة الحرارة.
المقاومة الحرارية:
العنصر الرئيسي في هذه الدائرة هو المقاومة الحرارية، والتي سنستعملها طبعا من أجل مراقبة التغيرات التي ستحدث في درجة الحرارة، المقاومة الحرارية عبارة عن مقاومة متغيرة تتغير قيمتها بتغير درجة الحرارة، هناك نوعان من المقاومات الحرارية:- المقاومة ذات معامل الحرارة السالب (NTC): تنخفض قيمة مقاومتها بارتفاع درجة الحرارة (علاقة عكسية)، تستعمل عادة كحساس لدرجة الحرارة.
- المقاومة ذات معامل الحرارة الموجب (PTC): ترتفع قيمة مقاومتها بارتفاع درجة الحرارة (علاقة طردية)، وتستعمل عادة لحماية الدائرة من ارتفاع درجة الحرارة.
سنستعمل في هذا المشروع مقاومة حرارية من نوع NTC.
مميزات المقاومة الحرارية:
تتميز المقاومات الحرارية بشدة التحمل، الدقة والاستقرار، وهي مصممة من اجل التحمل والعمل تحت ظروف قاسية أكثر من أي حساس آخر لدرجة الحرارة، إضافة إلى كل هذا تتميز أيضا بما يلي:
- صغيرة الحجم: مما يجعلها تشغل مكان صغير في الدائرة، كما تسمح لنا بتصميم دوائر مطبوعة صغيرة الحجم.
- زمن استجابة قصير: تتميز المقاومات الحرارية أيضا بسرعة استجابتها لتغيرات درجة الحرارة، وهذ طبعا مهم جدا خصوصا في التطبيقات التي تحتاج إلى معرفة التغيرات بشكل فوري
- السعر: طبعا هي أقل سعرا من أي مجس آخر للحرارة.
- الدقة: تتراوح دقة المقاومة الحرارية بين +/- 0.1 درجة مئوية و+/- 0.2 درجة مئوية.
حساب درجة الحرارة باستعمال المقاومة الحرارية:
باستعمال قانون مقسم الجهد نجد أن: Vout = (Vin * Rt) / (R + Rt)وبعملية حسابية بسيطة أخرى نجد أن قيمة المقاومة الحرارية تكون: Rt = R (Vin/Vout) - 1
ويتم حساب درجة الحرارة بواسطة العلاقة التالية: T = 1 / (A + B*ln(Rt) + C*ln (Rt)3 )
A، B وC عبارة عن قيم ثابثة يمكنك الحصول عليها من الداتاشيت، Rt كما نعلم هي قيمة المقاومة الحرارية وln يمثل اللوغاريتم النيبيري.
ومنه إذا أردنا معرفة درجة الحرارة فيكفينا معرفة قيمة المقاومة الحرارية، فأي تغير ولو طفيف في هذه الأخيرة يعني أن هناك تغير في درجة الحرارة.
كود البرنامج:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <math.h> | |
#include<LiquidCrystal.h> | |
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); | |
float A = 1.009249522e-03, B = 2.378405444e-04, C = 2.019202697e-07; | |
float T, logRt, Tf, Tc; | |
float Thermistor(int Vo) { | |
logRt = log(10000.0 * ((1024.0 / Vo - 1))); | |
T = (1.0 / (A + B * logRt + C * logRt * logRt * logRt));// Get the temperature value in Kelvin | |
Tc = T - 273.15; // Convert Kelvin to Celcius | |
Tf = (Tc * 1.8) + 32.0; // Convert Kelvin to Fahrenheit | |
return T; | |
} | |
void setup() { | |
lcd.begin(16, 2); | |
lcd.begin(16, 2); | |
lcd.setCursor(0, 0); | |
lcd.print(" Digital "); | |
lcd.setCursor(0, 1); | |
lcd.print(" Thermometer "); | |
delay(2000); | |
lcd.clear(); | |
} | |
void loop() | |
{ | |
lcd.setCursor(0, 0); | |
lcd.print("Temp:"); | |
lcd.print((Thermistor(analogRead(0)))); | |
lcd.print("k "); | |
lcd.setCursor(0, 1); | |
lcd.print((Tc)); | |
lcd.print("C ;"); | |
lcd.setCursor(9, 1); | |
lcd.print((Tf)); | |
lcd.print("F"); | |
delay(800); | |
} |
وبهذا نصل إلى ختام هذه المقالة، نتمنى أن تكون قد أفادتكم، إن كانت لا تزال لديك بعض التساؤلات أو هناك بعض الملاحظات التي ترغب في إضافتها لا تتردد بإخبارنا في خانة التعليقات في الأسفل، لا تنسى كذلك إن أعجبك الموضوع أن تقوم بمشاركته مع أصدقائك.
إرسال تعليق