基于STM32物联网开发板(3)--红外测温MLX90614 每日看点
MX90614是一款由迈来芯公司提供的低成本,无接触温度计。输出数据和物体温度呈线性比例,具有高精度和高分
MX90614是一款由迈来芯公司提供的低成本,无接触温度计。输出数据和物体温度呈线性比例,具有高精度和高分辨率。TO-39金属封装里同时集成了红外感应热电堆探测器芯片MLX81101(温度是通过PTC或是PTAT元件测量)和信号处理专用集成芯片MLX90302,专门用于处理红外传感器输出信号。用以阻碍可见光和近红外光辐射的光学滤波器(可传播长波)集成在封装内提供对环境和日光的免疫。滤波器的波长通带为5.5到14μm。由于集成了低噪声放大器、17位模数转换器和强大的数字信号处理芯片 MLX90302,使得高精度和高分辨度的温度计得以实现。一个附加的片上温度传感器用来测量芯片的温度。测量完两个传感器的输出后,对应的环境温度和物体温度被计算出。计算所得物体温度和环境温度存储在MLX90302的RAM单元,温度分辨率为0.01℃,并可通过两线 SMBus(系统管理总线)兼容协议接口(IIC与之兼容)(0.02℃分辨率)或是10位PWM(脉宽调制)输出模式输出。MLX90614出厂温度范围都进行过校准,传感器测量的温度为视场里所有物体温度的平均值。
MLX90614 系列模块是一组通用的红外测温模块。 在出厂前该模块已进行校验及线性化,具有非接触、体积小、精度高,成本低等优点。被测目标温度和环境温度能通过单通道输出,并有两种输出接口,适合于汽车空调、室内暖气、家用电器、手持设备以及医疗设备应用等。
MLX90614的出厂校准温度范围很广:环境温度-40 ~ 125 ˚C,物体温度-70 ~ 382.2 ˚C。传感器测量的温度为视场里所有物体温度的平均值。MLX90614 室温下的标准精度为±0.5ºC。医疗应用版本的传感器可在人体温度范围内达到±0.1ºC 的精度。
(资料图片)
硬件接口:
引脚 | 说明 |
SCL | I2C时钟线 |
SDA | I2C数据线 |
VDD | 电源3.3~5V |
VSS | 数字地GND |
MLX90614是由内部状态机控制物体温度和环境温度的测量和计算,进行温度后处理,并将结果通过PWM或是SMBus模式输出。ASSP支持两个IR传感器。 (MLX90614xAx只有一个IR传感器) IR传感器的输出通过增益可编程的低噪声低失调电压放大器放大,经过Sigma Delta调制器转换为单一比特流并反馈给 DSP做后续的处理。信号通过可编程的(用 EEPROM实现)FIR和IIR低通滤波器以进一步减低输入信号的带宽从而达到所需的噪声特性和刷新率。IIR滤波器的输出为测量结果并存于内部RAM中,其中三个单元可被用到:一个是片内温度传感器(片上PTAT或PTC),其余两个为IR传感器。基于以上测量结果,计算出对应的环境温度Ta和物体温度To,两个温度分辨率都为0.01℃。Ta和 To可通过两种方式读取:通过两线接口读取RAM单元,(0.02℃分辨率,固定范围)或者通过 PWM 数字模式输出。(10位分辨率,范围可配置)测量周期的最后一步为:测量所得Ta和To被重新调节为PWM所需的输出分辨率,并且该数据存在PWM 状态机的寄存器中,状态机可以产生固定频率和一定占空比来表示测量的数据。
单片机与MLX90614红外测温模块之间通信的方式是“类IIC”通信,意思就是通信方式跟IIC通信方式很像但又不是IIC,它有另外一个名字叫做SMBus。SMBus (System Management Bus)是1995年由 intel公司提出的一种高效同步串行总线,SMBus只有两根信号线:双向数据线和时钟信号线,容许CPU与各种外围接口器件以串行方式进行通信、交换信息,既可以提高传输速度也可以减小器件的资源占用,另外即使在没有SMBus 接口的单片机上也可利用软件进行模拟。。MLX90614 SMBus时钟的最大频率为100KHz,最小为 10KHz。
S 是起始信号,Sr是重发起始信号。Rd读使能,Wr写使能。A是应答,0为应答1为非应答(发送数据和读取数据都需要应答)。P 是停止信号。PEC是CRC-8的多项式 a X8+X2+X1+1。每个字节的最高有效位首先传送。
//发送起始信号//时钟为高电平时,数据由高电平变为低电平。static void I2C1_Start(void){I2C1_SDAout_Mode();//输出模式 I2C1_SDAout(1);I2C1_SCL(1);Delay_Us(2);I2C1_SDAout(0);Delay_Us(2);I2C1_SCL(0);//方便后续数据收发 Delay_Us(1);}//停止信号//时钟线为高电平时,数据线由低变高。static void I2C1_Stop(void){I2C1_SDAout_Mode();//输出模式I2C1_SCL(0);I2C1_SDAout(0);Delay_Us(5);I2C1_SCL(1);Delay_Us(5);I2C1_SDAout(1);}
时钟线为高时读取数据。应答信号本身就是一位数据。(1)获取应答示例
//获取应答信号static u8 I2C1_Wait_Ack(void){u8 cnt=0;I2C1_SDAIN_Mode();//配置为输入模式I2C1_SDAout(1);I2C1_SCL(0);//告诉从机,主机需要获取数据Delay_Us(5);I2C1_SCL(1);//从机数据发送完成,主机开始读取数据while(I2C1_SDAin){cnt++;Delay_Us(5);if(cnt>=100)return 1;}Delay_Us(5);I2C1_SCL(0);//方便下一次数据收发return 0;}
(2)读取一字节数据示例
//读取一个字节数据static u8 I2C1_Read_Byte(void){u8 i=0;u8 data=0;I2C1_SDAIN_Mode();//配置为输入模式for(i=0;i<8;i++){I2C1_SCL(0);//告诉从机,主机需要获取数据Delay_Us(5);I2C1_SCL(1);//开始读取数据data<<=1;//默认收到0if(I2C1_SDAin)data|=0x01;Delay_Us(5);}I2C1_SCL(0);return data;}
时钟线为低电平时发送数据。应答信号本身就是一位数据。(3)发送应答示例
/***********发送应答信号******************************形参:u8 ack -- 0应答,1非应答*****************************************************/static void I2C1_SendAck(u8 ack){I2C1_SDAout_Mode();//输出模式I2C1_SCL(0);//告诉从机,主机开始发送数据 if(ack&0x01) { I2C1_SDAout(1); } else I2C1_SDAout(0);Delay_Us(5);I2C1_SCL(1);//告诉从机,主机数据发送完成//方便下一次数据收发Delay_Us(5);I2C1_SCL(0);}
(4)发送一字节数据示例
//发送一个字节数据static void I2C1_Send_Byte(u8 data){u8 i=0;I2C1_SDAout_Mode();//输出模式for(i=0;i<8;i++){I2C1_SCL(0);//告诉从机,主机开始发送数据if(data&0x80)I2C1_SDAout(1);else I2C1_SDAout(0);Delay_Us(5);I2C1_SCL(1);//主机数据发送完成data<<=1;Delay_Us(5);}I2C1_SCL(0);//方便下一次数据收发}
对该模块操作主要是看懂几个图。模块里有EEPROM和RAM两块,EEPROM里只有限定数目的地址是允许客户改写的。整个 EEPROM可通过SMBus接口读和写。
RAM中不能写入数据,只能进行读取,并且只有有限数目是客户感兴趣的。
TA是环境温度地址,Tobj1是物体温度低8位,Tobj2是物体温度高8位。读取数据流程如下:设备地址为0x0
①发送起始信号-->②设备地址+写使能(0x0)+获取应答-->③发送读取温度命令(0x07)+获取应答-->④发送起始信号-->⑤设备地址+读使能(0x1)+获取应答-->⑥读取温度低8位+发送应答-->⑦读取温度高8位+发送应答-->⑧发送停止信号;
//读内存uint16_t MLX906_ReadMemory(void){ uint8_t Pec,PecReg,ErrorCounter; uint8_t TempL=0; uint8_t TempH=0; uint8_t arr[6]; ErrorCounter=0; do { ErrorCounter++; if(ErrorCounter==10) { return 0; } I2C1_Start();//起始信号 I2C1_Send_Byte(0x00);//发送MLX90614地址 I2C1_Wait_Ack(); I2C1_Send_Byte(0x07);//发送读MLX90614 RAM地址 I2C1_Wait_Ack(); I2C1_Start();//重新启动 I2C1_Send_Byte(0x01);//发送数据采集命令 I2C1_Wait_Ack(); TempL=I2C1_Read_Byte();//读取地位数据 I2C1_SendAck(0); TempH=I2C1_Read_Byte();//读取高位数据 I2C1_SendAck(0); Pec=I2C1_Read_Byte();//读取校验位 I2C1_SendAck(0); I2C1_Stop();//停止信号 arr[5]= 0x00; arr[4]= 0x07; arr[3]= 0x01; arr[2]= TempL; arr[1]= TempH; arr[0]= 0; PecReg=CRC_Calculation(arr);//计算CRC校验 }while(PecReg!=Pec); return (uint16_t)((TempH<<8)|TempL);}
//crc校验uint8_t CRC_Calculation(uint8_t pec[]){ uint8_t crc[6];//存放多项式 uint8_t BitPosition = 47; uint8_t shift; uint8_t i,j,temp; do { crc[5]=0; crc[4]=0; crc[3]=0; crc[2]=0; crc[1]=0x01; crc[0]=0x07; BitPosition = 47; shift = 0; i=5; j=0; while((pec[i]&(0x80>>j))==0 && i>0) { BitPosition--; if(j<7) { j++; } else { j= 0x00; i--; } } shift= BitPosition-8; while(shift) { for(i=5;i<0xFF;i--) { if((crc[i-1]&0x80)&&(i>0)) { temp=1; } else { temp=0; } crc[i]<<=1; crc[i]+=temp; } shift--; } for(i=0;i<=5;i++) { pec[i]^=crc[i]; } }while(BitPosition>8); return pec[0];}
传感器芯片温度是通过PTC或是PTAT元件测量的,传感器所有的状态和数据处理都是在片内进行的,处理好的线性传感器温度Ta存于芯片内存里。计算好的温度输出分辨率为 0.02 ˚C,传感器的出厂校准范围为40…+125 ˚C。在RAM单元地址006h中,2DE4h对应-38.2 ˚C (线性输出最低限度) ,4DC4h (19908d)对应 125 ˚C。通过下式将RAM内容转换为实际的Ta温度,结果是开尔文为单位。
环境温度:
Ta[°K]=Targe*0.02;
物体温度:
To[°K]=Targe*0.02;
转换为摄氏度计算方法为:
Temp=Targe*0.02-273.5;
//读温度float MLX906_Read_Temp(void){ return (float )MLX906_ReadMemory()*0.02-273.15;}
标签:
MX90614是一款由迈来芯公司提供的低成本,无接触温度计。输出数据和物体温度呈线性比例,具有高精度和高分
总台央视记者刘冠青:现在的空间站前向对接口停靠着神舟十五号载人飞船,两个侧面停泊口连接着问天实验舱和
据报道,富力俱乐部董事长黄盛华认为,从实际情况出发,今年新赛季中超只升不降是比较合适的方式。因为各队
蓝天白云下的有轨电车广州日报全媒体记者骆昌威通讯员穗应急摄节气里的中国“赤日几时过,清风无处寻”。北
对于梅西的未来,目前并没有确切的消息,虽然说目前和梅西联系在一起的球队还是非常多的,从沙特联赛再到巴
落实长三角区域产品质量共治一体化要求,日前,由宣城市市场监管局发起,联合上海市松江区、江苏省苏州市及
5月10日塑料板块较上一交易日上涨1 2%,泉为科技领涨。当日上证指数报收于3319 15,下跌1 15%。深证成指报
赌海无边回头是岸娱乐千万条不赌第一条赌博害人害己害社会莒县公安将持续严厉打击赌博违法犯罪行为!绝不手
中国青年报客户端讯(中青报·中青网记者王培莲)日前,“吉林省乡村振兴万人圆梦工程”启动仪式在长春市同
1、第一单元走进化学世界一、药品的取用使用化学药品要做到“三不”:不能用手接触药品;不要把鼻孔凑到容器
1、两种都有1 传统;传统思想[U][C]Myparentsdidtheirbesttokeepupth
34股获主力资金净流入超1亿元,北向资金连续4日净流入,主力加仓汽车、电力设备等行业。详情
证券时报e公司讯,随着服装市场加速回暖,不少服装加工厂订单增加,开工率大幅提升,一些工厂还出现了人手
思必驰IPO闯关失败!AI创业15年,近3年亏损7亿多,面临巨头夹击,创业,云知声,科大讯飞,人工智能,阿里巴巴,
1、有可能的,我前天买了一小盆正开着几朵小花,女儿本来容易过敏。2、她反正是碰了那花了,然后就长疹子了
1、党的十七届四中全会提出“把建设马克思主义学习型政党作为重大而紧迫的战略任务抓紧抓好”。2、中央办公
澐璟自开售以来,各类3及4房户型均受用家及投资者欢迎,项目至今累售91伙,成交金额逾45亿港元。
《三国志战棋版》每日必做任务攻略为大家带来了很多开服三天玩家们需要做的几个任务,新手每日必做清单,不
◎科技日报记者付毅飞杨雪实习记者沈唯据中国载人航天工程办公室消息,目前,长征七号遥七运载火箭已完成推
我们在使用蓝叠模拟器下载应用的时候经常会有很多缓存垃圾,这些垃圾文件是很占应用内存的,那么蓝叠模拟器
截至2023年5月10日收盘,昊海生科(688366)报收于91 22元,下跌0 12%,换手率0 4%,成交量5507 0手,成交额5021 73万元。
1、据我所知七彩虹是有一款13 3英寸的平板的,除此之外还有联想那个流弊的21英寸的WIN8平板==。2、这个定位
“今年截至目前,中欧班列已累计开行226列,标箱2万多个,货重23 9万吨,货值33 39亿元。同比分别增长88%、
公牛集团开始走下坡路,或许可以追溯至2021年。彼时,公牛集团发布公告称,收到浙江省市场监督管理局发函,
一季度,独山子区持续开展“就业援助月”“春风行动”等招聘活动独山子区将于每月20日常态化举办线下招聘会
曝小米14年底登场:采用华星屏边框最窄快科技5月9日消息,博主数码闲聊站暗示,小米14将采用极致的超窄边框
国联股份(603613)05月10日在投资者关系平台上答复了投资者关心的问题。
5月5日,爱仕达在投资者互动平台表示,公司2023年第一季度机器人业务同比增长约17%。
眼下正是枣树发芽关键时期,也是枣树病虫害的高发期。5月9日,记者走进位于山西省晋中市的晋中国家农高区万
今天来聊聊关于泉州安全平台平台,泉州安全平台的文章,现在就为大家来简单介绍下泉州安全平台平台,泉州安