MLX90640修改IIC地址,IIC总线挂载多个MLX90640


MLX90640 EEPROM地址与寄存器地址映射

地址
图中EEPROM地址 0x240F 中低字节是设备的I2C地址0x33,其对应的寄存器地址是0x8010。

MLX90640 修改I²C地址

  • MLX90640的I²C地址可以通过编程其EEPROM中的特定位来更改。每个MLX90640传感器在出厂时都被设置为默认地址(0x33),但用户可以通过更改EEPROM中的配置来设定不同的地址,最多可支持127个不同的地址。

在这里插入图片描述

  • 第一种修改方法是通过向EEPROM的特定地址写入新的I²C地址,来修改MLX90640的I²C地址。该方法修改后需重新上电。
void Chage_MLX90640_addr(uint16_t new_addr){
  uint16_t data;
  
  // 初始化IIC
  Wire.setPins(MLX_SDA_PIN, MLX_SCL_PIN);
  mlx.begin(MLX90640_I2CADDR_DEFAULT, &Wire);
  
  //erase
  mlx.MLX90640_I2CWrite(MLX90640_I2CADDR_DEFAULT, 0x240F, 0x00);
  delay(100);
  mlx.MLX90640_I2CRead(MLX90640_I2CADDR_DEFAULT, 0x240F, 1, &data);
  printf("设备地址%02X\r\n", (uint8_t)data);
  
  // 写入新地址
  if(!mlx.MLX90640_I2CWrite(MLX90640_I2CADDR_DEFAULT, 0x240F, new_addr)){
    Serial.println("MLX90640 地址更新成功\r\n");
  }
  delay(100);

  // 读出新地址
  mlx.MLX90640_I2CRead(MLX90640_I2CADDR_DEFAULT, 0x240F, 1, &data);
  printf("新地址%02X\r\n", (uint8_t)data);
}
  • 第二种方法是通过对应的寄存器地址0x8010,写入新的I²C地址。该方法修改即生效,但是断电不保留。
//new_addr :0xBEXX
void Chage_MLX90640_addr(uint16_t new_addr){
  uint16_t data;
  
  // 初始化IIC
  Wire.setPins(MLX_SDA_PIN, MLX_SCL_PIN);
  mlx.begin(MLX90640_I2CADDR_DEFAULT, &Wire);
  
  // 写入新地址
  mlx.MLX90640_I2CWrite(MLX90640_I2CADDR_DEFAULT, 0x8010, new_addr);
  delay(10);

  // 读出新地址
  mlx.MLX90640_I2CRead((uint8_t)new_addr, 0x8010, 1, &data);
  printf("新地址%X\r\n", data);
}

注意事项

  • 修改地址前,请确认所选地址不与系统中已有的其他I²C设备地址冲突。
  • 修改EEPROM是有限次数的,频繁修改可能会损害EEPROM。

欢迎在评论区留下你的问题或建议,让我们共同进步!

在这里插入图片描述

  • 13
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: mIx90640 IIC程序是一种针对mlx90640红外热像仪模块的控制程序。mlx90640是一种主动热式红外成像传感器,使用I2C总线接口与微控制器通信。 这个程序的作用是通过I2C接口与mlx90640模块进行通信和控制。它实现了一系列功能,如初始化传感器、读取温度数据、设置温度范围和分辨率等。 在程序中,首先需要初始化I2C总线以及相应的GPIO引脚。然后通过I2C总线mlx90640模块建立连接,并发送相应的配置参数,如传感器的采样速率和分辨率。程序还提供了读取温度数据的接口,可以实时获取不同像素点的温度值。读取温度数据时,程序会通过I2C总线发送命令,然后接收并解析返回的数据。 此外,程序还具有设置温度范围和分辨率的功能。通过调用相应的函数,可以设置热像仪传感器所监测的温度范围,以及设置读取温度数据时的分辨率。 总之,mlx90640 IIC程序是用于控制和读取mlx90640红外热像仪模块温度数据的程序。它通过I2C总线与模块通信,实现了初始化传感器、读取温度数据、设置温度范围和分辨率等功能。 ### 回答2: mlx90640iic程序是指使用I2C接口来驱动MLX90640红外热像仪的程序。MLX90640是一种高度集成的红外热像仪,可以测量目标物体的表面温度,并输出一个分辨率为32x24像素的热像。 要实现MLX90640的I2C程序,首先需要连接MLX90640到你的控制器上。MLX90640有一个I2C接口,需要将其SDA和SCL引脚连接到相应的控制器的I2C总线上。接下来,你需要在你的控制器上编写相应的程序来实现对MLX90640的控制。 在程序中,需要使用I2C协议来配置和读取MLX90640的寄存器。例如,配置采集模式、分辨率、设置待测温度范围等。这些配置可以通过写入寄存器来实现。此外,还可以通过读取寄存器来获取温度数据。MLX90640可以提供每个像素的温度值,程序需要将这些数据读取出来并进行处理。 在读取数据时,需要注意 I2C传输的数据格式。MLX90640的温度数据是以二进制的形式进行传输的,需要通过相应的算法将其转换为实际的温度值。这些算法可以在MLX90640的官方文档中找到。 在程序中,还可以使用一些附加功能来增强MLX90640的性能。例如,可以设置跟踪模式,使MLX90640可以实时跟踪目标物体,并输出跟踪结果。还可以设置温度差模式,用于检测物体的温度差异。 总而言之,mlx90640iic程序是一个使用I2C接口来驱动MLX90640红外热像仪的程序。它通过配置和读取MLX90640的寄存器来控制和获取相应的温度数据。这个程序可以对MLX90640进行各种功能的定制和处理,以满足不同的应用需求。 ### 回答3: mlx90640iic是一款基于IIC通信协议的红外热像仪传感器的程序。这个程序用于与mlx90640iic传感器进行通信和控制。 首先,程序需要初始化IIC总线,并设置好传感器的IIC地址。然后,程序通过IIC总线与传感器进行数据的读取和写入。 接下来,程序需要配置传感器的参数,如温度分辨率、采样速率等。根据具体需求,程序可以设置不同的参数,并通过IIC总线将这些参数发送给传感器。 通过调用库函数或自定义函数,程序可以读取传感器的温度数据。传感器将实时测得的温度数据通过IIC总线传输给程序,程序再进行解析和处理。 程序还可以对传感器进行控制,如开关传感器、设置传感器的工作模式等。通过IIC总线发送相应的指令,程序可以实现对传感器的远程控制。 最后,程序需要进行数据的处理和显示。对于红外热像仪传感器,可以将温度数据转化为图像,并通过显示设备进行显示。程序可以对温度数据进行颜色映射、图像增强等处理,并将处理后的图像显示出来。 总而言之,mlx90640iic程序用于与红外热像仪传感器进行通信、控制和数据处理。通过IIC总线与传感器进行交互,读取温度数据并进行处理和显示,从而实现对传感器的有效利用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值