Доброго дня, добрый люди. Использую ESP2866 (NodeMCU) и l293b как драйвер двигателя для реверсного вращения. Подовая сигнал на Input 1 и Input 2 все работает хорошо, двигатель вращается. Но подовая ШИМ на ножку Enable1/2 (в диапазоне 0 - 255) двигатель не вращается и издает писк меняющийся в зависимости от уровня ШИМ. Говорят что нужно увеличить/уменьшить частоту ШИМ? Это так? Как это сделать?
Увеличивать точно не нужно. Уменьшать - может быть. Но сначала надо все-таки найти ошибку в схемотехнике.
У меня внешний источник питания для электродвигателя 8V. Плюс уходит на 8-ую ножку L293B. Минус на общую землю. И голая микросхема.
4,5 ножки L293B и GND ESP2866 уходят на общую землю (как и изображено на схеме). Если убрать управление ШИМ, то все работает отлично. Подключая ШИМ появляется писк.
Удалось добиться некоторых результатов экспериментами с частотой и шагом ШИМ у ESP2866. Увеличив частоту с дефолтного 1Khz до 20Khz (если я все верно понимаю) Код (C++): analogWriteFreq(20000); analogWriteRange(255); Писк пропал. Но двигатель реагирует на ШИМ в диапазоне 200-255 Плавного роста вращения с медленных оборотов - нет (0 - 255), только резкий скачек, где то на шаге ~ 200. И нарастание при плавном изменении до 255. Вразумите умельцы
Используйте в паре с L293 схему управления L297. Если не получается "сломать" L293 напрямую, то будет проще. Двигатель будет адекватно работать от 50% ШИМ и выше, меньше малейшая нагрузка вызовет его остановку...