================================================================================
本额温枪样例为开发过程版本,旨在提供基本功能模块单元的操作及架构,为应用开发者提供快速原型构建,
将更多的精力用在业务开发上及系统调试上。
================================================================================
测试环境
================================================================================
测试用板:
---------------------
HC32L13X_STK
辅助工具:
---------------------
配套硬件参考:
---------------------
“Hm-Meter-源文件.rar”及“Hm-Meter-PDF BOM.rar”
================================================================================
操作步骤
================================================================================
1) 程序编译后下载到HC32L13X_STK;
2) 复位或初次上电LCD全显闪烁两次,保持全显;
3) 按下USER按键后进行数据采样(需外接参考电压及调理后的传感器信号)
4) LCD显示环境温度约1s,然后显示被测物温度约3s,最后LCD熄灭;
5) 可重复步骤3、4;
================================================================================
功能说明
================================================================================
1)打开工程编译并运行。
2)可根据不同的具体硬件功能修改"stkhc32l13x.h"板级接口文件,或自行定义功能。
3)数据采集部分使用内部ADC连续16次采样取均值的方式采样外部经过OPA调理过的信号。
4) 显示部分提供了配套原理图“Hm-Meter-源文件.rar”及“Hm-Meter-PDF BOM.rar” 所使用LCD的数据结构及操作,同时包括HC32L13X_STK的LCD参考。
5) 数据处理部分算法仅针对当前实验室测试的一款传感器进行部分数据的简单整理,不代表通用算法。
6) 按键及其他基础功能模块较为简单,通常为基本的IO操作,本应用提供了基本的初始化操作。
================================================================================
注意
================================================================================
本样例实现了额温枪方案的基本方法及架构,基于华大MCU HC32L136进行构建,未经过充分产品级测试,
仅可为应用开发者提供快速原型参考,具体的端口、业务功能、数据处理应以实际采纳的硬件为准,进行程序修改及调试。
================================================================================
单片机源程序如下:
int main(void){ /* 90379 s = 0.021052 室温25度,黑体30度 ADC 数据放大后得到 90379,计算出S校准系数 这里放大多少倍都可以。主要是找到一个合适S值。但是这个指标必须准的。也就是所谓的校准 */ // float V = 90379; //红外ADC数据 // float tt = 30; //目标温度 // float ta = 25; //室温 // float s = 0.021052; // 90379 s = 0.021052 S 校准系数 //Tobj=(V/(s*5e-10*(1+2e-3*Tamb)+(Tamb+273.15)^4)^0.25-273.15; float Tobj = pow((tt + 273.15),4); float Tamb = pow((ta + 273.15),4); float ee = 5e-10*(1+2e-3*Tamb);//0.0000000005*(1+0.002*Tamb) double s = (V/(Tobj- Tamb))/ee; printf("%1f\n", s); double t = V / pow(s*ee+Tamb,0.25) - 273.15; printf("%1f\n", t); }
复制代码