Sigma-Delta 输出
此组件使用 sigma-delta 调制在二进制输出上输出浮点值。与 Slow Pwm 不同,它可以在每个更新周期更新输出值,而不仅仅是在较长周期结束时。
例如,如果您选择最多每 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 的一小部分以获得类似结果)
# 示例配置条目output: - platform: sigma_delta_output update_interval: 10s id: sd_heater_output
# 输出到引脚 pin: GPIOXX
# 使用相同输出,但通过自动化 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 (必填, 时间):重新计算输出的周期间隔。
- pin (可选, 引脚架构):要脉冲的引脚。
- state_change_action (可选, 自动化):负载切换时执行的自动化。如果使用 lambda,布尔值
state参数保存新状态。 - turn_on_action (可选, 自动化):负载开启时执行的自动化。可用于控制例如开关或输出组件。
- turn_off_action (可选, 自动化):负载关闭时执行的自动化。
turn_on_action和turn_off_action必须一起配置。 - 所有选项来自 Output。
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 以更好地控制占空比。