mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 07:03:55 +00:00 
			
		
		
		
	Add H-Bridge switch component (#7421)
Co-authored-by: Keith Burzinski <kbx81x@gmail.com>
This commit is contained in:
		
							
								
								
									
										39
									
								
								tests/components/hbridge/common.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								tests/components/hbridge/common.yaml
									
									
									
									
									
										Normal 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} | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user