ESP32 S3 MLX90614的端口 arduino例程
时间: 2024-11-05 16:26:24 浏览: 20
MLX90614_arduino_MLX90614arduino_
4星 · 用户满意度95%
ESP32 S3与MLX90614红外温度传感器配合使用时,需要通过I2C通信协议连接。在Arduino IDE中,首先确保已经安装了必要的库,如Wire库(用于I2C操作)和MLX90614库。
以下是一个简单的Arduino端口示例程序,用于读取两个热敏元件(通常是一对测温头)的数据:
```cpp
#include <Wire.h>
#include "MLX90614.h"
// 硬件地址,如果你有两组MLX90614,可能需要设置成对应地址
#define TEMP_ADDR1 0x5A // 主模块地址
#define TEMP_ADDR2 0x5B
MLX90614 mlx(TEMP_ADDR1); // 创建一个MLX90614实例,主模块地址
void setup() {
Serial.begin(9600);
if (!mlx.init()) { // 初始化MLX90614
Serial.println("Failed to initialize MLX90614");
return;
}
}
void loop() {
float objTemp1, objTemp2; // 对象温度
float ambientTemp; // 周围环境温度
// 获取数据
if (mlx.read temps(objTemp1, objTemp2)) {
Serial.print("Object 1 temperature: ");
Serial.println(objTemp1, 2); // 保留两位小数
Serial.print("Object 2 temperature: ");
Serial.println(objTemp2, 2);
ambientTemp = mlx.getAmbientTemperature(); // 周围环境温度
Serial.print("Ambient Temperature: ");
Serial.println(ambientTemp, 2);
} else {
Serial.println("Failed to read temperatures");
}
delay(500); // 每隔半秒读取一次
}
```
在这个例子中,`setup()`函数设置了串口通信并初始化MLX90614,`loop()`函数则持续循环读取温度,并将结果打印到串口监视器。
阅读全文