跳转到内容

Sigma-Delta 输出

此组件使用 sigma-delta 调制 在二进制输出上输出浮点值。与 Slow Pwm 不同, 可以在每个更新周期更新输出值,而不仅仅是在较长周期的末尾。

周期为 100s 的Slow PWM与更新间隔为 1s 的sigma-delta 输出之间的对比

例如,如果你选择每隔 1 秒最多切换一次输出,并决定 PWM 周期为 10 秒,对于相当频繁的更新,使用 Slow Pwm 只有 10 个可能的级别,而更高的精度需要更长的更新间隔, 从而限制了更新速率。

sigma-delta 输出在每个周期中更新,因此可以实现更高的精度,而 不受计算时间框架(=周期)的限制。

因此,你不再需要定义 period(脉冲宽度决定输出级别),而是 选择 update_interval,它充当时钟信号,脉冲密度决定输出级别。

此组件可以作为 Slow Pwm 的即插即用替代品,只需将 platform 更改为 sigma_delta_output,并将 period 更改为 update_interval(通常你需要将 sigma-delta 的 update_interval 设置为 Slow PWM period 的分数以得到相似结果)

# Example configuration entry
output:
- platform: sigma_delta_output
update_interval: 10s
id: sd_heater_output
# Output to a pin
pin: GPIOXX
# Use the same output, but through automations
turn_on_action:
then:
- output.turn_on: heater_relay
turn_off_action:
then:
- output.turn_off: heater_relay
- platform: gpio
pin: GPIOXX
id: heater_relay

配置变量:

  • update_interval (可选, 时间): 输出重新计算的周期间隔。默认为 60s。
  • pin (可选, Pin Schema): 要脉冲的引脚。
  • state_change_action (可选, 自动化): 负载切换时执行的自动化。如果使用 lambda,则布尔型 state 参数保存新状态。
  • turn_on_action (可选, 自动化): 负载开启时执行的自动化。可用于控制开关或输出组件等。
  • turn_off_action (可选, 自动化): 负载关闭时执行的自动化。turn_on_action 和 turn_off_action 必须一起配置。
  • 所有选项请参见 输出。

NOTE

  • 如果定义了 pin,GPIO 引脚状态会在任何操作执行之前写入。
  • state_change_action 和 turn_on_action /turn_off_action 可以一起使用。state_change_action 在 turn_on_action /turn_off_action 之前调用。建议使用 state_change_action 或 turn_on_action /turn_off_action 来更改输出状态。仅建议在监控场景下同时使用这两个自动化。

NOTE

如果输出在关闭之前不能连续活动超过某个固定时间,需要 冷却一段时间,则应使用 Slow Pwm 配合 max_power 设置来更好地控制占空 比。