STM32ExampleCode-06-MXL90614

STM32ExampleCode-06-MXL90614

1. 简介

MLX90614 系列模块是一组通用的红外测温模块。在出厂前该模块已进行校验及线性化,具有非接触、体积小、精度高,成本低等优点。被测目标温度和环境温度能通过单通道输出,并有两种输出接口,适合于汽车空调、室内暖气、家用电器、手持设备以及医疗设备应用等。测温方式可分为接触式和非接触式,接触式测温只能测量被测物体与测温传感器达到热平衡后的温度,所以响应时间长,且极易受环境温度的影响;而红外测温是根据被测物体的红外辐射能量来确定物体的温度,不与被测物体接触,具有影响动被测物体温度分布场,温度分辨率高、响应速度快、测温范围广、不受测温上限的限制、稳定性好等特点,所以我们选择mlx90614来作为红外测温模块。
article006_01.png

2. 通信方式

单片机与mlx90614红外测温模块之间通信的方式是“类IIC”通信,意思就是通信方式跟IIC通信方式很像但又不是IIC,它有另外一个名字叫做SMBus。SMBus (System Management Bus)是 1995 年由 intel 公司提出的一种高效同步串行总线,SMBus 只有两根信号线:双向数据线和时钟信号线,容许 CPU 与各种外围接口器件以串行方式进行通信、交换信息,即可以提高传输速度也可以减小器件的资源占用,另外即使在没有SMBus 接口的单片机上也可利用软件进行模拟,在这里我们就使用模拟SMBUS通信来实现STM32对mlx90614的控制。

3. mlx90614驱动

1) 查看驱动

查看目录“.\HARDWARE\mlx90614”的mlx90614的驱动文件:
article006_02.png

2) 修改配置

在.h文件中我们可以修改引脚信息
article006_03.png

3) 使用

SMBus_Init(); float Temperature = SMBus_ReadTemp();

4. 示例工程

1) 打开工程

打开目录“.\USER”的keil示例工程
article006_04.png

2) 编译烧录运行,查看效果:

这个测温模块测温结果受被测物的距离影响较大,建议在使用时在外壳上增加距离限制
article006_05.png

Licensed under CC BY-NC-SA 4.0