View Single Post
Old 06-02-2012, 09:54 PM   #1
internet.com
Đệ tử 1 túi
 
Tham gia ngày: Sep 2010
Bài gửi: 18
:
Smile Hỏi về cảm biến đo nhiệt độ PT100

Hiện em đang làm tiểu luận đo nhiệt độ dùng cảm biến PT100 và pic16f877a. Vấn đề của em là khi hiển thị nhiệt độ lên LCD thì giá trị nhiệt độ thay đổi liên tục sau mỗi thời gian lấy mẫu, thất thường (ví dụ 28 rồi 31 rồi 37 rồi 25 rồi 35...). Tạm thời chưa xét tới công thức tính nhiệt độ đúng hay sai, đúng ra giá trị phải không nhảy lung tung chỉ trong thời gian rất ngắn như thế. Có ai biết thì giúp em với!
Sơ đồ mạch như trong hình đính kèm, pt100 loại 3 dây, code vxl thì như sau:
Code:
#include <16f877a.h>
#device *=16 adc=10
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#include "lcd.c"


int1 en=0;
int i=0;

#int_timer1
void timer1(){
	++i;
	if(i==3){
   		en=1;
	i=0;
	}
   	set_timer1(0);
}

void main(){
   signed int16 adc, nhietdo;

   setup_adc(adc_clock_internal);
   setup_adc_ports(AN0);
   set_adc_channel(0);
   
   enable_interrupts(int_timer1);
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
   set_timer1(0);
   
   lcd_init();

   enable_interrupts(GLOBAL);  
   while(1){
      if(en){
         lcd_putc('\f');	//xoa lcd
	 if(adc_done())
		adc=read_adc();
         nhietdo = (adc-494)/1.851;	//tinh ra nhiet do
         //Hien thi nhiet do len LCD
         lcd_putc("Nhiet do:");
         lcd_gotoxy(11,1);
         printf(lcd_putc,"%ld" nhietdo);
         lcd_putc(0b11011111);
         lcd_putc("C");
         en=0;
      }
   }
}
Chân thành cảm ơn mọi người!
Hình Kèm Theo
File Type: png pt100.PNG (39.6 KB, 175 lần tải)
internet.com vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn