فكرة إنشاء ثرموستات باستخدام المقاومة السالبة NTC والمحول ADC ووحدة العرض LCD مع المترجم CCS C

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

فكرة إنشاء ثرموستات باستخدام المقاومة السالبة NTC والمحول ADC ووحدة العرض LCD مع المترجم CCS C

مُساهمة من طرف Admin في السبت مايو 02, 2015 10:30 am

فكرة إنشاء ثرموستات باستخدام المقاومة السالبة NTC والمحول ADC ووحدة العرض LCD مع المترجم CCS C
المقاومة السالبة المستخدم من النوع NTC / NTSA0WB203 وهذا النوع موجود فى برنامج ISIS .
هذه المقاومة لها معامل أو ثابت يسمى بيتا “β = 4050” ، ولها مقاومة قيمتها 20 كيلوأوم عند درجة حرارة 25 درجة مئوية .

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


يتم تشكيل مقسم جهد من مصدر جهد (بطارية ، على سبيل المثال ) والمقاومة السالبة NTC ومقاومة ثابتة R1 بقية 10 كيلوأوم ، وحساب درجة الحرارة من المعادلات التالية :




الكود:

VT=VB * RT/R1+RT
VB*RT = VT*R1 + VT * RT
VT*R1= RT(VB-VT)
RT = VT*R1/(VB-VT) = 10000VT/(5-VT)

البرنامج :


الكود:


#include "16f877A.h"
#device adc=10
#use delay(clock=4000000)
#include <math.h>                //Needed for mathematical calculations
#include <lcd.c>

void main() {

  float tv,tr,temp,y;                //Equation variables
  int16 value;
 
  lcd_init();
 
  setup_port_a( ALL_ANALOG );
  setup_adc( ADC_CLOCK_INTERNAL );
  set_adc_channel( 0 );
  delay_us(10);
 
  do {
      value = Read_ADC();
     
      tv = 5.0 * value / 1024.0;
     
      tr = tv * 10000.0 / (5.0 - tv);
     
      y = log(tr/20000.0);
      y = (1.0/298.15) + (y *(1.0/4050.0));
     
      temp=1.0/y;
      temp = temp -273.15;
     
      printf(lcd_putc,"\nT = %04.2fC", temp);
  } while (TRUE);
}


طريقة التنفيذ وحل المعادلات :
الخطوة الأولى :
تحويل نتيجة التحويل من تناظرى إلى رقمى ADC إلى الجهد المعبر عن درجة الحرارة tv بضرب القراءةvalue فى “5” (جهد المرجع) والقسمة على أقصى قيمة تحويل “1024” أو مباشرة بما يعرف بدقة المحول 0.0048828125 5/1024 = لكننا سوف نترك ذلك للمترجم يقوم به نيابة عنا :

الكود:


value = Read_ADC();
 tv = 5.0 * value / 1024.0;


ملحوظة :
تم تعريف المتغير value بالنوع int16 ليستوعب القيمة 1024 ، فى حين تم تعريف متغير نتيجة عملية التحويل السابقة بالنوع float حتى يستوعب النتيجة والتى تحتوى على عدد صحيح كسر عشرى .

الخطوة الثانية :
إيجاد قيمة المقاومة المعتمدة على الحرارة tr بمعلومية الجهد المعبر عن درجة حرارة tv كما هو موضح بالمعادلة :

الكود:

RT = 10000VT/(5-VT)

كما يلى :

الكود:

tr = tv * 10000.0 / (5.0 – tv) ;


الخطوة الثالثة :
إيجاد درجة الحرارة بمعلومية المقاومة المعتمدة على الحرارة tr كما هو موضح بالمعادلة :



حل هذه المعادلة يتم على مراحل :
إيجاد قيمة اللوغاريتم :

الكود:

y = log(tr / 20000.0);

ملحوظة :
تم إدراج مكتبة الدوال الرياضية فى مقدمة البرنامج لحل هذه المعادلة :

الكود:

#include <math.h>

إيجاد مقام الحد الأول بقسمة y على 4050 وجمع الكسر 1/298.15 كما يلى :
y = (1.0/289.15) + (y * ( 1.0 / 4050.0) ) ;
إيجاد نتيجة الحد الأول :

الكود:

temp = 1.0 / y ;

أخيرا أيجاد درجة الحرارة بطرح 273.15 من الحد الأول :


الكود:

temp = temp – 273.15 ;


عرض النتيجة على شاشة LCD :

الكود:

printf(lcd_putc , “\nT = %04.2fC”, temp);

Admin
Admin

عدد المساهمات : 985
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى