Как подключить шаговый двигатель к l293d
Драйвер двигателей L293D подключение к Arduino
Опубликовано 23.02.2013 12:35:00
В данной статье мы разберем популярную, широко распространенную миросхему L293D.
Микросхема включает в себя сразу два драйвера для управления слаботочными моторами. Для дальнейшего удобства условно обозначим их как правый борт и левый борт.
Используемые компоненты (купить в Китае):
Начнем наш рассказ с краткого обзора технических характеристик L293D.
Несомненным плюсом данной микросхемы является раздельное питание логической части микросхемы, напряжение питания которой лежит в приделах 4.5-5 вольт (VSS), и силовой части питания двигателей (VS).
Используя данную микросхему мы можем управлять двигателями с довольно широким диапазоном питающего напряжения от 4.5 до 36 вольт, но при этом, L293D может выдать всего лишь 600mА продолжительного тока нагрузки на каждый канал. Пиковый (максимальный) ток может кратковременно подскочить до 1.2A.
Так же из положительных сторон данной микросхемы следует отметить её непривередливость к напряжению входных сигналов подаваемых на выводы INPUT.
Логический «0» распознается микросхемой когда входное напряжение
Итак, разберем по полочкам левый борт. Вывод ENABLE1 это главная фигура в управлении левым каналом, без лога единицы на его выводе (или ШИМ, об этом чуть позже) ничего работать не будет, вне зависимости от того что творится на выводах INPUT1 и INPUT2.
Выводы INPUT1 и INPUT2 задают направление вращения мотора. Их можно сравнить с рулем машины, тем более, что в данном случае сравнение подходит идеально, ведь мы не можем повернуть руль сразу в две стороны, а необходимо выбирать одну из двух. Из вышесказанного следует, что для поворота нам надо подать логическую единицу на вывод INPUT1, а на INPUT2 подать логический ноль. Для смены направления поменять местами INPUT1 «0», INPUT2 «1».
При подаче одинаковых логов мотор вращаться не будет, следовательно вращение можно остановить либо подачей логического нуля на вывод ENABLE1, при любой конфигурации IN1 и IN2, либо одинаковыми логами на IN1 и IN2, не изменяя конфигурации вывода EN1 (данный вариант мы и рассмотрим ниже).
Контакты GND соединяются с отрицательным полюсом источника питания (земля).
Оставшиеся выводы OUTPUT1 и OUTPUT2 служат непосредственно для подключения мотора.
Правый канал работает абсолютно идентично.
Рассмотрим самый простой вариант подключения L293D. Скорость вращения при таком варианте двигателя нерегулируемая, вывод EN1 подключен напрямую к +5V. Питание мотора также берется от стабилизатора установленного на Arduino. Питать таким образом от USB можно только очень слабые нагрузки (в данном случае потребляемый ток моторчика 100mA, и нет никаких внешних воздействий способных повысить потребляемый ток), и то такое подключение крайне не желательно.
Заставим моторчик вращаться «вправо» 4 секунды, остановиться на 0.5 секунды, вращаться «влево» 4 секунды, остановка 5 секунд и снова цикл повторяется.
● Проект 19: Шаговый двигатель 4-фазный, с управлением на ULN2003 (L293)
В этом эксперименте мы рассмотрим подключение к Arduino шагового двигателя.
Необходимые компоненты:
Шаговые двигатели представляют собой электромеханические устройства, задачей которых является преобразование электрических импульсов в перемещение вала двигателя на определенный угол. ШД нашли широкое применение в области, где требуется высокая точность перемещений или скорости. Наглядными примерами устройств с ШД могут служить принтеры, факсы и копировальные машины, а также более сложные устройства: станки с ЧПУ (числовым программным управлением), фрезерные, гравировальные машины и т. д.
Шаговый двигатель – синхронный бесщёточный электродвигатель с несколькими обмотками, в котором ток, подаваемый в одну из обмоток статора, вызывает фиксацию ротора. Последовательная активация обмоток двигателя вызывает дискретные угловые перемещения (шаги) ротора. Напрямую, к выводам Arduino подключать ШД нельзя, для подключения используют либо драйверы шаговых двигателей (например, A4988), либо драйверы двигателей постоянного тока (ULN2003, L293). В эксперименте будем использовать микросхему L393, которая содержит в себе четыре мощных усилителя (см. рис. 19.1). Если на вход усилителя подается 1, то выход сажается на 12 В, если на вход подается 0, то вывод сажается на землю. Таким образом, подавая комбинации 0 и 1 на разные входы, можно сажать выводы двигателя на шины разной полярности, вращая движок в разные стороны.
Подключим к Arduino шаговый двигатель и с помощью кнопок будем задавать перемещение шагового двигателя в разные стороны.
Схема соединений для данного эксперимента показана на рис. 19.2.
Напишем скетч управления поворотом шагового двигателя с помощью кнопок. При нажатии на первую кнопку шаговый двигатель перемещается на 200 шагов по часовой стрелке, при нажатии на другую кнопку шаговый двигатель перемещается на 200 шагов против часовой стрелки. При написании скетча будем использовать Arduino-библиотеку Stepper. Содержимое скетча показано в листинге 19.1.
1. Подключаем элементы к плате Arduino по схеме на рис. 19.2.
2. Загружаем в плату Arduino скетч из листинга 19.1.
3. При нажатии на одну из кнопок шаговый двигатель делает 200 шагов в одну сторону и останавливается, при нажатии на другую кнопку двигатель делает 200 шагов в обратную сторону.
Драйверы двигателя L298N, L293D и Arduino Motor Shield
Драйвер двигателя выполняет крайне важную роль в проектах ардуино, использующих двигатели постоянного тока или шаговые двигатели. C помощью микросхемы драйвера или готового шилда motor shield можно создавать мобильных роботов, автономные автомобили на ардуино и другие устройства с механическими модулями. В этой статье мы рассмотрим подключение к ардуино популярных драйверов двигателей на базе микросхем L298N и L293D.
Драйвер двигателя в проектах ардуино
Для чего нужен драйвер двигателя?
Как известно, плата ардуино имеет существенные ограничения по силе тока присоединенной к ней нагрузки. Для платы это 800 mA, а для каждого отдельного вывода – и того меньше, 40mA. Мы не можем подключить напрямую к Arduino Uno, Mega или Nano даже самый маленький двигатель постоянного тока. Любой из этих двигателей в момент запуска или остановки создаст пиковые броски тока, превышающие этот предел.
Как же тогда подключить двигатель к ардуино? Есть несколько вариантов действий:
Использовать реле. Мы включаем двигатель в отдельную электрическую сеть, никак не связанную с платой Arduino. Реле по команде ардуино замыкает или размыкает контакты, тем самым включает или выключает ток. Соответственно, двигатель включается или выключается. Главным преимуществом этой схемы является ее простота и возможность использовать Главным недостатком данной схемы является то, что мы не можем управлять скоростью и направлением вращения.
Использовать силовой транзистор. В данном случае мы можем управлять током, проходящим через двигатель, а значит, можем управлять скоростью вращения шпинделя. Но для смены направления вращения этот способ не подойдет.
Использовать специальную схему подключения, называемую H-мостом, с помощью которой мы можем изменять направление движения шпинделя двигателя. Сегодня можно без проблем найти как микросхемы, содержащие два или больше H-моста, так и отдельные модули и платы расширения, построенные на этих микросхемах.
В этой статье мы рассмотрим последний, третий вариант, как наиболее гибкий и удобный для создания первых роботов на ардуино.
Микросхема или плата расширения Motor Shield
Motor Shield – плата расширения для Ардуино, которая обеспечивает работу двигателей постоянного тока и шаговых двигателей. Самыми популярными платами Motor Shield являются схемы на базе чипов L298N и L293D, которые могут управлять несколькими двигателями. На плате установлен комплект сквозных колодок Ардуино Rev3, позволяющие устанавливать другие платы расширения. Также на плате имеется возможность выбора источника напряжения – Motor Shield может питаться как от Ардуино, так и от внешнего источника. На плате имеется светодиод, который показывает, работает ли устройство. Все это делает использование драйвера очень простым и надежным – не нужно самим изобретать велосипеды и решать уже кем-то решенные проблемы. В этой статье мы будем говорить именно о шилдах.
Принцип действия H-моста
Принцип работы драйвера двигателя основан на принципе работы H-моста. H-мост является электронной схемой, которая состоит из четырех ключей с нагрузкой. Название моста появилось из напоминающей букву H конфигурации схемы.
Схема моста изображена на рисунке. Q1…Q4 0 полевые, биполярные или IGBT транзисторы. Последние используются в высоковольтных сетях. Биполярные транзисторы практически не используются, они могут присутствовать в маломощных схемах. Для больших токов берут полевые транзисторы с изолированным затвором. Ключи не должны быть замкнуты вместе одновременно, чтобы не произошло короткого замыкания источника. Диоды D1…D4 ограничительные, обычно используются диоды Шоттки.
С помощью изменения состояния ключей на H-мосте можно регулировать направление движения и тормозить моторы. В таблице приведены основные состояния и соответствующие им комбинации на пинах.
Q1 | Q2 | Q3 | Q4 | Состояние |
1 | 0 | 0 | 1 | Поворот мотора вправо |
0 | 1 | 1 | 0 | Поворот мотора влево |
0 | 0 | 0 | 0 | Свободное вращение |
0 | 1 | 0 | 1 | Торможение |
1 | 0 | 1 | 0 | Торможение |
1 | 1 | 0 | 0 | Короткое замыкание |
0 | 0 | 1 | 1 | Короткое замыкание |
Драйвер двигателя L298N
Модуль используется для управления шаговыми двигателями с напряжением от 5 до 35 В. При помощи одной платы L298N можно управлять сразу двумя двигателями. Наибольшая нагрузка, которую обеспечивает микросхема, достигает 2 А на каждый двигатель. Если подключить двигатели параллельно, это значение можно увеличить до 4 А.
Плата выглядит следующим образом:
Распиновка микросхемы L298N:
При подключении двух двигателей, нужно проверить, чтобы у них была одинаковая полярность. Если полярность разная, то при задании направления движения они будут вращаться в противоположные стороны.
Драйвер двигателя L293D
L293D – является самой простой микросхемой для работы с двигателями. L293D обладает двумя H-моста, которые позволяют управлять двумя двигателями. Рабочее напряжение микросхемы – 36 В, рабочий ток достигает 600 мА. На двигатель L293D может подавать максимальный ток в 1,2 А.
В схеме имеется 16 выходов. Распиновка:
Для подключения к микроконтроллеру Arduino Uno нужно соединить выходы In1 на L293D и 7 пин на Ардуино, In2 – 8, In3 – 2, In4 – 3, En1 – 6, En2 – 5, V – 5V, Vmotor – 5 V, 0V – GND. Пример подключения одного двигателя к Ардуино показан на рисунке.
Драйвер двигателя на микросхеме HG7881
HG7881 – двухканальный драйвер, к которому можно подключить 2 двигателя или четырехпроводной двухфазный шаговый двигатель. Устройство часто используется из-за своей невысокой стоимости. Драйвер используется только для изменения направления вращения, менять скорость он не может.
Плата содержит 2 схемы L9110S, работающие как H-мост.
Характеристики драйвера HG7881:
Распиновка:
В зависимости от поданного сигнала на выходах IA и IB будет разное состояние для двигателей. Возможные варианты для одного из моторов приведены в таблице.
IA | IB | Состояние мотора |
0 | 0 | Остановка |
1 | 0 | Двигается вперед |
0 | 1 | Двигается назад |
1 | 1 | Отключение |
Подключение одного двигателя к Ардуино изображено на рисунке.
Сравнение модулей
Модуль L293D подает максимальный ток в 1,2А, в то время как на L298N можно добиться максимального тока в 4 А. Также L293D обладает меньшим КПД и быстро греется во время работы. При этом L293D является самой распространенной платой и стоит недорого. Плата HG7881 отличается от L293D и L298N тем, что с ее помощью можно управлять только направлением вращения, скорость менять она не может. HG7881 – самый дешевый и самый малогабаритный модуль.
Подключение L298N к Arduino
Как уже упоминалось, в первую очередь нужно проверить полярность подключенных двигателей. Двигатели, вращающиеся в различных направлениях, неудобно программировать.
Нужно присоединить источник питания. + подключается к пину 4 на плате L298N, минус (GND) – к 5 пину. Затем нужно соединить выходы с L298N и пины на Ардуино, причем некоторые из них должны поддерживать ШИМ-модуляцию. На плате Ардуино они обозначены
. Выходы с L298N IN1, IN2, IN3 и IN4 подключить к D7, D6, D5 и D4 на Ардуино соответственно. Подключение всех остальных контактов представлено на схеме.
Направление вращения задается с помощью сигналов HIGH и LOW на каждый канал. Двигатели начнут вращаться, только когда на 7 пине для первого мотора и на 12 пине для второго на L298N будет сигнал HIGH. Подача LOW останавливает вращение. Чтобы управлять скоростью, используются ШИМ-сигналы.
Для управления шаговым двигателем в Arduino IDE существует стандартная библиотека Stepper library. Чтобы проверить работоспособность собранной схемы, можно загрузить тестовый пример stepper_oneRevolution. При правильной сборке вал двигателя начнет вращаться.
При работе с моторами Ардуино может периодически перезагружаться. Это возникает из-за того, что двигателям требуются большие токи при старте и в момент торможения. Для решения этой проблемы в плату встроены конденсаторы, диоды и другие схемы. Также для этих целей на шидле имеется раздельное питание.
Обзор motor shield l293d
Автор: Сергей · Опубликовано 22.05.2020 · Обновлено 04.08.2020
Если задумались спроектировать робота, первым делом необходимо научится управлять различными двигателями, это может быть и двигатель постоянного тока или сервопривод. Один из самых простых и недорогих способов это воспользоваться Motor Shield на базе L293D, который можно легко установить на плату Arduino UNO.
Технические параметры
► Напряжение питания двигателей: 5 — 36 В
► Напряжение питания платы: 5 В
► Допустимый ток нагрузки: 600 мА на канал
► Максимальный (пиковый) ток нагрузки: 1,2 А на канал
► Размер платы: 70х54х20 мм
Общие сведения о L293D
Motor shield построен на микросхеме L293D, состоящая из двух H-мост (H-Bridge), с помощью которых можно управлять двумя постоянными двигателями или одним шаговым двигателем. Каждый канал рассчитан на 0.6 А с пиком 1.2 А. Так как на shield установлено две микросхемы L293D, можно управлять сразу четырьмя двигателями постоянного тока, это позволяет использовать данный shield в разработке робот платформ. Так же, на shield установлена микросхема 74HC595, которая расширяет 4 цифровых контакта Arduino до 8 управляющих контактов двух микросхем L293D.
Питание Motor shield L293D:
► Общий источник питания для Arduino и двигателей (максимальное напряжение 12 В) — можно использовать один источник питания, используется разъем DC на Arduino UNO или 2-х контактный разъем на shield «EXT_PWR«, так же необходимо установить перемычку «PWR«.
► Раздельный источник питания — рекомендуется отдельно питать Arduino и shield, для этого Arduino подключаем к USB, а двигатели подключаем к источнику постоянного тока, используя разъем » EXT_PWR». Необходимо убрать перемычку перемычку «PWR«.
Внимание! Нельзя подавать питание на «EXT_PWR» выше 12 В при установленной перемычке «PWR».
Так же, на shield выведен два 3-х контактных разъема, которым можно подключить два сервопривода.
Неиспользуемые контакты:
Цифровые контакты D2 и D13 и аналоговые контакты A0-A5 не используются.
Подключение к Arduino двигателя постоянного тока с помощью L293D
Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Блок питания 12В, 2А x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.
► Двигатель постоянного тока x 21шт.
► Motor shield L293D
Подключение:
Устанавливаем shield сверху Arduino, далее подключаем источник питания к клеммам «EXT_PWR«, в примере используется источник питания на 9 В. Теперь подключаем двигатели к клеммам M1, M2, M3 или M4. В примере подключаем к М4.
Откроется новое окно «Менеджер библиотек«, в окне поиска вводим «Adafruit Motor Shield» и устанавливаем библиотеку.
Программа:
В данном скетче показано, как управлять скоростью и направлением движении двигателями постоянного тока.
Подключение мотор шилд к Ардуино
L293D motor shield Arduino ► рассмотрим подключение к плате Ардуино, команды библиотеки AFMotor для управление от L293D серво и моторами постоянного тока.
Сегодня мы разберем весьма полезное расширение для платы Arduino UNO — Motor Control Shield L293D, рассмотрим схему подключения к данному шилду сервомоторов, шаговых двигателей и моторов постоянного тока. Также вы можете ознакомиться с командами, используемых в библиотеке AFMotor.h, и попробовать различные скетчи для управления шаговыми двигателями и моторами постоянного тока на Ардуино.
Motor Shield L293D: схема, характеристики
Микроконтроллер Ардуино позволяет любому начинающему радиолюбителю изготавливать сложные автоматизированные устройства и проекты. Использование Motor Shield может стать полезным дополнением во в многих проектах на Arduino, так как позволяет подключить сразу 2 сервопривода, 2 шаговых двигателя и до 4 двигателей постоянного тока (с реверсом направления вращения ротора).
Схема и подключение Motor Control Shield for Arduino
Характеристики Мотор Шилд L293D
— для работы нужна библиотека AFMotor.h (скачать библиотеку);
— возможность подключения 2-х сервоприводов на 5 Вольт;
— возможность подключения 2-х шаговых двигателей от 6 до 12 Вольт;
— подключение до 4-х моторов с возможностью реверса направления вращения;
— контакты для подключения внешнего питания для двигателей;
— Motor Shield for Arduino совместим с платами Uno и Mega.
При подключении серводвигателей и моторов к Ардуино используются различные порты, к которым нельзя подключать другую периферию. Так, для серво используются цифровые порты 9 и 10, для шаговых двигателей и моторов используются порты с 3 по 8 и 12. Если вы желаете еще что-то подключить, то используйте 0 и 1 порт, 2 и 13, а также аналоговые входы (порты A0-A5 можно использовать как цифровые выходы).
Как подключить Motor Shield к Ардуино
Для этого занятия нам потребуется:
К Ардуино шилд подключается очень просто — он устанавливается на плату UNO прямо сверху. Обратите внимание, что без подключения внешнего источника питания к Motor Shield, логика и двигатели будут работать от 5 Вольт, что не всегда бывает достаточно. Поэтому скорость вращения моторов постоянного тока при подключении платы Ардуино от компьютера и блока питания будет значительно отличаться.
Мотор Шилд Ардуино схема подключения
Обратите внимание, что даже если вы задали одинаковую скорость вращения в скетче, моторы в реальности могут вращаться с разной скоростью — на это оказывает влияние скорость самого двигателя, качество изготовления редуктора и колес. После подключения двигателей, как на схеме выше, загрузите следующий скетч (скачать библиотеку AFMotor и скетч можно здесь) для тестирования работы шилда:
Скетч для Motor Shield L293D Ардуино и моторов
Пояснения к коду:
Скетч для подключение серво и шаговых двигателей
Для управления сервоприводами используется стандартная библиотека Servo.h, сами сервоприводы подключаются к цифровым выходам 9 и 10 через штырьки на краю платы. К шилду можно подключить только два сервопривода и два шаговых двигателя. Первый шаговый двигатель подключается к клеммам M1 и M2, а второй к клеммам M3 и M4. Схема подключения двигателей к Motor Shield L293D изображена далее.
Подключение шаговых двигателей к Motor Shield L293D
После подключения Stepper Motor к шилду загрузите в плату следующий скетч: