سلام.
مشکلش اینه که اولا دما ثابت نیست. حدود 5 درجه نوسان داره، دوما دما درست نیست، مثلا الان دمای اتاق منو زده 40 درجه حدودا(از 37 تا 42 نوسان داره) در حالی که حدود 25 هستش احتمالا
مشکل کجا میتونه باشه.
میانگین هم میگیرم:
مشکلش اینه که اولا دما ثابت نیست. حدود 5 درجه نوسان داره، دوما دما درست نیست، مثلا الان دمای اتاق منو زده 40 درجه حدودا(از 37 تا 42 نوسان داره) در حالی که حدود 25 هستش احتمالا
مشکل کجا میتونه باشه.
میانگین هم میگیرم:
کد:
#include <mega8.h> #include <delay.h> #include <stdio.h> #include <stdlib.h> #asm .equ __lcd_port=0x18 #endasm #include <lcd.h> float temp=0.0; void display(){ char str1[16],str2[16]; ftoa(temp,1,str1); sprintf(str2,"Temp=%3s",str1); lcd_clear(); lcd_gotoxy(0,0); lcd_puts(str2); } interrupt [ADC_INT] void adc_isr(void){ unsigned int adc_data; adc_data=ADCW; temp=(adc_data*2.56/1024)*100; } void main(){ int i; float sum; ACSR=0xC0; ADMUX=0xC0; ADCSRA=0x8F; lcd_init(16); #asm("sei") ADCSRA=0xCF; while(1){ display(); delay_ms(50); sum=0; for(i=0;i<1000;i++) { ADCSRA=0xCF; sum+=temp; delay_ms(1); } temp=sum/1000; } }
دیدگاه