فكرة إنشاء ثرموستات باستخدام المقاومة السالبة NTC والمحول ADC ووحدة العرض LCD مع المترجم CCS C
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS - C
صفحة 1 من اصل 1
فكرة إنشاء ثرموستات باستخدام المقاومة السالبة NTC والمحول ADC ووحدة العرض LCD مع المترجم CCS C
فكرة إنشاء ثرموستات باستخدام المقاومة السالبة NTC والمحول ADC ووحدة العرض LCD مع المترجم CCS C
المقاومة السالبة المستخدم من النوع NTC / NTSA0WB203 وهذا النوع موجود فى برنامج ISIS .
هذه المقاومة لها معامل أو ثابت يسمى بيتا “β = 4050” ، ولها مقاومة قيمتها 20 كيلوأوم عند درجة حرارة 25 درجة مئوية .
الدائرة الكهربية :
يتم تشكيل مقسم جهد من مصدر جهد (بطارية ، على سبيل المثال ) والمقاومة السالبة NTC ومقاومة ثابتة R1 بقية 10 كيلوأوم ، وحساب درجة الحرارة من المعادلات التالية :
البرنامج :
طريقة التنفيذ وحل المعادلات :
الخطوة الأولى :
تحويل نتيجة التحويل من تناظرى إلى رقمى ADC إلى الجهد المعبر عن درجة الحرارة tv بضرب القراءةvalue فى “5” (جهد المرجع) والقسمة على أقصى قيمة تحويل “1024” أو مباشرة بما يعرف بدقة المحول 0.0048828125 5/1024 = لكننا سوف نترك ذلك للمترجم يقوم به نيابة عنا :
ملحوظة :
تم تعريف المتغير value بالنوع int16 ليستوعب القيمة 1024 ، فى حين تم تعريف متغير نتيجة عملية التحويل السابقة بالنوع float حتى يستوعب النتيجة والتى تحتوى على عدد صحيح كسر عشرى .
الخطوة الثانية :
إيجاد قيمة المقاومة المعتمدة على الحرارة tr بمعلومية الجهد المعبر عن درجة حرارة tv كما هو موضح بالمعادلة :
كما يلى :
الخطوة الثالثة :
إيجاد درجة الحرارة بمعلومية المقاومة المعتمدة على الحرارة tr كما هو موضح بالمعادلة :
حل هذه المعادلة يتم على مراحل :
إيجاد قيمة اللوغاريتم :
ملحوظة :
تم إدراج مكتبة الدوال الرياضية فى مقدمة البرنامج لحل هذه المعادلة :
إيجاد مقام الحد الأول بقسمة y على 4050 وجمع الكسر 1/298.15 كما يلى :
y = (1.0/289.15) + (y * ( 1.0 / 4050.0) ) ;
إيجاد نتيجة الحد الأول :
أخيرا أيجاد درجة الحرارة بطرح 273.15 من الحد الأول :
عرض النتيجة على شاشة LCD :
المقاومة السالبة المستخدم من النوع 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);
مواضيع مماثلة
» تدريبات على وحدات العرض السفن سجمنت 7-Segmentمع المترجم CCS C التدريب الأول :
» تدريب : برنامج إنشاء ساعة بسيطة قابلة للإعداد (الضبط) باستخدام وحدة العرض LCD :
» التدريب الثالث : إنشاء عداد بمفتاح ضاعط أو بحساس لعد الأشياء من “0” إلى “99” باستخدم وحدتى عرض سفن سيجمنت مع استخدام ترانزستورات ومع المترجم CCS C .
» مشروع متحكم رقمى فى درجة الحرارة السالبة والموجبة بالحساس DS18B20 والميكروكونترولر 16F628 والسفن سيجمنت مع المترجم CCS C :
» تدريب : برنامج بسيط لعداد تصاعدى تنازلى باستخدام وحدة العرض LCD :
» تدريب : برنامج إنشاء ساعة بسيطة قابلة للإعداد (الضبط) باستخدام وحدة العرض LCD :
» التدريب الثالث : إنشاء عداد بمفتاح ضاعط أو بحساس لعد الأشياء من “0” إلى “99” باستخدم وحدتى عرض سفن سيجمنت مع استخدام ترانزستورات ومع المترجم CCS C .
» مشروع متحكم رقمى فى درجة الحرارة السالبة والموجبة بالحساس DS18B20 والميكروكونترولر 16F628 والسفن سيجمنت مع المترجم CCS C :
» تدريب : برنامج بسيط لعداد تصاعدى تنازلى باستخدام وحدة العرض LCD :
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS - C
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى