منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

تدريب : استخدام المحول ADC لقياس درجة الحرارة بالحساس LM35 مع المترجم CCS C :

اذهب الى الأسفل

تدريب : استخدام المحول ADC لقياس درجة الحرارة بالحساس LM35 مع المترجم CCS C  : Empty تدريب : استخدام المحول ADC لقياس درجة الحرارة بالحساس LM35 مع المترجم CCS C :

مُساهمة من طرف Admin السبت أبريل 25, 2015 10:49 pm

تدريب : استخدام المحول ADC لقياس درجة الحرارة بالحساس LM35 مع المترجم CCS C :
البرنامج :

الكود:


/*
PIC16F877A and LM35 Based Temperature Monitor

*/

#include <16F877A.h>
#device adc=10    // Set ADC resolution to 10Bit
#use delay(clock=4000000)
#include "lcd.c"

#define  LOAD  PIN_B7
#define  THRES 30.0    // load switching threshold in Celsius

int16 digital_reading;  // ADC resolution is 10Bit, an 8Bit integer is not enough to hold the reading
float temp;

void main()
{
  /* 1- ADC Initialization */
  setup_adc(ADC_CLOCK_INTERNAL); // initialize ADC with a sampling rate of Crystal/4 MHz
  setup_adc_ports(RA0_ANALOG);  // set PIN_A0 as analog input channel
  set_adc_channel(0);            // point ADC to channel 0 for ADC reading
  delay_ms(1);                  // ADC module is slow, needs some time to adjust.
   
  /* 2- Peripherals Configurations */
  lcd_init();                  // Turn LCD ON, along with other initialization commands
 
  output_low(LOAD);            // the load is initially OFF
  lcd_gotoxy(1,1);              // point LCD cursor to col1 row1
  lcd_putc("Temperature is:");  // print on LCD
   
  while(TRUE) // infinite loop
  {
      digital_reading = read_adc();    // capture current temperature reading
      delay_us(100);                  // 0.1ms delay for ADC stabilization
     
      temp = digital_reading * 0.4883; // convert reading to Celsius
     
      lcd_gotoxy(1,2);                // point LCD cursor to col1 row2
      printf(lcd_putc,"%2.1f C",temp); // print value on LCD,format % : 2digits.1digit 
     
      if(temp>=THRES)  output_high(LOAD);  // Control Load
      else  output_low(LOAD);
     
      delay_ms(1000);  // 1 second delay between readings
  }
}
 

تدريب : استخدام المحول ADC لقياس درجة الحرارة بالحساس LM35 مع المترجم CCS C  : 215



Admin
Admin

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

https://fathallaabdelaziz.forumarabia.com

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

تدريب : استخدام المحول ADC لقياس درجة الحرارة بالحساس LM35 مع المترجم CCS C  : Empty مفاهيم استخدام الميكروكونترولر PIC والحساس LM35 لقياس درجة الحرارة :

مُساهمة من طرف Admin السبت أبريل 25, 2015 11:36 pm

مفاهيم استخدام الميكروكونترولر PIC والحساس LM35 لقياس درجة الحرارة :
المحول من تناظرى إلى رقمى ADC هو وحدة (موديول) داخلى يستخدم لقراءة الجهود التناظرية وتحويلها إلى تمثيل رقمى ، وسوف نستخدم الميكروكونترولر PIC16F877A والذى يمتلك وحدة تحويل ADC بدقة 10 بت . هذا المحول له 8 قنوات هى AN0-AN7 وهو ما يسمح للمحول بالعمل بالانتخاب مع أى من هذه القنوات فى لحظة ما .
أحد البارامترات الهامة للمحول ADC هى جهد المرجع له Vref ، وهو أقصى جهد يمكن أن يقوم المحول ADC بقراءته ، فى حالتنا سوف يكون Vref = 5V وهو جهد مصدر التغذية .
بارامتر هام آخر وهو دقة المحول ADC ، والتى تحدد أدنى قيمة من الجهد التناظرى يمكن أن تقرأ ( حجم خطوة المحول ADC) .
على سبيل المثال ، عند استخدام محول ADC بدقة 10 بت مع جهد مرجع 5V ، فإن مدى الجهود يبدأ من 0V وينتهى عند 5V ويتم تقسيمه إلى خطوات متساوية تبدأ من 000 وتنتهى عند 1023 ، بمعنى إنه إذا كان جهد الدخل 5V ، وهو أقصى قيمة ، فإن المحول ADC سوف يقرأ ه 1023 ، وإذا كان الدخل 2.5V ، فإن القراءة سوف تكون 512 وهكذا .
يمكن ببساطة حساب خطوة المحول ADC باستخدام المعادلة Step = Vref/1024 ، وفى حالتنا تكون الخوة 4.883 mV ، وهو أدنى جهد يمكن أن يقرأه المحول ADC ، ومن ثم فإن :
• دخل مقداره 4.883Mv يجب أن يعطى قراءة 001 .
• دخل مقداره 9.766mV يجب أن يعطى قراءة 002 ، وهكذا .
حساس درجة الحرارة LM35 :
ها الحساس له ثلاثة أطراف Vcc,Output,GND) ، وهو حساس لدرجة الحرارة مرتفع الدقة ، حيث تبلغ دقته 10mV/C وتبدأ من الصفر ( بمعنى أن خرج بالقيمة 0V يمثل درجة حرارة 0C) ، وبالتالى فأن :

10mV ---> 1C
20mV ---> 2C
370mV ---> 37.0C
…………………
تحويل قراءة المحول ADC إلى درجات مئوية :
بمعلومية أن المحول ADC له حجم خطوة بالقيمة 4.883mV ، فإن تحويل القراءة الرقمية التى حصلنا عليها مرة أخرى إلى جهد تتم ببساطة عن طريق ضرب القراءة الرقمية فى حجم الخطوة كما يلى :
Vin (in Volts) = DigitalReading * 0.004883
والآن ، بمعلومية حساسية الحساس وهى 10mV/C ، يتم تحويل هذا الجهد ببساطة إلى درجات مئوية عن طريق قسمة جهد الدخل على 0.01 لنحصل على :
Temperature (C) = Vin/0.01 = DigitalReading * 0.4883

Admin
Admin

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

https://fathallaabdelaziz.forumarabia.com

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

الرجوع الى أعلى الصفحة

- مواضيع مماثلة
» مشروع متحكم فى درجة حرارة (بيان وتحكم) مع استخدام موديول ADC والحساس LM35 و LCD و RS232 مع المترجم CCS C
» شرح مشروع متحكم فى درجة الحرارة الموجبة يصلح نواة للتحكم فى المشاريع الكبرى مثل المكيفات والأفران والسخانات وغيرها باستخدم الحساس LM35 والميكروكونترولر PIC16F88 مع المترجم CCS C :
» مشروع متحكم رقمى فى درجة الحرارة السالبة والموجبة بالحساس DS18B20 والميكروكونترولر 16F628 والسفن سيجمنت مع المترجم CCS C :
» دليل ربط شاشة LCD نوع 2X16 بالميكروكونترولر PIC16F877A مع استخدام المترجم CCS C :
» التدريب الأساسى : عملية المسح والعرض لحرف واحد غير متحرك :

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