黄金会员
主题
回帖0
积分8515
阅读权限40
注册时间2011-10-27
最后登录1970-1-1
在线时间 小时
|
回复 78# xda-flame
新串口版本中, 注意增加的设置, "失调修正", "放大增益"
失调修正
设置失调修正为0, 设定温度为1, 命令 "开始加热" 烙铁保持室温(或者短接第一级输入)
看日志, max adc值就为修正值. 在软件中填入失调修正就可以了
放大增益
就是热电偶放大部分的总增益值, 程序会用他还原出原始热电偶电压
- //使用长整形运算
- unsigned int ReadTemperature(void)
- {
- /*功能: 获取当前T12热电偶的温度*/
- unsigned int TL431Result, T12Result;
- unsigned char NTCResult, NTCTemper;
- unsigned long voltageScale, vin;
- //读取AD值
- TL431Result = GetADCResultFilter(TL431_ADC);
- T12Result = GetADCResultFilter(T12_ADC);
- NTCResult = GetADCResult(NTC_ADC, 0) + config.NTCFixValue;
- //当前室温
- NTCTemper = ADCToTemperature(NTCResult);
- //调试信息输出
- DBG(dbgInfo.TL431Result = TL431Result;);
- DBG(dbgInfo.T12Result = T12Result;);
- DBG(dbgInfo.NTCResult = NTCResult;);
- DBG(dbgInfo.NTCtemper = NTCTemper;);
- //获得当前每AD每bit对应电压单位 (uv) 扩大TL431电压mv->uv
- voltageScale = ((unsigned long)config.TL431Voltage*1000) /(unsigned long)TL431Result;
- //获得热电偶放大后电压(uv)
- vin = voltageScale * (unsigned long)(T12Result-config.AMPFixValue);
- //获得当前热电偶实际电压(uv)
- vin = vin / (unsigned long)config.AMPGain;
- //实际查表电压值 公式 热电偶当前电压值 + 上冷端电压 单位uv;
- vin = vin + TemperatureToVoltage( NTCTemper);
- //转换热电偶电压值为温度值的十倍
- return VoltageToTemperature( (unsigned int)vin);
- }
复制代码
代码中
config.AMPFixValue 为失调修正值
config.AMPGain为运放增益
这个跟老版本不兼容, 可以全从软件上来修正温度. 所以电位器可以短路,或者改变放大部分的电路. |
|