1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

L298n драйвер шагового двигателя схема подключения

ДРАЙВЕР НИЗКОВОЛЬТНЫХ ЭЛЕКТРО ДВИГАТЕЛЕЙ

Основное применение аппаратной платформы Arduino – это конструирование роботов, во всяком случае, начинается знакомство с данной аппаратной платформой, как правило, именно с этого. Ходовая часть большинства колесных роботов [1] оснащается электромоторами, которые представляют собой мощную нагрузку, прямое подключение которой к портам Arduino может вызвать только выход из строя последней. Для подключения нагрузки потребляющей большой ток можно использовать самодельные релейные схемы или транзисторные ключи [2], а можно приобрести готовый драйвер для подключения электродвигателей на Ru.aliexpress.com

Устройство поставляется в обычном антистатическом пакете.

Модуль представляет собой печатную плату размером 43 х 43 мм, на которой установлена микросхема радиаторе, высота которого составляет 24 мм, масса 25 г.

Данное устройство позволяет одновременно управлять парой маломощных низковольтных электродвигателей постоянного тока. По заявлениям продавца максимально допустимый общий ток, которым можно нагрузить драйвер составляет 2 А на канал, а максимальная мощность двигателей ограничена 20 Вт. На плате хорошо видна пара двухклемных колодок для подключения электромоторов и трехклемная колодка для подачи напряжения питания.

Устройству требуется два напряжения питания 5-35 В для электродвигателей и 5 В для электронной части. При подаче питания на плате загорается индикатор подачи напряжения питания. При питания от напряжении ниже 12 В (автор проверял при 6 В), отдельный источник питания для электронной части можно не подключать.

На плате рядом с клеммой питания имеется перемычка, которую необходимо снять в случае раздельного питания силовой и электронной части [3-6]. Все колодки промаркированы с тыльной стороны платы.

Для управления нагрузкой плата драйвера имеет 6 информационных входов.

Входы IN1, IN2 задают направление вращения одного двигателя, а другая пара IN3, IN4, соответственно другого. Если на одном из входов пары присутствует низкий логический уровень, а на другом высокий, то ротор двигателя вращается в одну сторону, а если, сигналы поменяются на противоположные, то направление вращения также сменится. Если на оба входа подать низкий логический уровень, то двигатель будет остановлен. Как понимает автор, подача высокого логического уровня на оба выхода пары одновременно не допустима [7].

Если управление парой двигателей осуществляется только по четырем проводам, то двигатель развивает максимально допустимую мощность (программа L298N_1, взята из [5]). Скачать файл

Общие сведения о драйвере MX1508.

Основной чип модуля — это микросхема MX1508, состоящая из двух H-мостов (H-Bridge), один для выхода A, второй для выхода B, каждый канал рассчитан на 0,8 А с пиком 2,5 А. H-мост широко используется в электронике и служит для изменения вращения двигателя, схема H-моста содержит четыре транзистора (ключа) с двигателем в центре, образуя H-подобную компоновку. Принцип работы прост, при одновременном закрытии двух отдельных транзисторов, изменяется полярность напряжения, приложенного к двигателю. Это позволяет изменять направление вращения двигателя. На рисунке ниже, показана работа H-мостовой схемы.

Читать еще:  Шевроле авео как снять крышку двигателя

Управлять двигателем можно низковольтным напряжением, ниже, чем напряжение на плате Arduino. Для управления скоростью используется широтно-импульсная модуляция (PWM).

Модуль MX1508 содержит разъем для подключения питания, два выхода A и B, и разъем управления, с назначением каждого можно ознакомиться ниже:

  • Вывод «+» и «-» — питание модуля и двигателей, от 2 до 9,6 В;
  • Выводы A1 и A2 — используются для управления направлением вращения двигателя A;
  • Выводы B1 и B2 — используются для управления направлением вращения двигателя B;
  • Выходы MOTOR A — разъем для двигателя A;
  • Выходы MOTOR B — разъем для двигателя B;

Подключение MX1508 к Arduino (коллекторный двигатель).

Необходимые детали:

  • Arduino UNO.
  • Драйвер мотора на MX1508.
  • Коллекторный двигатель.

Схема подключения MX1508 к Arduino, и коллекторного двигателя к MX1508.

Первым делом, необходимо подключить источник питания от 2 до 9,6 B к модулю (в примере используется 5 В. от Arduino). Далее, подключаем управляющие провода A1, A2, B1, B2 (встречается маркировка, как на L298: IN1, IN2, IN3, IN1) к цифровым выводам Arduino 10, 11, 5 и 6. Теперь, подключаем двигатели, один к клеммам MOTOR A , а другой к клеммам MOTOR B. Схема подключения приведена ниже.

Теперь подключаем Arduino к компьютеру и загружаем скетч ниже.

Описание скетча:

Скетч простой, не требует дополнительных библиотек. Первым делом, указываем, к каким выводам подключен модуль.

Управление скоростью осуществляется с помощью ШИМ, для удобства используем переменную speed, в которой указываем скорость двигателя. Значение «0» — значит остановка, а «255» равносильно напряжению питания, и двигатели крутятся на максимальной скорости.

Далее, мы указываем, что данные выводы используем как выход.

Направление вращения двигателя осуществляется с помощью выводов A1 и A2 — для первого двигателя, B1 и B2 — для второго двигателя, то есть, если подать на вывод A1 — 0B (LOW), а на A2 — 5B (HIGH), двигатель A будет вращаться вперед (так же и для двигателя B). Для вращения назад, необходимо подать на A1 — 5B (HIGH), а на A2 — 0B (LOW), двигатель A будет вращаться назад (так же и для двигателя B). На основании этого напишем небольшие функции, которые позволят вращать оба двигателя вперед, назад, в противоположном направлении, и останавливать вращение обоих двигателей.

Реализуем вывод в монитор порта информацию о направлении вращения двигателя в данный момент.

Это поможет определить, правильно ли мы всё подключили, или нет. Если двигатели будут вращаться не в том направлении, как выводится в мониторе порта, то необходимо поменять местами провода подключения двигателей, и повторить проверку. Эта информация позволит настроить минимальный код для создания радиоуправляемой машины. Вот такие машинки я делал на Arduino и ESP8266 с использованием драйвера L298:

  • Собираем Arduino машинку на Motor Shield L293D и ИК пульте.
  • Машинка на радиоуправлении. Arduino + nrf24l01 + пульт.
  • Самодельная Wifi машинка на NodeMCU. Машина делает дрифт.
Читать еще:  Чем можно утеплять двигатель

Используя драйвер MX1508, собрать данные проекты не составит труда, так как код из проектов выше совместим с драйвером MX1508.

Появились вопросы или предложения, не стесняйся, пиши в комментарии!

Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.

Всем Пока-Пока.

И до встречи в следующем уроке.

Понравилась статья? Поделитесь ею с друзьями:

Технические характеристики

Модуль L298N имеет следующие технические параметры:

  • максимальное напряжение, потребляемое микросхемой, — 5 В;
  • сила тока — 36 мА;
  • напряжение, необходимое для питания двигателей — 35 В;
  • максимальна мощность драйвера при температурах выше +70°C равна 20 Вт;
  • размерные характеристики: 43x43x29 мм;
  • максимальная рабочая температура составляет +135°C.

Драйвер совместим с платами Arduino UNO R3, Nano, Mini и Leonardo. В базовой комплектации модуль обладает радиатором охлаждения и светодиодным индикатором, предназначенным для определения вращения силовых установок. Общий вес конструкции составляет 35 г.

Подключение шагового двигателя к Ардуино

Подключение будет рассмотрено на примере униполярного двигателя 28BYj-48 и драйверов L298 и ULN2003. В качестве платы будет использоваться Arduino Uno.

Подключение шагового двигателя к Ардуино

Еще один вариант схемы с использованием L298:

Подключение шагового двигателя к Ардуино на базе L298

Схема подключения на базе ULN2003 изображена на рисунке ниже. Управляющие выходы с драйвера IN1-IN4 подключаются к любым цифровым контактам на Ардуино. В данном случае используются цифровые контакты 8-11. Питание подключается к 5В. Также для двигателя желательно использовать отдельный источник питания, чтобы не перегрелась плата Ардуино.

Подключение шагового двигателя к Ардуино

Принципиальная схема подключения.

Принципиальная схема подключения шагового двигателя

Еще одна схема подключения биполярного шагового двигателя Nema17 через драйвер L298 выглядит следующим образом.

3 комментария . Оставить новый

Отличная статья. Небольшое дополнение.

>>В некоторых случаях может получиться так, что при реверсе транзистор успеет открыться, но ему комплементарный ещё не закроется и возникнет короткое замыкание.

Лучше всего это смотреть на схеме моста. Из этой схемы видно, что первоначальная озвученная причина в статье не верна.
Предполагаю, что описанная компенсация нужна из-за наличия инертности тока в моторе (мотор по сути катушка индуктивности) и при резком изменении полярности подключенного тока мы заставляем ток, отдаваемый моторомкатушкой работать против ЭДСпитания. Из-за этого очень сильно просаживается питание и может привести к нестабильностиперезагрузке контроллера.

Читать еще:  Что такое двигатель ямз238

При этом рекомендация по исправлению дана верно:

>>Чтобы этого избежать, можно прижимать пины к одному напряжению на несколько миллисекунд и только потом выполнять реверс.

Открыв оба нижних или оба верхних транзистора одновременно мы, таким образом, замкнем моторкатушку на саму себя и если дать немного времени (обождать несколько мс.) то побочный ток в результате короткого замыкания исчезнет и просадки не будет.

Здравствуйте! Благодарим вас за добавление ценной информации!

Подключение к Arduino

Экономичное подключение одного мотора без регулировки скорости вращения

Для этого замыкаем джампер как показано на рисунке, тем самым соединяя вывод EN с +5V

Как уже говорилось ранее, при таком способе мы не можем регулировать скорость вращения, однако для управления одним каналом модуля будет задействованно два цифровых вывода вместо трех.

Заставим моторчик вращаться «вправо» 4 секунды, остановиться на 0.5 секунды, вращаться «влево» 4 секунды, остановка 5 секунд и снова цикл повторяется.

Подключение одного мотора с регулировкой скорости вращения

В данном примере мы подсоединили ENB к выводу ШИМ (D3). Теперь становится возможно управлять скоростью мотора, изменяя скважность посылаемого ШИМ сигнала.

Значения скважности задаются функцией analogWrite (pin, число), где число изменяется от 0 до 255, прямо пропорционально скважности сигнала. Для наглядности, подобраны четыре значения при которых двигатель стартует с низких оборотов, набирает средние, выходит на максимальные и не вращается.

Финальный пример. Подключение двух моторов с регулировкой скорости вращения

В приведенном ниже скетче два мотора будут вращаться в обе стороны с плавным нарастанием скорости.

Описание библиотеки для работы с шаговым двигателем

В среде разработки Ардуино IDE существует стандартная библиотека Strepper.h для написания программ шаговых двигателей. Основные функции в этой библиотеке:

  • Stepper(количество шагов, номера контактов). Эта функция создает объект Stepper, которая соответствует подключенному к плате Ардуино двигателю. Аргумент – контакты на плате, к которым подключается двигатель, и количество шагов, которые совершаются для полного оборота вокруг своей оси. Информацию о количестве шагов можно посмотреть в документации к мотору. Вместо количества шагов может быть указан угол, который составляет один шаг. Для определения числа шагов, нужно разделить 360 градусов на это число.
  • Set Speed(long rpms) – функция, в которой указывается скорость вращения. Аргументом является положительное целое число, в котором указано количество оборотов в минуту. Задается после функции Step().
  • Step(Steps) –поворот на указанное количество шагов. Аргументом может быть либо положительное число – поворот двигателя по часовой стрелке, либо отрицательное – против часовой стрелки.
голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector