GyverMOD icon indicating copy to clipboard operation
GyverMOD copied to clipboard

Вопрос по коду.

Open ghost opened this issue 4 years ago • 2 comments

Добрый вечер, Alex Gaver. Я начел изучать ваш код и наткнулся на один момент, есть переменная PWM_f, которая при режиме варивольт расчитывается. А если установлен не этот режим, то переменнная PWM_f нигде не расчитывается. Как тогда это работает?

ghost avatar Mar 10 '21 15:03 ghost

У меня похожий вопрос. Смотрите прикол: переменная watts используется когда читается из памяти, с кнопкой вверх + ограничения, с кнопкой вниз + ограничения, при отображении на дисплее, при записи в память. При расчете PWM ее блин нету! Вот вам фото, найдите слово watts.

Снимок экрана 2022-11-21 в 17 06 40

ruth3n avatar Nov 21 '22 14:11 ruth3n

Короче, переписал. Снизу подсчет ним через получение напряжения из мощности по U=sqrt(PR). Может оно и работало до этого, но так явно лучше.

                  if (mode == 1) {                                              // если ВАРИВАТТ
                        PWM = (float)sqrt(watts * ohms) / bat_volt_f * 1024;        // считаем значение для ШИМ сигнала
                        if (PWM > 1023) PWM = 1023;                                 // ограничил PWM "по-тупому", потому что constrain сука не работает!
                        PWM_f = PWM_filter_k * PWM + (1 - PWM_filter_k) * PWM_old;  // фильтруем
                        PWM_old = PWM_f;                                            // фильтруем
                    }

Если кто-то из админов воскреснет, закройте issue

ruth3n avatar Nov 21 '22 15:11 ruth3n