Как работает драйвер двигателя L293D и как его подключить к Arduino


Если вы планируете управлять электродвигателями постоянного тока, то простой драйвер двигателя L293D - один из самых подходящих помощников на эту роль. В данной статье мы рассмотрим принципы работы данного драйвера двигателя и как его подключить к плате Arduino.

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

Ранее на нашем сайте мы уже рассматривали проекты с применением драйвера двигателя L293D:

Необходимые компоненты

  1. Плата Arduino UNO (купить на AliExpress).
  2. Драйвер двигателей L293D (купить на AliExpress, также данный драйвер двигателя можно купить в виде готового модуля).
  3. Электродвигатели постоянного тока - 2 шт.

Управление двигателем постоянного тока с помощью микроконтроллера

Для управления двигателями постоянного тока с помощью микроконтроллеров в современной схемотехнике используется ШИМ (широтно-импульсная модуляция) и устройства под названием H-мосты. ШИМ применяется для управления скоростью вращения вращения двигателя, а H-мосты - для управления направлением его вращения.

ШИМ для управления скоростью вращения двигателя

Для того чтобы изменить скорость вращения двигателя постоянного тока необходимо изменить амплитуду входного напряжения, подаваемого на двигатель. Распространенным методом для этого является ШИМ (широтно-импульсная модуляция). Регулируя величину цикла занятости/коэффициента заполнения (duty cycle) ШИМ можно изменять среднюю величину напряжения ШИМ и, следовательно, управлять скоростью вращения двигателя.

Чем больше значение коэффициента заполнения, тем выше среднее значение напряжения, подаваемого на двигатель постоянного тока (что приводит к более высокой скорости его вращения), а чем меньше значение коэффициента заполнения, тем ниже среднее значение напряжения, подаваемого на двигатель (что приводит к более низкой скорости его вращения).

Управление направлением вращения двигателя с помощью H-моста

Чтобы изменить направление вращения двигателя необходимо изменить полярность приложенного к нему напряжения. Один из наиболее простых способов сделать это - использование H-моста. По своей структуре H-мост состоит из 4-х переключателей (обычно это MOSFET транзисторы). Принцип действия H-моста наглядно показан на следующем видео.

Замкнув/включив два противоположных переключателя H-моста, мы можем изменить направление протекание тока, тем самым изменив направление вращения двигателя.

Микросхема драйвера двигателя L293D

L293D - это микросхема драйвера двигателей, способная управлять двумя двигателями постоянного тока, способными вращаться в обе стороны, либо одним шаговым двигателем. По принципу действия L293D представляет собой четырехкратный сильноточный полупроводниковый драйвер. Он способен управлять токами до 600 мА при напряжении от 4,5 В до 36 В. Также микросхема L293D может использоваться для управления индуктивными нагрузками, такими как реле, соленоиды, двигатели постоянного тока и биполярные шаговые двигатели.

Внешний вид микросхемы L293D

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

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

Распиновка микросхемы драйвера двигателя L293D

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

Распиновка микросхемы драйвера двигателя L293d

ENA, ENB - контакты 1 и 9 микросхемы. При подаче на эти контакты напряжения низкого уровня (low) двигатели перестают вращаться. Подавая на эти контакты ШИМ сигнал можно управлять скоростью вращения двигателей.

IN1, IN2, IN3, IN4 - контакты для управления направлением вращения двигателей. IN1 и IN2 управляют двигателем A, а IN3 и IN4 - двигателем B.

OUT1, OUT2, OUT3, OUT4 - выходные контакты драйвера L293D. OUT1 и OUT2 для управления первым двигателем, OUT3 и OUT4 - вторым. Данные контакты выдерживают ток до 600mA и на них можно подавать напряжение в диапазоне 5-36V.

GND - контакты 4,5 и 12,13 являются контактами общего провода (земли) данной микросхемы. Также данные контакты являются своеобразным радиатором (теплоотводом) микросхемы.

VCC1 - контакт для подачи питания на двигатели, на него можно подавать напряжение от 4.5V до 36V.

VCC2 - контакт для питания внутренней логики микросхемы, на него необходимо подавать 5V.

Часто задаваемые вопросы по микросхеме драйвера двигателя L293D

Почему мы используем L293D?

L293D предназначен для обеспечения двунаправленного управляющего тока до 600 мА при напряжении от 4,5 В до 36 В. Он способен управлять индуктивными нагрузками, такими как реле, соленоиды, двигатели постоянного тока и биполярные шаговые двигатели, а также другие высоковольтные устройства, токовые/высоковольтные нагрузки в приложениях с положительным питанием.

Как работает L293D?

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

Могу ли я подключить 4 двигателя к L293D?

Данный драйвер может управлять четырьмя соленоидами, четырьмя однонаправленными двигателями постоянного тока, двумя двунаправленными двигателями постоянного тока или одним шаговым двигателем. Микросхема L293D имеет диапазон подачи питания на подключенные устройства от 4,5 В до 36 В и способна выдавать пиковый выходной ток 1,2 А на канал, поэтому она очень хорошо работает с большинством современных двигателей.

Сколькими двигателями может управлять L293D?

L293D — это 16-контактная микросхема драйвера двигателя, которая может одновременно управлять двумя двигателями постоянного тока в любом направлении.

Как L293D управляет скоростью вращения двигателей?

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

Схема проекта

Схема подключения драйвера двигателя L293D к плате Arduino представлена на следующем рисунке.

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

Для нашей схемы мы будем использовать небольшой редукторный двигатель постоянного тока 3 В, поэтому мы будем питать микросхему драйвера от внешнего источника питания 5 В на ее выводе VCC1. Также нам необходимо подключить 5 В к выводу VCC2 микросхемы, которое будет питать ее внутреннюю логическую схему. Также мы подключили контакты 9 и 3 к контактам ENA и ENB Arduino, контакты 9 и 3 являются контактами ШИМ (PWM), поэтому мы сможем управлять скоростью вращения двигателя с помощью платы Arduino. Контакты 8,7,5,4 платы подключены к контактам IN1, IN2, IN3 и IN4 микросхемы драйвера. Наконец, контакты OUT1, OUT2, OUT3 и OUT4 подключаются к двигателям (в нашем проекте мы для простоты использовали один двигатель, хотя на представленной схеме продемонстрирована возможность подключения двух двигателей).

Объяснение кода программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Первым делом в программе мы инициализируем используемые контакты.

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

Далее, в функции loop(), мы сначала дадим возможность двигателю вращаться, подав уровень high на контакт ENA с помощью функции analogWrite(), а затем подадим на IN1 уровень high, а на IN2 - уровень LOW, чтобы наш двигатель вращался по часовой стрелке.

После этого мы подадим на IN1 LOW, а на IN2 -  HIGH, чтобы двигатель вращался против часовой стрелки.

Затем подадим на контакты IN1 и IN2 драйвера уровень low - в результате этого двигатель должен остановиться.

После этого снова заставим вращаться двигатель по часовой стрелке.

Но теперь в цикле мы будем постепенно увеличивать скорость вращения двигателя, подавая ШИМ сигнал на контакт ENA микросхемы L293D.

А затем в цикле постепенно уменьшим коэффициент заполнения ШИМ сигнала со 100 до 0%.

Потом снова остановим двигатель.

Тестирование работы проекта

На представленном ниже видео показана работа нашего проекта. Мы написали код программы таким образом, чтобы после определенной задержки двигатель менял свое направление вращения, а после этого изменялась скорость вращения двигателя, чтобы наглядно показать работу функции ШИМ.

Возможные проблемы с подключением драйвера двигателя L293D к Arduino

  • Самая распространенная проблема, с которой вы можете столкнуться — это проблема с питанием. Рекомендуемое рабочее напряжение драйвера двигателя L293D составляет от 4,5 В до 36 В, поэтому при напряжении ниже этого драйвер двигателя не будет работать, а напряжение более 36 В, безусловно, повредит устройство.
  • Еще одна распространенная проблема, обнаруженная в драйвере L293D, заключается в том, что когда вы включаете микросхему L293D, она начинает вращать двигатель или микросхема экспоненциально нагревается. Это явный признак повреждения микросхемы, которую следует немедленно заменить.
  • Контакты микросхемы L293D устойчивы к напряжению +5 В, однако большее значение напряжение может вывести ее из строя.
  • При работе с микросхемой L293D вам необходимо учитывать сопротивление обмотки двигателя, если сопротивление обмотки двигателя низкое, он будет потреблять больше тока, чем рассчитано, и это также может привести к необратимому повреждению устройства.

Исходный код программы (скетча)

Источник статьи

(Проголосуй первым!)
Загрузка...
1 494 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *