
28.12.2011, 19:32
|
 |
Начинающий
|
|
Регистрация: 12.10.2008
Сообщения: 163
Репутация: -1588
|
|
Полный код процедуры, где ошибка.
PHP код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
s: string;
i: integer;
f, RT, RM, Vadc : Double;
begin
{ Vadc - напряжение АЦП в вольтах к которому подключен датчик
Vpit - источник постоянного опорного напряжения
K - коэффициент температурной чуствительности, равен 3988
Rm - сопротивление резистора в омах ( схема и формула [url]http://www.kernelchip.ru/KTS-1.php[/url])
Ro - сопротивление датчика при 25 oC, равно3 кОм
RT = (Rm*Vadc)/(Vpit - Vadc);
Так как модуль запитан через свой стабилизатор 3.3v, Vpit = 3.3v
}
RM :=5060.0;///Сопротивление резистора в омах
CS1.Socket.SendText('$KE,ADC,1'#13#10);
Memo1.Text:=s;
{
s := edit2.Text;
}
if s[1] = '#' then begin
if copy(s,2,3) = 'ADC' then begin
i := 5;
while s[i] <> ',' do begin
if i > 10 then break; // (*) if i > 10 then break;
inc(i);
end;
inc(i);
s := copy(s,i+1,length(s));
Vadc:=s/1023.0*3.3;///расчет напряжения АЦП в вольтах
RT:= (Rm*Vadc)/(3.3 - Vadc);///расчет сопротивления терморезистора в омах
f := (3988.0/({log}(RT/3000.0) + 3988.0/298.0))-273;///Расчет температуры в градусах цельсия
Form1.Edit1.Text := FormatFloat('0.0000 C"',f);
end;
end;
end;
|