跳转到内容

MLX90393 三轴磁力计

mlx90393 传感器平台允许您在 ESPHome 中使用 MLX90393 (数据手册, Adafruit) 三轴磁力计。 使用此传感器需要在您的配置中设置 I²C

MLX90393 三轴磁力计
# 示例配置条目
sensor:
- platform: mlx90393
id: mlx
x_axis:
name: "x"
y_axis:
name: "y"
z_axis:
name: "z"
  • x_axis (可选): x 轴的信息。

    • resolution (可选, 整数): 指定要读取完整 19 位值的哪一部分。默认为 DIV_4。必须是以下之一:

      • DIV_8
      • DIV_4
      • DIV_2
      • DIV_1
    • 所有其他选项来自 传感器

  • y_axis (可选): y 轴的信息。

    • resolution (可选, 整数): 指定要读取完整 19 位值的哪一部分。默认为 DIV_4。必须是以下之一:

      • DIV_8
      • DIV_4
      • DIV_2
      • DIV_1
    • 所有其他选项来自 传感器

  • z_axis (可选): z 轴的信息。

    • resolution (可选, 整数): 指定要读取完整 19 位值的哪一部分。默认为 DIV_4。必须是以下之一:

      • DIV_8
      • DIV_4
      • DIV_2
      • DIV_1
    • 所有其他选项来自 传感器

  • temperature (可选): 内置温度传感器。

    • oversampling (可选, 整数): 温度传感器的片上过采样。默认为 0。必须在 03 之间。
    • 所有其他选项来自 传感器
  • drdy_pin (可选, 引脚方案): 数据就绪引脚。通常标记为 INT。使用此引脚可能会导致稍快的读取时间。

  • gain (可选, 整数): 设置模拟增益。默认为 1X。必须是以下之一

    • 1X
    • 1_25X
    • 1_67X
    • 2X
    • 2_5X
    • 3X
    • 3_75X
    • 5X
  • oversampling (可选, 整数): 片上过采样。默认为 2。必须在 03 之间。

  • filter (可选, 整数): 片上数字滤波器。默认为 6。必须在 07 之间。

  • temperature_compensation (可选, 布尔值): 片上温度补偿。默认为 false。启用时,不能使用分辨率选项 DIV_8DIV_4

  • hallconf (可选, 整数): 修改霍尔板旋转(2 相 vs 4 相)。默认为 0xC。必须是 0xC0x0

  • update_interval (可选, 时间): 检查传感器的时间间隔。默认为 60s

  • address (可选, 整数): 手动指定传感器的 I²C 地址。默认为 0x0C

  • i2c_id (可选, ID): 如果您想使用多个 I²C 总线,手动指定 I²C 组件 的 ID。

默认情况下,传感器配置为最低灵敏度。 这允许读取 50,000 µT 的磁场。然而,灵敏度限于 3 µT。 使用 gainresolution 选项可以显著改善这一点,代价是减少可测量的最大磁场。

传感器内部生成一个发送到放大器的模拟信号。 gain 选项控制此放大器。过多的放大将导致数值饱和,但不会整数溢出。

放大后,模拟信号使用 19 位 ADC 进行数字化。 只有 16 位被发送到 ESPHome。resolution 选项选择发送哪些位。

分辨率选项及其向 ESPHome 报告的位。DIV_8 发送最高有效 16 位,而 DIV_1 发送最低有效位。

请注意,ADC 实际上不会填满其所有 19 位。这导致 DIV_4DIV_8 具有相同的最大场强,同时提供更好的灵敏度。 只有 DIV_2DIV_1 实际使用所有值,赋予它们最佳的动态范围。然而,当超过最大场强时,两者都会导致整数溢出。

接收到 16 位值后,ESPHome 将其转换为 µT 为单位的浮点值。 因此,gainresolution 都不直接影响 ESPHome 中值的大小。

下表显示了每种组合的灵敏度和最大场强。 请注意,由于硬件限制,Z 轴的灵敏度较差。

gainresolution灵敏度 XY (µT/LSB)最大场强 XY (µT)灵敏度 Z (µT/LSB)最大场强 Z (µT)
1XDIV_86.00966,0989.680106,480
1XDIV_43.00466,0984.840106,480
1XDIV_21.50249,2252.42079,299
1XDIV_10.75124,6121.21039,649
1_25XDIV_84.80752,8787.74485,184
1_25XDIV_42.40452,8783.87285,184
1_25XDIV_21.20239,3801.93663,439
1_25XDIV_10.60119,6900.96831,719
1_67XDIV_83.60539,6595.80863,888
1_67XDIV_41.80339,6592.90463,888
1_67XDIV_20.90129,5351.45247,579
1_67XDIV_10.45114,7670.72623,790
2XDIV_83.00433,0494.84053,240
2XDIV_41.50233,0492.42053,240
2XDIV_20.75124,6121.21039,649
2XDIV_10.37612,3060.60519,825
2_5XDIV_82.40426,4393.87242,592
2_5XDIV_41.20226,4391.93642,592
2_5XDIV_20.60119,6900.96831,719
2_5XDIV_10.3009,8450.48415,860
3XDIV_82.00322,0333.22735,493
3XDIV_41.00122,0331.61335,493
3XDIV_20.50116,4080.80726,433
3XDIV_10.2508,2040.40313,216
3_75XDIV_81.60217,6262.58128,395
3_75XDIV_40.80117,6261.29128,395
3_75XDIV_20.40113,1270.64521,146
3_75XDIV_10.2006,5630.32310,573
5XDIV_81.20213,2201.93621,296
5XDIV_40.60113,2200.96821,296
5XDIV_20.3009,8450.48415,860
5XDIV_10.1504,9220.2427,930

对于 hallconf = 0x0,灵敏度按因子 98/75 缩放。例如,HALLCONF 0xC 下的 0.150μT/LSB 变为 HALLCONF 0x0 下的 0.196μT/LSB。最大场强也相应变化。