Драйвер шагового двигателя на l293dne

Драйвер двигателей L293D подключение к Arduino

Опубликовано 23.02.2013 12:35:00

В данной статье мы разберем популярную, широко распространенную миросхему L293D.

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

L293D pinout

Go shopping

Используемые компоненты (купить в Китае):

Начнем наш рассказ с краткого обзора технических характеристик 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, и нет никаких внешних воздействий способных повысить потребляемый ток), и то такое подключение крайне не желательно.

L293D 1 motor

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

Источник

Управление биполярным шаговым двигателем. Часть 2. Схема с контроллером PIC12F629 и драйвером L293D

Поскольку драйвера для шаговиков L293D более популярны у радиолюбителей, чем LB1838, и их гораздо легче достать, то, по просьбам форумчан, я решил написать продолжение статьи про управление биполярными шаговыми двигателями и рассмотреть схему с драйвером L293D.

Читайте также:  Коробка передач для нивы цена

Про то, как подключать обмотки и в каком порядке на них подавать сигналы, я писать не буду, это было подробно рассмотрено в первой части статьи, вместо этого давайте рассмотрим, чем, с точки зрения управления, драйвер L293D отличается от рассмотренного нами ранее драйвера LB1838 и как нужно переделать схему и программу управления, чтобы получить точно такое же устройство, только на драйвере L293D.

Итак, в чём же отличия? Во-первых, — в обозначениях. У LB1838 выходы обозначены как OUT, а у L293D они обозначены буквой Y, у LB1838 управляющие входные сигналы обозначены как IN, а у L293D они обозначены буквой A. Во-вторых, — в количестве управляющих сигналов. У LD293D для каждого выхода есть свой управляющий входной сигнал, а у LB1838 один входной сигнал управлял сразу двумя выходами. В остальном, никаких принципиальных отличий с точки зрения управления, в этих драйверах нет.

Далее, давайте посмотрим на таблицу истинности драйвера L293D и нарисуем для него диаграммы входных управляющих сигналов для одного полного цикла вращения, когда на выходах последовательно появляются все 4 комбинации подключения обмоток (также, как мы это делали для LB1838):

Таблица истинности для L293D (состояние выходов в зависимости от состояния входов):

1,2EN 1A 1Y (a) 2A 2Y (b) 3,4EN 3A 3Y (c) 4A 4Y (d)
High High + High + High High + High +
High Low Low High Low Low
Low X откл X откл Low X откл X откл

bipolar step motor2 1

Если внимательно посмотреть на диаграмму слева, то можно увидеть, что сигнал 1A можно сделать одинаковым с сигналом 3A, а сигнал 2A — одинаковым с сигналом 4A. В этом случае наша диаграмма упроститься и будет выглядеть так:

bipolar step motor2 2

На последней диаграмме нарисовано, какие комбинации уровней сигналов должны быть на управляющих входах драйвера (1,2EN, 3,4EN, 1A, 2A, 3A, 4A) для того, что бы получить соответствующие комбинации подключения обмоток двигателя, а также стрелками указан порядок смены этих комбинаций для обеспечения вращения в нужную сторону.

Теперь внимательно смотрим на последнюю диаграмму и сравниваем её с соответствующей диаграммой для драйвера LB1838. Мы видим, что в случае с L293 нам придётся использовать для управления драйвером 4 ноги контроллера вместо трёх, как это было в случае с LB1838, соответственно схему и программу для контроллера придётся переделать.

Начнём со схемы. Схема для L293 будет выглядеть так:

bipolar step motor2 3

Элементы можно взять те же самые, что и для схемы с LB1838:

Далее давайте подумаем, что нужно будет изменить в программе микроконтроллера, чтобы наше устройство с L293D работало аналогично девайсу на LB1838 (который мы рассматривали в первой части). А, собственно говоря, практически ничего. Что у нас изменилось? Только количество ног и их подключение (нога GP4 у нас теперь будет использоваться для управления драйвером, а КН2 мы подключим к ноге GP3). Соответственно, в программе мы должны сделать следующие три вещи:

Источник

Драйверы двигателя 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-моста

motor schemeПринцип работы драйвера двигателя основан на принципе работы H-моста. H-мост является электронной схемой, которая состоит из четырех ключей с нагрузкой. Название моста появилось из напоминающей букву H конфигурации схемы.

Схема моста изображена на рисунке. Q1…Q4 0 полевые, биполярные или IGBT транзисторы. Последние используются в высоковольтных сетях. Биполярные транзисторы практически не используются, они могут присутствовать в маломощных схемах. Для больших токов берут полевые транзисторы с изолированным затвором. Ключи не должны быть замкнуты вместе одновременно, чтобы не произошло короткого замыкания источника. Диоды D1…D4 ограничительные, обычно используются диоды Шоттки.

С помощью изменения состояния ключей на H-мосте можно регулировать направление движения и тормозить моторы. В таблице приведены основные состояния и соответствующие им комбинации на пинах.

Q1 Q2 Q3 Q4 Состояние
1 1 Поворот мотора вправо
1 1 Поворот мотора влево
Свободное вращение
1 1 Торможение
1 1 Торможение
1 1 Короткое замыкание
1 1 Короткое замыкание

Драйвер двигателя L298N

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

Плата выглядит следующим образом:

motor 1

Распиновка микросхемы L298N:

motor 2

При подключении двух двигателей, нужно проверить, чтобы у них была одинаковая полярность. Если полярность разная, то при задании направления движения они будут вращаться в противоположные стороны.

Драйвер двигателя L293D

L293D – является самой простой микросхемой для работы с двигателями. L293D обладает двумя H-моста, которые позволяют управлять двумя двигателями. Рабочее напряжение микросхемы – 36 В, рабочий ток достигает 600 мА. На двигатель L293D может подавать максимальный ток в 1,2 А.

В схеме имеется 16 выходов. Распиновка:

4

Для подключения к микроконтроллеру Arduino Uno нужно соединить выходы In1 на L293D и 7 пин на Ардуино, In2 – 8, In3 – 2, In4 – 3, En1 – 6, En2 – 5, V – 5V, Vmotor – 5 V, 0V – GND. Пример подключения одного двигателя к Ардуино показан на рисунке.

podkl dvigatelya 5 e1513827971974

Драйвер двигателя на микросхеме HG7881

HG7881 – двухканальный драйвер, к которому можно подключить 2 двигателя или четырехпроводной двухфазный шаговый двигатель. Устройство часто используется из-за своей невысокой стоимости. Драйвер используется только для изменения направления вращения, менять скорость он не может.

drajver 6

Плата содержит 2 схемы L9110S, работающие как H-мост.

Характеристики драйвера HG7881:

Распиновка:

В зависимости от поданного сигнала на выходах IA и IB будет разное состояние для двигателей. Возможные варианты для одного из моторов приведены в таблице.

IA IB Состояние мотора
Остановка
1 Двигается вперед
1 Двигается назад
1 1 Отключение

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

podklyuch dvigatelya 7 e1513828060798

Сравнение модулей

Модуль 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 на Ардуино соответственно. Подключение всех остальных контактов представлено на схеме.

podkl kontaktov 8 e1513828102645

Направление вращения задается с помощью сигналов HIGH и LOW на каждый канал. Двигатели начнут вращаться, только когда на 7 пине для первого мотора и на 12 пине для второго на L298N будет сигнал HIGH. Подача LOW останавливает вращение. Чтобы управлять скоростью, используются ШИМ-сигналы.

Для управления шаговым двигателем в Arduino IDE существует стандартная библиотека Stepper library. Чтобы проверить работоспособность собранной схемы, можно загрузить тестовый пример stepper_oneRevolution. При правильной сборке вал двигателя начнет вращаться.

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

Источник

Поделиться с друзьями
admin
Ваша безопасность
Adblock
detector