۱۷-آذر-۱۳۹۱, ۱۶:۴۳:۳۶
سلام دوستان من یه مدار طراحی کردم که دمای سه نقطه از یک سالن را با سه سنسور Lm35 سنس می کند و میانگین این سه دما را محاسبه میکند و با توجه به دمای رفرنسی که در ابتدا بهش دادم یک عدد کولر و یک عدد هیتر را کنترل میکند . تنها مشکل این مدار این است که دمای نشان داده شده روی lcd مدام تغیر میکند مثلا یه لحظه 30 و بعد 60 و... اما خروجی سنسور ها درست است یعنی در دمای محیط 28 درجه خروجی سنسور ها حدودا 0.28 ولت است.
ضمنا این مدار توی شبیه ساز پرتئوس کاملا درسته اما در عمل این مشکل رو دارم.
لطفا راهنمایی کنید که باید چکار کنم
این هم برنامه به زیان c هست که نوشتم
ضمنا این مدار توی شبیه ساز پرتئوس کاملا درسته اما در عمل این مشکل رو دارم.
لطفا راهنمایی کنید که باید چکار کنم
این هم برنامه به زیان c هست که نوشتم
کد php:
min=18;
max=20;
for(a=0;a<100;a++){
if(PINC.4==0) min=min-1;
if(PINC.5==0) min=min+1;
if(PINC.6==0) max=max-1;
if(PINC.7==0) max=max+1;
sprintf(b,"min=%u , max=%u",min,max);
lcd_clear();
lcd_puts(b);
delay_ms(100);
}
while (1)
{adc1=read_adc(0);
adc2=read_adc(1);
adc3=read_adc(2);
delay_ms(500);
temp1=(adc1/4-.5);
temp2=(adc2/4-.5);
temp3=(adc3/4-.5);
ftoa(temp1,1,lcd1);
ftoa(temp2,1,lcd2);
ftoa(temp3,1,lcd3);
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("T1=");
lcd_puts(lcd1);
lcd_gotoxy(0,1);
lcd_putsf("T2=");
lcd_puts(lcd2);
lcd_gotoxy(9,0);
lcd_putsf("T3=");
lcd_puts(lcd3);
temp=(temp1+temp2+temp3)/3;
ftoa(temp,2,lcd);
lcd_gotoxy(9,1);
lcd_putsf("T=");
lcd_puts(lcd);
delay_ms(500);
if (temp>=max)
{PORTB.0=1;
}
else
{PORTB.0=0;
}
if (temp<=min)
{PORTB.1=1;
}
else
{PORTB.1=0;
}
};
}