Привет! к NodeMCU подключен ШИМ с LED лентой, БП с запасом, ничего не греется но гудит когда ШИМ != 0 || != 100
гуглил и вроде как говорят что на arduino помогает увеличить частоту, а как это сделать для ESP? гугл не говорит :(
#define TABLE_LIGHT 12
pinMode (TABLE_LIGHT, OUTPUT);
из MQTT приходит в процентах 0-100%
String strPayload = String((char*)payload); //считываем значение топика
int val = strPayload.toInt(); //конвертируем для шим
int stled = map(val, 0, 100, 0, 1024); //приводим значение 0-100 в значение 1024-0
set_pwm_smooth(stled);
и далее реализуется так:
void set_pwm_smooth(int new_pwm) {
static const int pwm_step = 1; // шаг изменения ШИМ
static const int pwm_step_time = 3; // время одного шага изменения ШИМ
static int stled;
int pwm = stled;
while (pwm != new_pwm) {
int next_pwm = pwm + (pwm < new_pwm ? pwm_step : -pwm_step);
if ((pwm < new_pwm && next_pwm > new_pwm) ||
(pwm > new_pwm && next_pwm < new_pwm))
pwm = new_pwm;
else
pwm = next_pwm;
analogWrite(TABLE_LIGHT, pwm);
delay(pwm_step_time);
}
stled = new_pwm;
}