AS5600 12 位磁性位置传感器
组件/集线器
Section titled “组件/集线器”as5600 传感器平台允许您在 ESPHome 中使用 AS5600(数据手册、AMS)或 AS5600L(数据手册、AMS)12 位磁性位置传感器。单独的传感器将使用 AS5600 传感器平台 添加。要使用此集线器,首先设置 I²C 总线 并将传感器连接到指定的引脚。
as5600: dir_pin: GPIOXX start_position: 0deg range: 180deg-
dir_pin (可选, 整数): 连接到 AS5600 方向引脚的引脚。 有关更多信息,请参阅 方向。
-
direction (可选, 字符串): 磁铁应旋转以增加数值的方向。 与 dir_pin 结合使用。
clockwise(顺时针,默认)counterclockwise(逆时针)
-
start_position (可选, 整数): 应被视为起始位置(即
0)的原始位置。 请参阅 位置/范围。 -
end_position (可选, 整数): 应被视为允许旋转范围终点(例如 180deg)的原始位置。与 range 互斥。请参阅 位置/范围。
-
range (可选, 整数): 从 start_position 开始的允许旋转范围。与 end_position 互斥。请参阅 位置/范围。
-
hysteresis (可选, 字符串): 请参阅数据手册。
none(默认)lsb1lsb2lsb3
-
power_mode (可选, 字符串): 运行传感器的电源模式。注意:当启用 watchdog 时,如果位置变化不大,它将把设备切换到
low3模式。nominal(默认)low1low2low3
-
watchdog (可选, 布尔值): 是否启用将芯片置于低功耗模式 3 的看门狗。 有关更多信息,请查看数据手册。默认为
off。 -
slow_filter (可选, 字符串): 请参阅数据手册。
16x(默认)8x4x2x
-
fast_filter (可选, 字符串): 请参阅数据手册。
none(默认)lsb6lsb7lsb9lsb18lsb21lsb24lsb10
-
address (可选, 整数): 传感器的 I²C 地址。 有关更多信息,请参阅 I²C 地址。
-
id (可选, ID): 手动指定此 AS5600 集线器的 ID。
-
I²C 总线 中描述的 I²C 设备的所有其他选项。
AS5600 有一个 direction 引脚,用于控制哪个旋转方向会使位置值增加。
此引脚应拉低以实现顺时针,拉高以实现逆时针。如果悬空,您可能会遇到不稳定的行为。
如果您希望 ESP 控制器将该引脚拉高或拉低,您可以配置 dir_pin,并可选择配置 direction 选项,让 ESP 控制器将引脚拉高或拉低。
位置和范围可以配置为以下之一:
-4095到4095之间的数值-360deg到360deg之间的角度-100%到100%之间的百分比
NOTE
负位置值将归一化为其相应的正位置(例如 -90deg 将转换为 270deg)。
AS5600 报告 2 种位置值。两种类型的位置值始终是 0 到 4095 之间的整数。
“原始”位置值未经过滤、缩放等处理。因此,当磁铁北极位于芯片顶部时,值始终为 0;当磁铁北极位于芯片底部时,值始终为 2048,以此类推。
常规/缩放位置根据传感器配置(例如 start_position、end_position、range 等)进行过滤和缩放。
例如,假设我们有以下组件配置:
as5600: start_position: 90deg range: 180deg direction: clockwise dir_pin: GPIOXX- 如果磁铁北极位于芯片右侧(即 1024 / 90deg 原始位置),缩放位置将报告值
0。 - 如果磁铁北极位于芯片底部(即 2048 / 180deg 原始位置),缩放位置将报告值
2048。 - 如果磁铁北极位于芯片左侧(即 3096 / 270deg 原始位置),缩放位置将报告值
4095。 - 如果磁铁北极位于芯片顶部(即 0 / 0deg 原始位置),缩放位置将超出范围(下面讨论了这也有其自身的注意事项)。
NOTE
您可以指定一个小于 start_position 的 end_position。这样做时,允许的范围将从 start_position 开始,一直持续到最高位置值(即 4095),然后从 0 继续直到达到 end_position。
WARNING
数据手册指出,可配置的最小角度(起始和结束位置,或起始和范围)为 18 度。 配置小于该值可能会产生意外结果。
I²C 地址
Section titled “I²C 地址”AS5600 地址不可配置,必须为 0x36。但是,如果使用 AS5600L,默认地址应为 0x40,并且可以配置。
as5600 传感器允许您使用 ESPHome 发布 AS5600 的角度/位置测量值。
首先,为您的 AS5600 传感器设置一个 AS5600 集线器,然后使用此传感器平台创建单独的传感器,将位置报告给 Home Assistant。
as5600: dir_pin: GPIOXX
sensor: - platform: as5600 name: Position raw_position: name: Raw Position gain: name: Gain magnitude: name: Magnitude status: name: Status-
out_of_range_mode (可选, 字符串): 如何处理超出范围的值。仅在配置为小于 360 度的范围时适用。默认为
min_max。请参阅 超出范围模式。 -
as5600_id (可选, ID): 手动指定要用于此传感器的 AS5600 集线器 的 ID。
-
update_interval (可选, 时间): 检查传感器的间隔。默认为
60s。 -
raw_position (可选): 报告磁铁的原始(未缩放、未过滤)位置。
- Sensor 的所有其他选项。
-
gain (可选): 有关自动增益控制的信息。通常用于诊断目的。 数据手册指出,当由 5V 供电时,此值将在 0-255 之间;当由 3.3V 供电时,此值将在 0-128 之间。 理想情况下,该值应接近各自范围的中部。
- Sensor 的所有其他选项。
-
magnitude (可选): 有关检测到的幅度的信息。通常用于诊断目的。 数据手册中似乎没有定义预期的比例,但是,AMS 提供了一份用户指南, 其中包含的图片显示其为
0到3000之间的比例。对于位置良好的磁铁,此值通常在2100左右。- Sensor 的所有其他选项。
-
status (可选): 有关磁铁状态的信息。通常用于诊断目的。 请参阅 磁铁状态
- Sensor 的所有其他选项。
-
Sensor 的所有其他选项。
超出范围模式
Section titled “超出范围模式”min_max(默认)nan
当使用小于 360deg 的范围时,会有一部分原始值被认为是”超出范围”的。默认情况下(min_max 模式),AS5600 将该范围分成两半,在最接近 start_position 的”超出范围”范围的一半中报告 0,在最接近 end_position / range 终点的”超出范围”范围的一半中报告 4095。或者,您可以设置为 nan 模式,当位置超出缩小范围时,传感器将发布 NAN(即”未知”)。
磁铁状态应报告以下值之一:
2表示未检测到磁铁。4表示检测到磁铁且读数良好。5表示检测到磁铁,但磁铁太强。如果磁铁太强,测量值可能会显示为卡住。6表示检测到磁铁,但磁铁太弱。在此状态下仍可能进行测量。
您可能希望将位置从原始的 0 到 4095 转换为度数,或者转换为允许范围的百分比。
以下是一些实现方法示例:
as5600: id: my_as5600sensor: - platform: as5600 update_interval: 1s name: Angle unit_of_measurement: '°' accuracy_decimals: 2 icon: mdi:rotate-right filters: - delta: 1 - lambda: 'return x * as5600::RAW_TO_DEGREES * id(my_as5600).get_range_scale();'as5600: id: my_as5600sensor: - platform: as5600 update_interval: 1s name: Percent unit_of_measurement: '%' accuracy_decimals: 2 icon: mdi:rotate-right filters: - delta: 1 - lambda: 'return (x / as5600::POSITION_COUNT) * 100;'