mirror of
https://github.com/esphome/esphome.git
synced 2024-11-21 22:48:10 +01:00
Fix servo detach chopped PWM (#1650)
This commit is contained in:
parent
76a6c39f25
commit
2e50e1f506
1 changed files with 5 additions and 0 deletions
|
@ -37,6 +37,11 @@ void HOT ESP8266PWM::write_state(float state) {
|
|||
uint32_t duty_off = total_time_us - duty_on;
|
||||
|
||||
if (duty_on == 0) {
|
||||
// This is a hacky fix for servos: Servo PWM high time is maximum 2.4ms by default
|
||||
// The frequency check is to affect this fix for servos mostly as the frequency is usually 50-300 hz
|
||||
if (this->pin_->digital_read() && 50 <= this->frequency_ && this->frequency_ <= 300) {
|
||||
delay(3);
|
||||
}
|
||||
stopWaveform(this->pin_->get_pin());
|
||||
this->pin_->digital_write(this->pin_->is_inverted());
|
||||
} else if (duty_off == 0) {
|
||||
|
|
Loading…
Reference in a new issue