AS5600 12 位磁性位置传感器
as5600 传感器平台允许您通过 ESPHome 使用 AS5600(数据手册,
AMS)或 AS5600L(数据手册,
AMS)12 位磁性位置传感器。单独传感器将使用
AS5600 传感器平台 添加。要使用此中心,请先设置
I²C 总线 并将传感器连接到指定的引脚。

as5600: dir_pin: GPIOXX start_position: 0deg range: 180deg-
dir_pin (可选, int): 连接到 AS5600 方向引脚的引脚。 有关更多信息,请参阅 方向。
-
direction (可选, string): 磁铁应旋转以增加值的方向。 与 dir_pin 配合使用。
clockwise(默认)counterclockwise
-
start_position (可选, int): 应视为起始位置(即
0)的原始位置。 请参阅 位置/范围。 -
end_position (可选, int): 应视为允许旋转范围末端(例如 180deg)的原始位置。 与 range 互斥。请参阅 位置/范围。
-
range (可选, int): 从 start_position 开始的允许旋转范围。与 end_position 互斥。请参阅 位置/范围。
-
hysteresis (可选, string): 请参阅数据手册。
none(默认)lsb1lsb2lsb3
-
power_mode (可选, string): 传感器运行的功耗模式。注意:当启用 watchdog 时, 如果位置没有太多变化,它会将设备切换到
low3。nominal(默认)low1low2low3
-
watchdog (可选, boolean): 是否启用将芯片置于 低功耗模式 3 的看门狗。请参阅数据手册获取更多信息。 默认为
off。 -
slow_filter (可选, string): 请参阅数据手册。
16x(默认)8x4x2x
-
fast_filter (可选, string): 请参阅数据手册。
none(默认)lsb6lsb7lsb9lsb18lsb21lsb24lsb10
-
address (可选, int): 传感器的 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 (可选, string): 如何处理超出范围的值。仅适用于配置 为小于 360 度范围的情况。默认为
min_max。请参阅 超出范围模式。 -
update_interval (可选, Time): 检查 传感器的时间间隔。默认为
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;'