1
0
mirror of https://github.com/esphome/esphome.git synced 2025-09-01 19:02:18 +01:00

Add H-Bridge switch component (#7421)

Co-authored-by: Keith Burzinski <kbx81x@gmail.com>
This commit is contained in:
David Woodhouse
2024-12-02 08:16:58 +00:00
committed by GitHub
parent edd847ea40
commit fb96e3588d
11 changed files with 313 additions and 186 deletions

View File

@@ -0,0 +1,39 @@
output:
- platform: ${pwm_platform}
pin: ${output1_pin}
id: gpio_output1
- platform: ${pwm_platform}
pin: ${output2_pin}
id: gpio_output2
- platform: ${pwm_platform}
pin: ${output3_pin}
id: gpio_output3
- platform: ${pwm_platform}
pin: ${output4_pin}
id: gpio_output4
light:
- platform: hbridge
name: Icicle Lights
pin_a: gpio_output3
pin_b: gpio_output4
fan:
- platform: hbridge
id: fan_hbridge
speed_count: 4
name: H-bridge Fan with Presets
pin_a: gpio_output1
pin_b: gpio_output2
preset_modes:
- Preset 1
- Preset 2
on_preset_set:
then:
- logger.log: Preset mode was changed!
switch:
- platform: hbridge
id: switch_hbridge
on_pin: ${hbridge_on_pin}
off_pin: ${hbridge_off_pin}

View File

@@ -1,33 +1,17 @@
output:
- platform: ledc
pin: 14
id: gpio_output1
- platform: ledc
pin: 15
id: gpio_output2
- platform: ledc
pin: 12
id: gpio_output3
- platform: ledc
pin: 13
id: gpio_output4
substitutions:
pwm_platform: ledc
output1_pin: "14"
output2_pin: "15"
output3_pin: "12"
output4_pin: "13"
hbridge_on_pin: "4"
hbridge_off_pin: "5"
light:
- platform: hbridge
name: Icicle Lights
pin_a: gpio_output3
pin_b: gpio_output4
packages:
common: !include common.yaml
fan:
- platform: hbridge
id: fan_hbridge
speed_count: 4
name: H-bridge Fan with Presets
pin_a: gpio_output1
pin_b: gpio_output2
preset_modes:
- Preset 1
- Preset 2
on_preset_set:
then:
- logger.log: Preset mode was changed!
switch:
- id: !extend switch_hbridge
pulse_length: 60ms
wait_time: 10ms
optimistic: false

View File

@@ -1,33 +1,16 @@
output:
- platform: ledc
pin: 4
id: gpio_output1
- platform: ledc
pin: 5
id: gpio_output2
- platform: ledc
pin: 6
id: gpio_output3
- platform: ledc
pin: 7
id: gpio_output4
substitutions:
pwm_platform: "ledc"
output1_pin: "4"
output2_pin: "5"
output3_pin: "6"
output4_pin: "7"
hbridge_on_pin: "2"
hbridge_off_pin: "3"
light:
- platform: hbridge
name: Icicle Lights
pin_a: gpio_output3
pin_b: gpio_output4
packages:
common: !include common.yaml
fan:
- platform: hbridge
id: fan_hbridge
speed_count: 4
name: H-bridge Fan with Presets
pin_a: gpio_output1
pin_b: gpio_output2
preset_modes:
- Preset 1
- Preset 2
on_preset_set:
then:
- logger.log: Preset mode was changed!
switch:
- id: !extend switch_hbridge
wait_time: 10ms
optimistic: true

View File

@@ -1,33 +1,15 @@
output:
- platform: ledc
pin: 4
id: gpio_output1
- platform: ledc
pin: 5
id: gpio_output2
- platform: ledc
pin: 6
id: gpio_output3
- platform: ledc
pin: 7
id: gpio_output4
substitutions:
pwm_platform: "ledc"
output1_pin: "4"
output2_pin: "5"
output3_pin: "6"
output4_pin: "7"
hbridge_on_pin: "2"
hbridge_off_pin: "3"
light:
- platform: hbridge
name: Icicle Lights
pin_a: gpio_output3
pin_b: gpio_output4
packages:
common: !include common.yaml
fan:
- platform: hbridge
id: fan_hbridge
speed_count: 4
name: H-bridge Fan with Presets
pin_a: gpio_output1
pin_b: gpio_output2
preset_modes:
- Preset 1
- Preset 2
on_preset_set:
then:
- logger.log: Preset mode was changed!
switch:
- id: !extend switch_hbridge
pulse_length: 60ms

View File

@@ -1,33 +1,16 @@
output:
- platform: ledc
pin: 14
id: gpio_output1
- platform: ledc
pin: 15
id: gpio_output2
- platform: ledc
pin: 12
id: gpio_output3
- platform: ledc
pin: 13
id: gpio_output4
substitutions:
pwm_platform: "ledc"
output1_pin: "14"
output2_pin: "15"
output3_pin: "12"
output4_pin: "13"
hbridge_on_pin: "4"
hbridge_off_pin: "5"
light:
- platform: hbridge
name: Icicle Lights
pin_a: gpio_output3
pin_b: gpio_output4
packages:
common: !include common.yaml
fan:
- platform: hbridge
id: fan_hbridge
speed_count: 4
name: H-bridge Fan with Presets
pin_a: gpio_output1
pin_b: gpio_output2
preset_modes:
- Preset 1
- Preset 2
on_preset_set:
then:
- logger.log: Preset mode was changed!
switch:
- id: !extend switch_hbridge
pulse_length: 60ms
wait_time: 10ms

View File

@@ -1,33 +1,16 @@
output:
- platform: esp8266_pwm
pin: 4
id: gpio_output1
- platform: esp8266_pwm
pin: 5
id: gpio_output2
- platform: esp8266_pwm
pin: 12
id: gpio_output3
- platform: esp8266_pwm
pin: 13
id: gpio_output4
substitutions:
pwm_platform: "esp8266_pwm"
output1_pin: "4"
output2_pin: "5"
output3_pin: "12"
output4_pin: "13"
hbridge_on_pin: "14"
hbridge_off_pin: "15"
light:
- platform: hbridge
name: Icicle Lights
pin_a: gpio_output3
pin_b: gpio_output4
packages:
common: !include common.yaml
fan:
- platform: hbridge
id: fan_hbridge
speed_count: 4
name: H-bridge Fan with Presets
pin_a: gpio_output1
pin_b: gpio_output2
preset_modes:
- Preset 1
- Preset 2
on_preset_set:
then:
- logger.log: Preset mode was changed!
switch:
- id: !extend switch_hbridge
pulse_length: 60ms
wait_time: 10ms

View File

@@ -1,33 +1,16 @@
output:
- platform: rp2040_pwm
pin: 4
id: gpio_output1
- platform: rp2040_pwm
pin: 5
id: gpio_output2
- platform: rp2040_pwm
pin: 6
id: gpio_output3
- platform: rp2040_pwm
pin: 7
id: gpio_output4
substitutions:
pwm_platform: "rp2040_pwm"
output1_pin: "4"
output2_pin: "5"
output3_pin: "6"
output4_pin: "7"
hbridge_on_pin: "2"
hbridge_off_pin: "3"
light:
- platform: hbridge
name: Icicle Lights
pin_a: gpio_output3
pin_b: gpio_output4
packages:
common: !include common.yaml
fan:
- platform: hbridge
id: fan_hbridge
speed_count: 4
name: H-bridge Fan with Presets
pin_a: gpio_output1
pin_b: gpio_output2
preset_modes:
- Preset 1
- Preset 2
on_preset_set:
then:
- logger.log: Preset mode was changed!
switch:
- id: !extend switch_hbridge
wait_time: 10ms
optimistic: true