amobbs.com 阿莫电子技术论坛
标题:
AD7705和pt100的使用请教
[打印本页]
作者:
wumin0566
时间:
2012-2-16 13:18
标题:
AD7705和pt100的使用请教
pt100和ad7705的原理图
(原文件名:(4Z~FW~08S5]TSFJBEXW6@8.jpg)
我用ad7705测量pt100的温度,想测量的温度在-20度到110度之间,精度在+-0.3,我选ad7705的转换频率为20hz,用自校准和64倍增益,带缓存的模式
u16 AD7705_GetCurVoltageVal(u8 channel)
{
u16 tmp;
CS_OUT_LOW();
AD7705_Writebyte(RD_DATA_REG);
tmp = AD7705_ReadDword();//读ad数据
if((tmp==0x0000)||(tmp==0xFFFF))
gStruAD7705.Error = TRUE;
CS_OUT_HIGH();
return (tmp);
}
void AD7705_Event(void)
{
u8 i;
int AdValue;
float temp=0.0;
WatchDogFeed(); // 喂狗
gStruAD7705.CurrentSampleVal[gStruAD7705.CurrentSamplePtr]=AD7705_GetCurVoltageVal(0);//存放读回的数据
if(gStruAD7705.Error == TRUE) // gai
{
gStruAD7705.ErrorCnt++;
if(gStruAD7705.ErrorCnt > 3)
Process_EnterSysErrorMode();
else
AD7705_Initial();
return;
}
else
{
gStruAD7705.ErrorCnt = 0;
}
if(++gStruAD7705.CurrentSamplePtr >= MAX_SAMPLE_CNT)/*连续一组采样结束*/
{
gStruAD7705.CurrentSamplePtr = 0;
}
for(i=0;i<MAX_SAMPLE_CNT;i++)
temp += gStruAD7705.CurrentSampleVal
;
temp -= AD7705_GetMaxVal(gStruAD7705.CurrentSampleVal,MAX_SAMPLE_CNT);
temp -= AD7705_GetMinVal(gStruAD7705.CurrentSampleVal,MAX_SAMPLE_CNT);
temp = temp/(MAX_SAMPLE_CNT-2);//去掉最大最小值
temp-=(-0.0000010053942*temp*temp+0.04551514*temp-104.1201); // 桥路非线性修正
AdValue=(int)(temp/(float)VAULEPER+(float)TEMPBASE);//VALEPER = 2.8469286,TEMPBASE = -550;
AdValue = (AdValue+5)/10;
gStruSystem.CurrentTemp.H = AdValue/10;
gStruSystem.CurrentTemp.L = AdValue%10;
}
u16 AD7705_GetMaxVal(u16 val[],u8 len)
{
u16 max=val[0];
u8 i=0;
for(i=0;i<len;i++)
{
if(val
>= max)
{
max=val
;
}
}
return max;
}
u16 AD7705_GetMinVal(u16 val[],u8 len)
{
u16 min=val[0];
u8 i=0;
for(i=0;i<len;i++)
{
if(val
<=min)
{
min=val
;
}
}
return min;
}
代码中ADvalue是读的温度的10倍,,我读回来显示的温度差距太大,温度10几度,我显示的30多度,应该怎么变换这里的公式或者AD的模式怎么改变,求教!!!!
作者:
wumin0566
时间:
2012-2-16 13:20
回复【楼主位】wumin0566
-----------------------------------------------------------------------
这张清楚些
(原文件名:CQ}]9W{Q(}1WY{QU5(H37C8.jpg)
作者:
qwerttt
时间:
2012-2-16 14:46
2线制的PT100?
程序没细看,你可以先换算成欧姆,然后网上下个软件验证
就知道你是AD换算成欧姆错,还是欧姆换算温度错了
作者:
wumin0566
时间:
2012-2-16 16:08
回复【2楼】qwerttt
-----------------------------------------------------------------------
公式以前算0-100度的时候可以的,但是我把pt100的电阻换了后,测-20到110度范围的时候,这个公式应该不对,我不知道用哪个公式
作者:
marshallemon
时间:
2012-9-28 15:52
pt100在负温度时的计算公式和正温度时是不一样的,建议先由桥路计算出RTD的电阻,由电阻再求温度,当然你也可以直接由输出电压直接求温度,这估计需要2阶以上的矩阵求出
欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/)
Powered by Discuz! X3.4