Биполярный шаговый двигатель как запустить
Обзор драйвера мотора на L298N
Автор: Сергей · Опубликовано 20.12.2018 · Обновлено 13.04.2020
Одним из самых простых и недорогх способов управления двигателями постоянного тока является модуль L298N Motor Driver с Arduino. Он может контролировать скорость и направление вращения двух двигателей постоянного тока, а так же управлять биполярным шаговым двигателем (типа NEMA 17).
Технические параметры
► Напряжение питания логики модуля: 5 В
► Потребляемый ток встроенной логики: 36 мА
► Напряжение питания драйвера: 5 В – 35 В
► Рабочий ток драйвера: 2 А (пиковый ток 3 А)
► Габариты: 43.5 мм х 43.2мм х 29.4мм
Общие сведения
Основной чип модуля это микросхема L298N, состоящая из двух H-мост (H-Bridge), один для выхода A, второй для выхода B. H-мост широко используется в электронике и служит для изменения вращения двигателем, схема H-моста содержит четыре транзистора (ключа) с двигателем в центре, образуя H-подобную компоновку. Принцип работы прост, при одновременном закрытие двух отдельных транзистора изменяется полярность напряжения, приложенного к двигателю. Это позволяет изменять направление вращения двигателя. На рисунке ниже, показана работа H-мостовой схемы.
Для управления скоростью двигателя постоянного тока используется метод PWM (Широтно-импульсной модуляции).
Модуль L298N содержит разъем для подключения питания, ряд перемычек для настройки модуля, два выхода A и B и разъем управления, которые регулируют скорость и направление вращения, назначение каждого можно ознакомится ниже:
► Вывод Vss — питание двигателей, от 5 до 35 В;
► Вывод GND — общий вывод заземления;
► Вывод Vs — питание для логической схемы;
► Перемычка ENA — используются для управления скоростью двигателя A;
► Вывода IN1 и IN2 — используются для управления направлением вращения двигателя A;
► Вывода IN3 и IN4 — используются для управления направлением вращения двигателя B;
► Перемычка ENB — используются для управления скоростью двигателя B;
► Выходы OUT1 и OUT2 — разъем для двигателя A;
► Выходы OUT3 и OUT4 — разъем для двигателя B;
Принципиальная схема модуля L298N
Питание модуля.
Питание модуля L298N осуществляется через трех контактный разъем, шагом 3,5 мм:
► Vs — источник питания двигателей, 3B — 35B
► GND — земля
► Vss — источник питания модуля, 4,5В — 5,5В
Фактически у модуля L298N, есть два контакта питания, а именно. «Vss» и «Vs». От «Vs» питаются двигатели с допустимым напряжением от 5 В до 35 В, а от «Vss» питается логическая схема модуля 4,5В до 5,5В. На плате установлен встроенный стабилизатор напряжения на 5 Вольт (78M05), его можно включить или отключить с помощью перемычки. Когда перемычка установлена, стабилизатор включен и питает логику модуля (Vss) от источника питания двигателя (Vs). При включенном стабилизаторе, вход «Vss» работает как выход и обеспечивает 5В с током 0,5 А. Когда перемычка убрана, стабилизатор отключен и необходимо отдельно подключить питание 5 Вольт на вход Vss.
Внимание! Нельзя установить перемычку, если напряжение двигателя ниже 12 Вольт.
Падение напряжения L298N
Падение напряжения драйвера L298N составляет около 2 В, это связано с внутренним падением напряжения в транзисторах в цепи H-мосте. Таким образом, если мы подключим 12 В к источнику питания двигателя, то двигатели получат напряжение около 10 В. Это означает, что двигатель на 12 В не будет работать с максимальной скоростью, для получения максимальной скорости, напряжение поданное на двигателя должен быть выше напряжения (2 В), чем потребность в фактическом напряжении двигателя. Учитывая падение напряжения на 2 В, если вы используете двигатели 5 В, вам необходимо обеспечить питание 7 В. Если у вас 12-ваттные двигатели, то напряжение питания вашего двигателя должно составлять 14 В.
Управления скоростью
Разъемы управления скоростью ENA и ENB используются для включения и выключения управления скоростью двигателей. Когда перемычка установлена, двигатель вращается с максимальной скоростью. Если необходимо управлять скоростью двигателей, необходимо убрать перемычку и подключить выводы к контактам с поддержкой PWM на Arduino.
Подключение L298N к Arduino (коллекторный двигатель)
Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Драйвер мотора на L298N (5-35V, 2A) x 1 шт.
► Коллекторный двигатель x 2 шт.
► Комплект проводов DuPont 2.54 мм, 20 см x 1 шт.
Подключение:
Первым делом необходимо подключить источник питания 12B к двигателям, в примере используется распространенные двигатель постоянного тока, рассчитанные на 3B . . . 12B (применяемые в робототехнике). Учитывая внутреннее падение напряжения на микросхеме L298N, двигатели получат 10 В и будут вращаться не в полную силу.
Далее, нужно подключить 5 вольт на логическую схему L298N, для этого воспользуемся встроенным стабилизатором напряжения, который работает от источника питания двигателя, поэтому, перемычка EN должна быть установлена.
Теперь осталось подключить управляющие провода ENA, IN1, IN2, IN3, IN4 и ENB к шести цифровым выводам Arduino 9, 8, 7, 5, 4 и 3. Обратите внимание, что выводы Arduino 9 и 3 поддерживают ШИМ. Теперь, подключаем двигатели, один к клемме A (OUT1 & OUT2), а другой к клемме B (OUT3 & OUT4). Принципиальная схема подключения приведена ниже.
Осталось подключить Arduino к источнику питания и загрузить скетч.
Контроль скорости двигателя
Ниже приведена принципиальная схема двигателя постоянного тока, подключенного к плате Arduino.
Arduino Code
Код для заметки
Транзистор действует как переключатель, управляющий мощностью двигателя. Контакт 3 Arduino используется для включения и выключения транзистора, и на эскизе ему присваивается название «motorPin».
Когда программа запускается, она предлагает вам ввести значения для управления скоростью двигателя. Вам необходимо ввести значение от 0 до 255 в Serial Monitor.
В функции «loop» команда «Serial.parseInt» используется для считывания числа, введенного в виде текста в Serial Monitor, и преобразования его в «int». Вы можете ввести любой номер здесь. Оператор ‘if’ в следующей строке просто выполняет аналоговую запись с этим номером, если число находится в диапазоне от 0 до 255.
Результат
Двигатель постоянного тока будет вращаться с различными скоростями в соответствии со значением (от 0 до 250), полученным через последовательный порт.