Я использую NodeMCU для управления драйвером двигателя BTS7960b . (техническое описание BTS7960) Этот драйвер управляет двигателем постоянного тока 12 В. На этом изображении показана моя проводка (без дисплея и кнопок и с NodeMCU вместо Arduino nano).
Моя проблема заключается в том, что когда драйвер настроен на максимальную скорость (на выводах L_EN и R_EN установлен высокий уровень, а также у LPWM или RPWN на 255 [обозначения выводов видны на этой странице ]), выходное напряжение двигателя постоянно составляет всего 3 В. вместо 12В . Из-за этого мой двигатель с высоким крутящим моментом на 180 об / мин работает только со скоростью около ~ 42 об / мин. Уменьшение скорости также снижает выходное напряжение. Например, установка скорости на 150 уменьшает напряжение до ~ 1,8 В. Неважно, в каком направлении вращается двигатель.
Двигатель, NodeMCU и драйвер питаются от одного источника питания с понижающим преобразователем. Я получаю такое же поведение с 3,3 В и 5 В на NodeMCU и драйвере. Что я делаю не так?
Спасибо за помощь! :)
Благодаря подсказкам @Peter Karlsen я понял это:
Я привык к 8-битному разрешению для PMW плат Arduino. Но поскольку мой NodeMCU использует чип ESP8266, разрешение PMW составляет 10 бит [ ссылка ]. Таким образом, максимальное значение не 255, а 1023.
Изменение значений в моем коде решило проблему.
Питер Карлсен
Поти
Питер Карлсен
Поти