快速验证方式有多种,使用Arduino R4开发板进行快速驱动就是方法之一,Arduino集成了非常多的驱动库,我们可以在Arduino IDE中直接进行查找、安装、使用。接下来就让我们一起来看一看如何继续快速驱动操作的。
硬件连接
首先我们需要将传感器和开发板连接起来,需要注意的是I2C接口通信的一般要求,在实际电路连接过程中,若没有进行上拉的动作,I2C依然无法正常工作。这里我们是通过设计传感器板PCB的方式,添加上拉电阻,这样对于Arduino R4开发板上的两路I2C都能够使用了,为了连接的便利性,我们实际连接的是qwiic接口,这个接口实现了通信电平的匹配,自然是能够使用的,实际的硬件连接如下:
硬件验证
我们首先使用IICScan程序进行硬件方面的验证,正常情况下如果硬件连接没有问题,应该是可以扫描到对应的地址的,我们运行程序观察串口打印情况,可以看到打印出了搜索到的对应地址“I2C device found at address 0x33 !”,也就说明硬件连接上没有什么问题了:
软件设计
接下来我们使用Arduino R4开发板进行实际的MLX90640传感器的驱动,我们在库管理模块中搜索“MLX90640”,可以发现对应的库,这里我们选择的是“Adafruit MLX90640 by Adafruit”。arduino的快速验证就体现在这里,对应的库文件里面会有对用的示例,由于Arduino R4开发板并不具备MLX90640传感器全像素显示的能力,我们只能通过串口进行查看,这样我们就可以通过对例程的修改,将全像素打印的能力转化为最大温度以及环境温度数据的输出方式,代码如下:
void loop() {
delay(500);
maxtem = 0;
if (mlx.getFrame(frame) != 0) {
Serial.println("Failed");
return;
}
Serial.println("===================================");
Serial.print("Ambient temperature = ");
Serial.print(mlx.getTa(false));
Serial.println(" degC");
for (uint8_t h=0; h<24; h++) {
for (uint8_t w=0; w<32; w++) {
float t = frame[h*32 + w];
if(t>maxtem) {
maxtem = t;
}
}
}
Serial.print("MAX temperature = ");
Serial.print(maxtem);
}
效果展示
串口打印效果如下:
这里我们通过Arduino R4开发板实现了对MLX90640传感器的基本驱动测试,可以根据配置的参数进行对应传感器数据的采集以及处理输出。


