ELECTRONICS

Драйвер двигателя для Arduino: L298N, L293D, TB6612, DRV8833 — сравнение

Мотор постоянного тока крутится в одну сторону, если подать плюс и минус, и в другую — если поменять их местами. Вывод Arduino ни того, ни другого не умеет: тока мало, а поменять полярность одним выводом невозможно. Драйвер решает обе задачи: внутри у него H-мост из четырёх ключей, которые переключают полярность, и питание нагрузки идёт от отдельного источника.

Выбор драйвера — это выбор по току и напряжению мотора. Старый L298N тянет два ампера на канал, но греется и съедает два вольта. Современные TB6612 и DRV8833 холоднее и экономнее, но рассчитаны на моторы поменьше.

Разборы конкретных моделей

Какой брать

L298N

Классика на два канала: два мотора или один шаговый. Напряжение до 35 В, ток до 2 А на канал, радиатор. Минус — падение около 2 В на ключах: мотор на 6 В получит четыре. Берут для моторов от 9 В и выше.

L293D и Motor Shield

Та же логика в маленьком корпусе, до 600 мА на канал. Чаще встречается в виде шилда Adafruit Motor Shield, который надевается на UNO: четыре мотора или два шаговых плюс два серво без единого провода.

TB6612FNG

Замена L298N для моторов до 1,2 А и 13,5 В. Падение напряжения меньше полувольта, почти не греется, размером с монету. Для роботов на батарейках — лучший выбор.

DRV8833

Ещё меньше и ещё дешевле: два канала по 1,5 А, питание от 2,7 до 10,8 В. Единственный из списка, который работает от двух пальчиковых батареек.

Как управлять

У каждого канала три входа: два задают направление, третий — скорость через ШИМ. Единица на первом и ноль на втором — вперёд, наоборот — назад, оба нуля — свободное вращение, обе единицы — торможение.

Скорость регулируется на входе разрешения: analogWrite от 0 до 255. На L298N этот вход закрыт перемычкой на плюс, её надо снять, чтобы управлять скоростью с платы.

Земля драйвера и земля Arduino соединяются всегда, даже если моторы питаются от своего аккумулятора. Без общей земли управляющие сигналы не имеют смысла.