tag 标签: tmp006

相关博文
  • 热度 24
    2015-2-2 08:45
    2855 次阅读|
    4 个评论
        最近搞了一个红外测温,在网上找了很久,用的比较多的芯片是MLX90614,在淘宝上看看其价格还挺贵的-几十块,还有一个比较便宜的芯片是TI的TMP006,这个芯片体积小、价格也便宜,官网上也就1.5美元,关键是可以申请免费样品啊!于是就申请了10个。     按照TMP006的layout指导,画了一块小板子。如下    样品和板子到了,就焊几块吧!用热风*吹了3块,有两个芯片引脚短路,有个没短路。然后调程序,死活不能正确的读到芯片ID,怀疑焊接不好。 后来将芯片中间那块敷铜用刀片给割了,再用热风*吹,吹了两个都可以正确读到芯片的两个ID。    关于程序,我有一个IO模拟IIC的程序,单片机是用的STM32。TMP006的寄存器还是比较简单,总共就5个,其中2个是制造商ID( 5449h )和设备ID( 0067h ),调试时,能正确读出这两个,那硬件和IIC就没问题了。还有三个是配置寄存器、设备自身温度寄存器、目标传感电压。测温主要就靠自身温度和目标传感电压计算而出的。      读出寄存器00和01的值,转换成自身温度Tdie(单位 ℉ )和目标传感电压Vobj(单位nV),再根据下图公式计算出目标温度   读Tdie和Vobj模块如下: typedef struct {         float Tdie;         short int  Vobj; }TMP006_TypeDef; TMP006_TypeDef Tmp006; void TMP006_Read(void) { unsigned char RxData ;   do { //读配置寄存器 IIC_Read(TMP006_ADDRESS,CONF_REG,RxData,2); } while((RxData 0x80)!=0x80); //等待转换完成 //  IIC_Read(TMP006_ADDRESS,TEMPERATURE_REG,RxData,2);       Tmp006.Tdie=((RxData 8)+RxData )*0.0078125 + 273.15;   IIC_Read(TMP006_ADDRESS,VOBJECT_REG,RxData,2);       Tmp006.Vobj=(RxData 8)+RxData ;  } 读Tobj计算模块如下: float TMP006_Tobj(void) { float Vos = 0; float Tobj = 0; //单位 ℉ float fvobj = 0; float S = 0; float temp = 0; //红外转换电压值 单位nV TMP006_Read(); //读取Tdie和Vobj S = S0*(1+a1*(Tmp006.Tdie-Tref)+a2*(Tmp006.Tdie-Tref)*(Tmp006.Tdie-Tref)); Vos = b0+b1*(Tmp006.Tdie-Tref)+b2*(Tmp006.Tdie-Tref)*(Tmp006.Tdie-Tref); if(Tmp006.Vobj = 0x8000) temp = -(0xffff-Tmp006.Vobj)*156.25; else temp = Tmp006.Vobj*156.25; temp *= 1e-009; fvobj = (temp-Vos) + c2*(temp-Vos)*(temp-Vos); Tobj = sqrt(sqrt(Tmp006.Tdie*Tmp006.Tdie*Tmp006.Tdie*Tmp006.Tdie + (fvobj/S))); //单位 ℉ return (Tobj-273.15); //单位℃ }    本打算隔着玻璃测温度,后发现普通的玻璃远红外透不过去,3um波长以上的基本都透不过了,换成温度也就是700℃以下的波长基本穿不过去。所以如果要么订制透远红外的玻璃或者亚克力也行。还有一个问题,就是关于物体的发射率,越亮的物体发射率越接近0,越黑的物体越接近1.所以红外测温时,要根据被测物来调整发射率,上面计算公式中的S0就是用来校准物体的发射率的。我就 没有去校准,用了一个典型的值: Typical values for S0 are between 5 × 10–14 and 7 × 10–14 .    在TI文档中,还介绍了被测物体与传感器的距离,在什么样的条件下,测出的温度比较接近目标温度。其实TMP006的视角有180°,在淘宝上有红外测温*和红外测温笔,基本上红外测温*的视角比较小,故可远距离测。红外测温笔视角应该和TMP006差不多,所以最好靠着测才准确。      实物图:    完整代码见附件!代码对应ADR0与ADR1接地    官网资料 链接 :http://www.ti.com.cn/product/cn/TMP006/samplebuy    其他论坛相关链接:http://bbs.eeworld.com.cn/thread-341966-1-1.html    在 TMP006 User Guide中写出来测量精度和距离的问题,发热面越大越靠近传感器,精度越高(缺点就是这个是180°的视角)。下面有个图: