跳转到内容

Slow PWM 输出

与 PWM 类似,Slow PWM 输出平台允许你通过在较长的时间段内 脉冲 GPIO 引脚开启/关闭来控制它们。它可以用来通过继电器控制 加热元件,这种情况下使用快速的 PWM 更新周期并不合适。

NOTE

这是用于慢速 PWM 输出。对于快速切换的 PWM 输出(例如 灯光),请参见这些输出:

# Example configuration entry
output:
- platform: slow_pwm
pin: GPIOXX
id: my_slow_pwm
period: 15s
  • id (必需, ID): 用于此输出组件的 id。

  • period (必需, 时间): 每个周期的持续时间。(例如,在 50% 占空比下,10s 的周期意味着引脚开启 5s,然后关闭 5s)

  • pin (可选, Pin Schema): 要脉冲的引脚。

  • state_change_action (可选, 自动化): 负载切换时执行的自动化。如果使用 lambda,则布尔型 state 参数保存新状态。

  • turn_on_action (可选, 自动化): 负载开启时执行的自动化。可用于控制开关或输出组件等。

  • turn_off_action (可选, 自动化): 负载关闭时执行的自动化。turn_on_action 和 turn_off_action 必须一起配置。

  • restart_cycle_on_state_change (可选, boolean): 当设置新状态时,重新启动一个周期的计时器。默认为 false。

  • 所有其他选项请参见 输出。

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 来更改输出状态。仅建议在监控场景下同时使用这两个自动化。
output:
- platform: slow_pwm
id: my_slow_pwm
period: 15s
turn_on_action:
- lambda: |-
auto *out1 = id(output1);
out1->turn_on();
turn_off_action:
- output.turn_off: output1

NOTE

如果占空比不受最大值限制, Sigma Delta 输出 组件提供更快更新和 对开关频率的更大控制。这对于需要一些时间才能在开和关之间完全切换的负载 (如电式热 执行器或风扇)更好。