『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 557|回复: 2

[硬件DIY] pwm风扇怎么设置淡入淡出效果

[复制链接]

39

主题

202

帖子

1621

积分

金牌会员

Rank: 6Rank: 6

积分
1621
金钱
1419
HASS币
0
发表于 2024-8-3 07:31:39 | 显示全部楼层 |阅读模式
关闭风扇时候直接从100变成0.电机会惯性震荡.按不住啊.在触发关闭动作时候缓慢调到低至关闭而不是直接关闭防止引起抖动.等大佬作业output:
  - platform: ledc
    pin: GPIO5
    frequency: 15000 Hz
    max_power: "0.7"
    id: output_1
    inverted: true

fan:
  - platform: speed
    output: output_1
    name: "DC Move Fan"
    id: fan_speed
    on_turn_on:
      then:
        - lambda: |-
            for (int i = 0; i <= 100; i += 10) {
              fan.set_speed(id(fan_speed), i);
              delay(100);  // 延迟100ms,调整以改变淡入速度
            }

    on_turn_off:
      then:
        - lambda: |-
            for (int i = 100; i >= 0; i -= 10) {
              fan.set_speed(id(fan_speed), i);
              delay(100);  // 延迟100ms,调整以改变淡出速度
            }
switch:
  - platform: gpio
    name: "S启动"
    pin:
      number: GPIO6
      inverted: true
      mode:
        output: true
        open_drain: true
    restore_mode: ALWAYS_ON
  - platform: gpio
    pin:
      number: GPIO4
      mode:
        output: true
        open_drain: true
    name: "F方向"
    restore_mode: ALWAYS_OFF
binary_sensor:
  - platform: gpio
    pin:
      number: GPIO0
      #inverted: true
      mode:
        input: true
        pullup: true
    name: "2档"
    filters:
      - delayed_on: 1000ms
      - delayed_off: 1000ms
    on_press:
      - fan.turn_on:
          id: fan_speed
          speed: 80
  # - platform: gpio
  #   pin:
  #     number: GPIO1
  #     inverted: true
  #     mode:
  #       input: true
  #       pullup: true
  #   name: "1"
  - platform: gpio
    pin:
      number: GPIO2
      #inverted: true
      mode:
        input: true
        pullup: true
    name: "3档"
    filters:
      - delayed_on: 1000ms
      - delayed_off: 1000ms
    on_press:
      - fan.turn_on:
          id: fan_speed
          speed: 99
  - platform: gpio
    pin:
      number: GPIO3
      #inverted: true
      mode:
        input: true
        pullup: true
    name: "1档"
    filters:
      - delayed_on: 1000ms
      - delayed_off: 1000ms
    on_press:
      - fan.turn_on:
          id: fan_speed
          speed: 70
  # - platform: gpio
  #   pin:
  #     number: GPIO7
  #     inverted: true
  #     mode:
  #       input: true
  #       pullup: true
  #   name: "7"
  # - platform: gpio
  #   pin: GPIO10
  #   name: 10
  - platform: gpio
    pin:
      number: GPIO21
      #inverted: true
      mode:
        input: true
        pullup: true
    name: "T定时器"


回复

使用道具 举报

3

主题

79

帖子

617

积分

高级会员

Rank: 4

积分
617
金钱
538
HASS币
0
发表于 2024-8-3 09:08:16 | 显示全部楼层
output:
  - platform: ledc
    frequency: 40000Hz
    pin: 0
    id: ${device_name}_ledc

fan:
  - platform: speed
    output: ${device_name}_ledc
    name: ${device_name}
回复

使用道具 举报

10

主题

1332

帖子

4250

积分

论坛元老

Rank: 8Rank: 8

积分
4250
金钱
2918
HASS币
0
发表于 2024-8-3 12:05:00 | 显示全部楼层
可以用自动化,100-10可以设置成1分钟甚至10分钟,随心所欲。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 08:54 , Processed in 0.046630 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表