ESPHome 2026.11.0-dev
Loading...
Searching...
No Matches
stepper.h
Go to the documentation of this file.
1#pragma once
2
4
5namespace esphome::stepper {
6
7#define LOG_STEPPER(this) \
8 ESP_LOGCONFIG(TAG, \
9 " Acceleration: %.0f steps/s^2\n" \
10 " Deceleration: %.0f steps/s^2\n" \
11 " Max Speed: %.0f steps/s", \
12 this->acceleration_, this->deceleration_, this->max_speed_);
13
14class Stepper {
15 public:
16 void set_target(int32_t steps) { this->target_position = steps; }
17 void report_position(int32_t steps) { this->current_position = steps; }
18 void set_acceleration(float acceleration) { this->acceleration_ = acceleration; }
19 void set_deceleration(float deceleration) { this->deceleration_ = deceleration; }
20 void set_max_speed(float max_speed) { this->max_speed_ = max_speed; }
21 virtual void on_update_speed() {}
22 bool has_reached_target() { return this->current_position == this->target_position; }
23
24 int32_t current_position{0};
25 int32_t target_position{0};
26
27 protected:
28 void calculate_speed_(uint32_t now);
29 int32_t should_step_();
30
31 float acceleration_{1e6f};
32 float deceleration_{1e6f};
33 float current_speed_{0.0f};
34 float max_speed_{1e6f};
37};
38
39} // namespace esphome::stepper
void set_max_speed(float max_speed)
Definition stepper.h:20
virtual void on_update_speed()
Definition stepper.h:21
void set_acceleration(float acceleration)
Definition stepper.h:18
void report_position(int32_t steps)
Definition stepper.h:17
void set_target(int32_t steps)
Definition stepper.h:16
void set_deceleration(float deceleration)
Definition stepper.h:19
void calculate_speed_(uint32_t now)
Definition stepper.cpp:9
static void uint32_t