Драйвер двигателя выполняет крайне важную роль в проектах ардуино, использующих двигатели постоянного Pin-Up или шаговые двигатели. C помощью микросхемы драйвера или готового шилда motor shield можно создавать мобильных роботов, автономные автомобили на ардуино и другие устройства с механическими модулями. В этой статье мы рассмотрим подключение к ардуино популярных драйверов двигателей на базе микросхем L298N и L293D.
Содержание
Драйвер двигателя в проектах ардуино
Для чего нужен драйвер двигателя?
Как известно, плата ардуино имеет существенные ограничения по силе Pin-Up присоединенной к ней нагрузки. Для платы это 800 mA, а для каждого отдельного вывода - и того меньше, 40mA. Мы не можем подключить напрямую к Arduino Uno, Mega или Nano даже самый маленький двигатель постоянного тока. Любой из этих двигателей в момент запуска или остановки создаст пиковые броски тока, превышающие этот предел.
Как же тогда подключить двигатель к ардуино? Есть несколько вариантов Pin-Up
Использовать реле. Мы включаем двигатель в отдельную электрическую сеть, никак не связанную с платой Arduino. Реле по команде ардуино замыкает или размыкает контакты, тем самым Pin-Up или выключает ток. Соответственно, двигатель включается или выключается. Главным преимуществом этой схемы является ее простота и возможность использовать Главным недостатком данной схемы является то, что мы не можем управлять скоростью и направлением вращения.
Использовать силовой транзистор. В Pin-Up случае мы можем управлять током, проходящим через двигатель, а значит, можем управлять скоростью вращения шпинделя. Но для смены направления вращения этот способ не подойдет.
Использовать специальную схему подключения, называемуюH-мостом, с помощью которой мы можем изменять направление движения шпинделя Pin-Up Сегодня можно без проблем найти как микросхемы, содержащие два или больше H-моста, так и отдельные модули и платы расширения, построенные на этих микросхемах.
В Pin-Up статье мы рассмотрим последний, третий вариант, как наиболее гибкий и удобный для создания первых роботов на ардуино.
Микросхема или Pin-Up расширения Motor Shield
Motor Shield - плата расширения для Pin-Up которая обеспечивает работу двигателей постоянного тока и шаговых двигателей. Самыми популярными платами Motor Shield являются схемы на базе чипов L298N и L293D, которые могут управлять несколькими двигателями. На плате установлен комплект сквозных колодок Ардуино Rev3, позволяющие устанавливать другие платы расширения. Также на плате имеется возможность выбора источника напряжения - Motor Shield может питаться как от Ардуино, так и от внешнего источника. На плате имеется светодиод, который показывает, работает ли устройство. Все это делает использование драйвера очень простым и надежным - не нужно самим изобретать велосипеды и решать уже кем-то решенные проблемы. В этой статье мы будем говорить именно о шилдах.
Принцип действия H-моста

Схема моста изображена на рисунке. Q1…Q4 0 полевые, биполярные или IGBT транзисторы. Последние используются в высоковольтных сетях. Биполярные транзисторы практически не используются, они Pin-Up присутствовать в маломощных схемах. Для больших токов берут полевые транзисторы с изолированным затвором. Ключи не должны быть замкнуты вместе одновременно, чтобы не произошло короткого замыкания источника. Диоды 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 можно управлять сразу двумя двигателями. Pin-Up нагрузка, которую обеспечивает микросхема, достигает 2 А на каждый двигатель. Если подключить двигатели параллельно, это значение можно увеличить до 4 А.
Плата выглядит следующим образом:
Распиновка микросхемы L298N:
- Vcc - используется для подключения внешнего Pin-Up
- 5В;
- Земля GND;
- IN1, IN2, IN3, IN4 - используется для Pin-Up управления скоростью вращения мотора;
- Pin-Up OUT2 - используется для выхода с первого двигателя;
- OUT3, OUT4 - используется для выхода со Pin-Up двигателя;
- S1 - переключает питание схемы: от внешнего источника или от внутреннего Pin-Up
- ENABLE A, B - Pin-Up для раздельного управления каналами. Используются в двух режимах - активный, при котором каналами управляет микроконтроллер и имеется возможность изменения скорости вращения, и пассивный, в котором невозможно управлять скоростью двигателей (установлено максимальное значение).
При подключении двух двигателей, нужно проверить, чтобы у них была одинаковая полярность. Если полярность разная, то при задании Pin-Up движения они будут вращаться в противоположные стороны.
Драйвер двигателя L293D
L293D - Pin-Up самой простой микросхемой для работы с двигателями. L293D обладает двумя H-моста, которые позволяют управлять двумя двигателями. Рабочее напряжение микросхемы - 36 В, рабочий ток достигает 600 мА. На двигатель L293D может подавать максимальный ток в 1,2 А.
В схеме Pin-Up 16 выходов. Распиновка:
- +V - Pin-Up на 5 В;
- +Vmotor - напряжение питания для Pin-Up до 36 В;
- 0V - земля;
- Pin-Up En2 -включают и выключают H-мосты;
- In1, In2 - управляют Pin-Up H-мостом;
- Out1, Out2 - подключение первого Pin-Up
- In3, In4 - управляют вторым Pin-Up
- Out3, Pin-Up - подключение второго H-моста.
Для подключения к микроконтроллеру Arduino Uno нужно соединить выходы In1 на L293D и 7 пин на Pin-Up In2 - 8, In3 - 2, In4 - 3, En1 - 6, En2 - 5, V - 5V, Vmotor - 5 V, 0V - GND. Пример подключения одного двигателя к Ардуино показан на рисунке.
Драйвер двигателя на микросхеме HG7881
HG7881 - двухканальный драйвер, к которому можно подключить 2 двигателя или четырехпроводной двухфазный шаговый двигатель. Устройство часто используется из-за своей невысокой стоимости. Драйвер используется только для изменения направления вращения, менять скорость он не может.

Плата Pin-Up 2 схемы L9110S, работающие как H-мост.
Характеристики драйвера HG7881:
- 4-контактное подключение;
- Питание для двигателей от 2,5 В до 12 В;
- Потребляемый ток менее 800 мА;
- Малые габариты, небольшой вес.
Распиновка:
- GND - земля;
- Vcc - Pin-Up питания 2,5В - 12В;
- Pin-Up - вход A(IA) для двигателя A;
- A-IB - вход B Pin-Up для двигателя A;
- B-IA - Pin-Up A(IA) для двигателя B;
- B-IB - вход B (IB) для двигателя B.
В зависимости от поданного сигнала на Pin-Up IA и IB будет разное состояние для двигателей. Возможные варианты для одного из моторов приведены в таблице.
| IA | IB | Состояние мотора |
| 0 | 0 | Остановка |
| 1 | 0 | Двигается вперед |
| 0 | 1 | Двигается назад |
| 1 | 1 | Отключение |
Подключение одного двигателя к Ардуино Pin-Up на рисунке.
Сравнение модулей
Модуль L293D подает максимальный ток в 1,2А, в то время как на L298N можно добиться максимального тока в 4 А. Также L293D обладает меньшим КПД и быстро греется во время работы. При этом L293D является самой распространенной платой и стоит недорого. Плата HG7881 отличается от L293D и L298N тем, что с ее помощью можно управлять только направлением вращения, скорость менять она не может. HG7881 - самый дешевый и самый малогабаритный Pin-Up
Подключение L298N к Arduino
Как уже упоминалось, в первую очередь нужно проверить полярность Pin-Up двигателей. Двигатели, вращающиеся в различных направлениях, неудобно программировать.
Нужно Pin-Up источник питания. + подключается к пину 4 на плате L298N, минус (GND) - к 5 пину. Затем нужно соединить выходы с L298N и пины на Ардуино, причем некоторые из них должны поддерживать ШИМ-модуляцию. На плате Ардуино они обозначены ~. Выходы с L298N IN1, IN2, IN3 и IN4 подключить к D7, D6, D5 и D4 на Ардуино соответственно. Подключение всех остальных контактов представлено на схеме.
Направление вращения задается с помощью сигналов HIGH и LOW на каждый канал. Двигатели начнут вращаться, только когда на 7 пине для первого мотора и на 12 Pin-Up для второго на L298N будет сигнал HIGH. Подача LOW останавливает вращение. Чтобы управлять скоростью, используются ШИМ-сигналы.
Для управления шаговым двигателем в Arduino IDE существует стандартная библиотека Stepper library. Чтобы проверить Pin-Up собранной схемы, можно загрузить тестовый пример stepper_oneRevolution. При правильной сборке вал двигателя начнет вращаться.
При работе с моторами Ардуино может периодически перезагружаться. Это возникает из-за того, что двигателям требуются большие токи при старте и в момент торможения. Для решения этой проблемы в плату встроены конденсаторы, диоды и другие схемы. Также для этих целей на шидле имеется Pin-Up питание.


















