 |
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:
|
|
28-11-2019, 10:11 PM
المشاركة 29
|
|
مقياس درجة حرارة (ثرموستات) رقمى باستخدام الاردوينو وحساس درجة الحرارة LM35 :

مقاييس درجة الحرارة (الثرموستاتات) هي أجهزة مفيدة تستخدم منذ وقت طويل لقياس درجة الحرارة. في هذا المشروع ، نقوم بعمل مقياس حرارة رقمي قائم على Arduino لعرض درجات الحرارة المحيطة الحالية وتغيرات درجة الحرارة على وحدة LCD . يمكن وضعه في المنازل والمكاتب والمصانع وغيرها لقياس درجة الحرارة. يعتمد هذا المشروع على Arduino الذى يتصل هنا بجهاز استشعار درجة الحرارة LM35 ووحدة عرض 16x2 . يمكننا تقسيم مقياس الحرارة هذا المستند إلى الاردوينو إلى ثلاثة أقسام – القسم الأول يستشعر درجة الحرارة باستخدام مستشعر درجة الحرارة LM 35 ، أما القسم الثاني فيحول قيمة درجة الحرارة إلى أرقام (أعداد) مناسبة لمقياس بالدرجة المئوية يتم بواسطة Arduino ، ويعرض الجزء الأخير من النظام درجة الحرارة على LCD

يتم استخدام Arduino Uno للتحكم في العملية برمتها. يتم استخدام مستشعر درجة الحرارة LM35 لاستشعار درجة حرارة البيئة والذى يعطي 10mV على طرف الخرج لكل تغييرفى درجة الحرارة بمقدار واحد درجة مئوية . يمكنك التحقق من ذلك بسهولة باستخدام الفولتميتر عن طريق توصيل الجهد Vcc إلى الطرف 1 والأرضى إلى الطرف 3 ويكون جهد الخرج على الطرف 2 من المستشعر LM35. على سبيل المثال ، إذا كان جهد الخرج لمستشعر LM35 هو 250m volt ، فهذا يعني أن درجة الحرارة حوالي 25 درجة مئوية (بالقسمة على 10 ملى فولت كل درجة مئوية) .

يقوم Arduino بقراءة جهد خرج مستشعر درجة الحرارة باستخدام الطرف التناظرى A0 ويقوم بحساب لتحويل هذه القيمة التناظرية إلى قيمة رقمية لدرجة الحرارة الحالية. بعد العمليات الحسابية ، يرسل الاردوينو هذه الحسابات أو درجة الحرارة إلى وحدة شاشة LCD مقاس 16x2 باستخدام الأوامر المناسبة لشاشات الكريستال السائل LCD .
الدائرة الكهربية :

حسابات التحويل من قيمة التحويل ADC العددية (0-1023) إلى درجة حرارة مئوية :
• نحصل على نتيجة التحويل ADC كقيمة لعدد صحيح يقع بين (0-1023) نقوم بتخزينه فى المتغير reading
كود:
int reading=analogRead(sensor);
• نحصل على جهد الدخل التناظرى بضرب القيمة السابقة فى نسبة التحويل (5/1023) ، ويكون بالفولت ، نحوله إلى ملى فولت بضرب النتيجة فى (1000) لتكون (5/1023) * 1000 ( أصبح لدينا كسور لذلك سوف نخزنها فى متغير من نوع float .
• حساس درجة الحرارة LM35 يعطى 10 ملى فولت لكل درجة مئوية ، للحصول على قيمة درجة الحرارة بالدرجات المئوية نقسم النتيجة السابقة على 10 لنحصل على :
كود:
float temperature=reading*(5.0/1023.0)*100;
البرنامج :
كود:
/*-----------Arduino LM35 Code-------------*/
/*-----------Digital Thermometer Using Arduino-------------*/
#include<LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // REGISTER SELECT PIN,ENABLE PIN,D4 PIN,D5 PIN, D6 PIN, D7 PIN
#define sensor A0
byte degree[8] =
{
0b00011,
0b00011,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000
};
void setup()
{
lcd.begin(16,2);
lcd.createChar(1, degree);
lcd.setCursor(0,0);
lcd.print(" Digital ");
lcd.setCursor(0,1);
lcd.print(" Thermometer ");
delay(4000);
lcd.clear();
}
void loop()
{
/*---------Temperature-------*/
int reading=analogRead(sensor);
float temperature=reading*(5.0/1023.0)*100;
delay(10);
/*------Display Result------*/
lcd.setCursor(2,0);
lcd.print("Temperature");
lcd.setCursor(4,1);
lcd.print(temperature);
lcd.write(1);
lcd.print("C");
delay(1000);
}
|