MLX90614红外无接触测温传感器
MLX90614 系列模块是一组通用的红外测温模块。在出厂前该模块已进行校验及线性化,具有非接触、体积小、精度高,成本低等优点。被测目标温度和环境温度能通过单通道输出,并有两种输出接口,适合于汽车空调、室内暖气、家用电器、手持设备以及医疗设备应用等。测温方式可分为接触式和非接触式,接触式测温只能测量被测物体与测温传感器达到热平衡后的温度,所以响应时间长,且极易受环境温度的影响;而红外测温是根据被测物体的红外辐射能量来确定物体的温度,不与被测物体接触,具有影响动被测物体温度分布场,温度分辨率高、响应速度快、测温范围广、不受测温上限的限制、稳定性好等特点,所以我们选择mlx90614来作为红外测温模块。
单片机与mlx90614红外测温模块之间通信的方式是“类IIC”通信,意思就是通信方式跟IIC通信方式很像但又不是IIC,它有另外一个名字叫做SMBus。SMBus (System Management Bus)是 1995 年由 intel 公司提出的一种高效同步串行总线,SMBus 只有两根信号线:双向数据线和时钟信号线,容许 CPU 与各种外围接口器件以串行方式进行通信、交换信息,即可以提高传输速度也可以减小器件的资源占用,另外即使在没有SMBus 接口的单片机上也可利用软件进行模拟。
模块来源
规格参数
工作电压:4.5~5.5V
工作电流:1.3~2.5mA
通信方式:I2C
硬件连接
- VCC:连接到开发板的5V输出。
- GND:连接到开发板的GND。
- SCL(时钟线):连接到开发板的A5(SCL)。
- SDA(数据线):连接到开发板的A4(SDA)。
使用方法
安装库
要从MLX90614读取温度,我们可以使用Adafruit_MLX90614
库。可以通过Arduino IDE的库管理器来安装:打开Arduino IDE,选择 工具 管理库,然后搜索MLX90614
并安装Adafruit MLX90614 Library
。
编写代码
这段代码首先使用Adafruit_MLX90614
库来初始化传感器,然后在循环中读取环境温度和目标物体温度,最后通过串口输出。这段代码示例将以摄氏度形式输出温度读数,如果需要,你可以通过改变方法(例如使用readAmbientTempF()
和readObjectTempF()
)来以华氏度形式读取温度。
/******************************************************************************
* 测试硬件:ColorEasyDuino开发板
* 版 本 号: V1.0
* 修改作者: www.lckfb.com
* 修改日期: 2024年04月08日
* 功能介绍:
*****************************************************************************
* 开发板软硬件资料与相关项目软硬件资料官网全部开源
* 开发板官网:www.lckfb.com
* 技术支持常驻论坛,任何技术问题欢迎随时交流学习
* 立创论坛:club.szlcsc.com
* 关注bilibili账号:【立创开发板】,掌握我们的最新动态!
* 不靠卖板赚钱,以培养中国工程师为己任
******************************************************************************/
#include <Wire.h>
#include <Adafruit_MLX90614.h>
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
void setup() {
Serial.begin(9600);
if (!mlx.begin()) {
Serial.println("Couldn't find MLX90614 sensor!");
while (1);
}
}
void loop() {
Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempC());
Serial.print("*C\tObject = "); Serial.print(mlx.readObjectTempC()); Serial.println("*C");
delay(500); // 稍作延迟
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
使用验证
串口输出的 Ambient 为环境温度;Object 为被测量物体温度;