ESPHome 2026.11.0-dev
Loading...
Searching...
No Matches
servo.h
Go to the documentation of this file.
1#pragma once
2
7
8namespace esphome::servo {
9
10extern uint32_t global_servo_id; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
11
12class Servo final : public Component {
13 public:
14 void set_output(output::FloatOutput *output) { output_ = output; }
15 void loop() override;
16 void write(float value);
17 void internal_write(float value);
18 void detach();
19 void setup() override;
20 void dump_config() override;
21 void set_min_level(float min_level) { min_level_ = min_level; }
22 void set_idle_level(float idle_level) { idle_level_ = idle_level; }
23 void set_max_level(float max_level) { max_level_ = max_level; }
24 void set_restore(bool restore) { restore_ = restore; }
25 void set_auto_detach_time(uint32_t auto_detach_time) { auto_detach_time_ = auto_detach_time; }
26 void set_transition_length(uint32_t transition_length) { transition_length_ = transition_length; }
27
28 bool has_reached_target() { return this->current_value_ == this->target_value_; }
29
30 protected:
31 void save_level_(float v);
32
34 float min_level_ = 0.0300f;
35 float idle_level_ = 0.0750f;
36 float max_level_ = 0.1200f;
37 bool restore_{false};
41 uint8_t state_;
42 float target_value_ = 0;
43 float source_value_ = 0;
44 float current_value_ = 0;
51};
52
53} // namespace esphome::servo
Base class for all output components that can output a variable level, like PWM.
uint32_t start_millis_
Definition servo.h:45
void set_idle_level(float idle_level)
Definition servo.h:22
void loop() override
Definition servo.cpp:40
uint32_t transition_length_
Definition servo.h:39
void set_restore(bool restore)
Definition servo.h:24
void write(float value)
Definition servo.cpp:72
uint32_t auto_detach_time_
Definition servo.h:38
void set_max_level(float max_level)
Definition servo.h:23
void setup() override
Definition servo.cpp:24
void dump_config() override
Definition servo.cpp:12
void set_transition_length(uint32_t transition_length)
Definition servo.h:26
void set_min_level(float min_level)
Definition servo.h:21
output::FloatOutput * output_
Definition servo.h:33
bool has_reached_target()
Definition servo.h:28
void set_auto_detach_time(uint32_t auto_detach_time)
Definition servo.h:25
void internal_write(float value)
Definition servo.cpp:86
ESPPreferenceObject rtc_
Definition servo.h:40
void save_level_(float v)
Definition servo.cpp:103
void set_output(output::FloatOutput *output)
Definition servo.h:14
uint32_t global_servo_id
Definition servo.cpp:10
static void uint32_t