ESPHome 2025.12.0-dev
Loading...
Searching...
No Matches
hbridge_fan.h
Go to the documentation of this file.
1#pragma once
2
7
8namespace esphome {
9namespace hbridge {
10
15
16class HBridgeFan : public Component, public fan::Fan {
17 public:
18 HBridgeFan(int speed_count, DecayMode decay_mode) : speed_count_(speed_count), decay_mode_(decay_mode) {}
19
20 void set_pin_a(output::FloatOutput *pin_a) { pin_a_ = pin_a; }
21 void set_pin_b(output::FloatOutput *pin_b) { pin_b_ = pin_b; }
22 void set_enable_pin(output::FloatOutput *enable) { enable_ = enable; }
23 void set_preset_modes(std::initializer_list<const char *> presets) { preset_modes_ = presets; }
24
25 void setup() override;
26 void dump_config() override;
27 fan::FanTraits get_traits() override { return this->traits_; }
28
30
31 protected:
39 std::vector<const char *> preset_modes_{};
40
41 void control(const fan::FanCall &call) override;
42 void write_state_();
43
44 void set_hbridge_levels_(float a_level, float b_level);
45 void set_hbridge_levels_(float a_level, float b_level, float enable);
46};
47
48template<typename... Ts> class BrakeAction : public Action<Ts...> {
49 public:
50 explicit BrakeAction(HBridgeFan *parent) : parent_(parent) {}
51
52 void play(const Ts &...x) override { this->parent_->brake(); }
53
55};
56
57} // namespace hbridge
58} // namespace esphome
void play(const Ts &...x) override
Definition hbridge_fan.h:52
BrakeAction(HBridgeFan *parent)
Definition hbridge_fan.h:50
output::FloatOutput * pin_a_
Definition hbridge_fan.h:32
std::vector< const char * > preset_modes_
Definition hbridge_fan.h:39
output::BinaryOutput * oscillating_
Definition hbridge_fan.h:35
void set_hbridge_levels_(float a_level, float b_level)
void set_enable_pin(output::FloatOutput *enable)
Definition hbridge_fan.h:22
output::FloatOutput * enable_
Definition hbridge_fan.h:34
void set_pin_b(output::FloatOutput *pin_b)
Definition hbridge_fan.h:21
void set_preset_modes(std::initializer_list< const char * > presets)
Definition hbridge_fan.h:23
HBridgeFan(int speed_count, DecayMode decay_mode)
Definition hbridge_fan.h:18
fan::FanTraits get_traits() override
Definition hbridge_fan.h:27
void control(const fan::FanCall &call) override
void set_pin_a(output::FloatOutput *pin_a)
Definition hbridge_fan.h:20
output::FloatOutput * pin_b_
Definition hbridge_fan.h:33
Base class for all output components that can output a variable level, like PWM.
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
uint16_t x
Definition tt21100.cpp:5