Назначение драйвера электродвигателя: реверс, управление скоростью вращения, динамическое торможение.
Для создания самоделок на рынке существует несколько решений. Все они содержат защиту от ЭДС самоиндукции и управляются по примерно одинаковым алгоритмам.
В этой статье речь пойдет про плату которая позволяет управлять сразу двумя электродвигателями TB6612FNG (цена вопроса на Ali чуть больше 100 рублей)
- Диапазон напряжения питания силовой части: 4,5V … 13,5V.
- Диапазон напряжения питания логической части: 2,7 … 5,5V
- Номинальный\максимальный ток: 1,4A\3,2A
- Максимальная частота ШИМ: 100 кГц
Назначение выводов:
- PWMA \ PWMB — Вход для управления скоростью вращения мотора, для канала A и B соответственно, подключается на выход arduino с поддержкой ШИМ (PWM).
- AIN1 \ AIN2 — Входы полумостов канала A, подключаются на любые свободные выходы arduino.
- BIN1 \ BIN2 — Входы полумостов канала B.
- A01 \ A02 — Выходы полумостов канала A, подключается коллекторный двигатель.
- B01 \ B02 — Выходы полумостов канала B.
- STBY — Включение микросхемы, подключаются на любой свободный выход arduino.
- VM — Вход питания силовой части микросхемы, питание двигателей.
- VCC — Вход питания логической части микросхемы.
- GND — Масса.
Для управления электродвигателем необходимо организовать определенную комбинацию логических сигналов на входах драйвера.
Разберем для примера строчку 4 из этой таблицы.
- IN1 - логическая 1
- IN2 - логический 0
- PWM - управление скоростью вращения электродвигателя (если не требуется можно подать +5V и сэкономить пин)
- STBY - включение микросхемы (если не требуется можно подать +5V и сэкономить пин)
- Выход OUT1 будет подтянут к VM (+ питание электродвигателей)
- Выход OUT2 будет подтянут к GMD (- питание электродвигателей)
В режиме торможения оба выхода к которым подключен электродвигатель подтягиваются к земле.
После снятия питания электродвигатель вращается по инерции и превращается в генератор. Короткое замыкание по входу позволяет ускорить процесс остановки вала.
Пример работы с Arduino показан на этой схеме:
В среднем положении потенциометра, встроенный светодиод горит, двигатель стоит на месте. При повороте ручки вправо - двигатель начинает вращаться в одну сторону. При вращении ручки потенциометра влево двигатель начинает вращаться в другую сторону. Чем сильнее повернули ручку, тем больше скорость вращения. При вращении мотора светодиод гаснет.
При подключении потенциометра мы имеем набор значений 0....1023.
В середине делаем небольшую мертвую зону, чтобы можно избежать ложных запусков двигателя.
Значения 0....499 и 525....1023 преобразовываем в значения ШИМ сигнала с помощью встроенной в среду Arduino IDE функции:
map(value, fromLow, fromHigh, toLow, toHigh);
speedM = map(A, 525, 1023, 0, 255); // по часовой
speedM = map(A, 0, 499, 255, 0); // против часовой
Алгоритм определен можно писать программу:
Собираем прототип:
Работу макета смотрите тут:
Данный алгоритм отлично подходит для управления гусеничными платформами, например самодельным танком.
Два потенциометра в данном случае будут использоваться в качестве рычагов управления правой и левой гусеницей. Данные необходимо будет передавать по радиоканалу. Если данный вопрос вам интересен, оставляйте комментарий и не забывайте поставить лайк к этой статье.
Следующая статья будет посвящена запуску модели синхронного трехфазного электродвигателя, про который я рассказывал здесь:
Сделаем с помощью Arduino самодельный частотный преобразователь, и попробуем поуправлять электродвигателями работающими на переменном токе.
Драйвер на Ali: TB6612FNG
Полный список всех статей канала доступен по этой ссылке.
Всем удачи!