قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 12-03-2012, 05:22 PM المشاركة 1   
افتراضي قياس درجة الحرارة بدقة باستخدام الثرمستور Thermistor والميكروكونترولر PIC16F876A : Twitter FaceBook Google+



قياس درجة الحرارة بدقة باستخدام الثرمستور Thermistor والميكروكونترولر PIC16F876A :
يوجدالعديد من أنواع الثرمستور .النوع الذى سوف يتم به المشروع له الخواص المبينة بالمنحنى التالى :





من المخطط السابق نجد أن :



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

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 12-03-2012, 05:25 PM المشاركة 2   
افتراضي


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






اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 12-03-2012, 05:29 PM المشاركة 3   
افتراضي


مبدأ العمل :

يتم تحويل الجهد بين طرفى الثرمستور إلى الشكل الرقمى ويتم حساب مقاومة الثرمستور RT باستخدام العلاقة :




حيث Vt الجهد بين طرفى الثرمستور , و Vs=5V , و Rs=10KΩ .

ثم بعد ذلك يتم حساب درجة الحرارة من العلاقة :






حيث Tt هى درجة الحرارة المقاسة بالكلفن K , و Rt هى مقاومة الثرمستور بالأوم Ω , و =4400 , و T25=298.15 K , و R25=10KΩ , بالتعويض نحصل على :






ولدرجة الحرارة المئوية نحصل على :



بمعرفة مقاومة الثرمستور Rt يمكننا من العلاقة السابقة حساب درجة الحرارة المقاسة .

الوصف العام للبرنامج :
1- إعداد وتهيئة وحدة العرض LCD لبدء العمل .
2- إعدادات الميكروكونترولر .
3- إنشاء حلقة غير منتهية تحتوى على :
أ‌- قراءة الجهد بين طرفى الثرمستور وتحويله إلى أرقام .
ب‌- تحويل الأرقام الناتجة إلى جهد Vt .
ت‌- حساب مقاومة الثرمستور Rt من العلاقات السابقة .
ث‌- حساب درجة الحرارة Tt من العلاقات السابقة .
ج‌- عرض درجة الحرارة على وحدة العرض .
ح‌- الانتظار واحد ثانية لتحديث البيانات .
خ‌- الإعادة بصفة مستمرة لتحديث البيانات .


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 12-03-2012, 05:33 PM المشاركة 4   
افتراضي


البرنامج :












النتائج :


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 12-03-2012, 05:35 PM المشاركة 5   
افتراضي


كود:
 
/* This project measures the temperature with a Thermistor and
* then displays on a LCD 
Eng.F.Abdelaziz
 http://www.eeecb.com/vb/index.php
*/
// LCD module connections
sbit LCD_RS at RC0_bit;
sbit LCD_EN at RC1_bit;
sbit LCD_D4 at RC4_bit;
sbit LCD_D5 at RC5_bit;
sbit LCD_D6 at RC6_bit;
sbit LCD_D7 at RC7_bit;
sbit LCD_RS_Direction at TRISC0_bit;
sbit LCD_EN_Direction at TRISC1_bit;
sbit LCD_D4_Direction at TRISC4_bit;
sbit LCD_D5_Direction at TRISC5_bit;
sbit LCD_D6_Direction at TRISC6_bit;
sbit LCD_D7_Direction at TRISC7_bit;
// End LCD module connections
float Vt,Rt,temp,y; //  Floating-point Types
char temperature[4] ;// string array
void main()
{
/* Initialize the microcontroller */
TRISA=0xFF; //configure PORTA as Input direction
TRISB=0;  //configure PORTB as Output direction
TRISC=0;  //configure PORTD as Output direction
PORTA=0; //Clear
PORTB=0;
PORTC=0;
//===============================================
  Lcd_Init();                          // Initialize LCD
  Lcd_Cmd(_LCD_CLEAR);                // CLEAR display
  Lcd_Cmd(_LCD_CURSOR_OFF);          // Cursor off
  
  Lcd_Out(1,1,"Thermistor TEMP.");
  
while(1) {
Vt = ADC_Read(0);   // Get 10-bit results of AD conversion any number from 0-1023
Vt = Vt *5 /1024 ; // change to volt
/* Calculate thermistor resistance Rt :   Rt=Vt * [Rs/ (Vs-Vt) */
Rt = Vt*10000.0/(5.0-Vt) ; // Change to Resistance
/* Calculate temperature temp :Change to temperaure in steps */
y = log(0.0001*Rt) ;
y = 3.354/1000+y*2.272/10000;
y=1/y ;
temp = y-273.15 ;// Change from K to C
ByteToStr(temp,temperature); // Change to string
   Lcd_Out(2,6,temperature); // Display
   Lcd_Chr(2, 9, 223);// Add degree character
   Lcd_Chr(2, 10, 'C');// Add letter "c"
delay_ms(2000);
//==============
}
}


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 12-03-2012, 05:39 PM المشاركة 6   
افتراضي


النتائج :










الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 12-03-2012, 05:43 PM المشاركة 7   
افتراضي


الملفات الكاملة على الرابط :

http://www.eeecb.com/vb/showthread.php?p=2608&posted=1#post2608

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 07:20 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025