Подключение драйвера двигателя L293D к DC-мотору с Arduino: Пошаговое руководство
1. Что такое драйвер двигателя L293D?
Для робота или игрушечной машинки знание о моторах критично. Дешевый и простой способ управления — драйвер L293D (motor shield). Лучше — в интерфейсе с микроконтроллером Arduino.
L293D — один из самых популярных чипсетов. Разнообразное применение: сервоприводы, шаговые, DC-двигатели. Ключевая особенность — независимое управление направлением и скоростью двух DC-двигателей.
16-выводной чип — двухканальный H-мост. Основная функция: управляющий интерфейс для пары DC-двигателей или одного шагового. По умолчанию shield содержит два L293D → способен управлять четырьмя DC-двигателями. Ценен для четырехколесных роботов. Всего 4 H-моста, каждый выдает 0,6 А. 74HC595 сдвиговый регистр расширяет 8 управляющих выводов двух L293D до 4-х выводов Arduino.
2. Особенности L293D
- Управление направлением и скоростью.
- Работа с двумя одинаковыми парными DC-двигателями.
- Моторное напряжение Vs (Vcc2): 4,5–36 В.
- Макс. постоянный ток двигателя: 600 мА.
- Пиковый ток двигателя: 1,2 А.
- Питающее напряжение Vss (Vcc1): 4,5–7 В.
- Время переключения: 300 нс (5В–24В).
- Автоматическое отключение по перегреву.
- Корпуса: SOIC, DIP, TSSOP.
3. Выводная распиновка L293D Motor Driver Shield
| Номер вывода | Имя вывода | Описание |
|---|---|---|
| 1 | Enable 1,2 | Активирует входы: Input 1(2) и Input 2(7) |
| 2 | Input Pin 1 | Прямое управление Output 1. Цифровое управление. |
| 3 | Output Pin 1 | Подключение к одному концу Мотора 1 |
| 4 | Ground | Земля цепи (0В) с одной стороны |
| 5 | Ground | Земля цепи (0В) с другой стороны |
| 6 | Output Pin 2 | Подключение ко второму концу Мотора 1 |
| 7 | Input Pin 2 | Прямое управление Output 2. Цифровое управление. |
| 8 | Vs (Vcc2) | 4,5–36 В, питание двигателей |
| 9 | Enable 3,4 | Активирует входы: Input 3(10) и Input 4(15) |
| 10 | Input 3 | Управление Output 3. Цифровое управление. |
| 11 | Output 3 | Подключение к одному концу Мотора 2 |
| 12 | Ground | Земля цепи (0В) |
| 13 | Ground | Земля цепи (0В) |
| 14 | Output 4 | Подключение ко второму концу Мотора 2 |
| 15 | Input 4 | Управление Output 4. Цифровое управление. |
| 16 | Vss (Vcc1) | +5 В внешнее питание для логики IC |
4. Принцип работы L293D
Управляет двумя DC-двигателями. Важно понимать работу двухканального H-моста.
Первый этап — построение H-моста. Две пары Дарлингтоновских транзисторов: Q2/Q3 и Q1/Q4. Диоды параллельно коллектору-эмиттеру каждой пары предотвращают повреждение от обратного ЭДС двигателя.
Когда Q1/Q4 открыты, Q2/Q3 закрыты → ток от Vcc через мотор к земле → вращение по/против часовой стрелки. Направление определяется полярностью мотора и способом подключения к питанию.
Когда Q1/Q4 закрыты, Q2/Q3 открываются автоматически → ток через мотор меняет направление → меняется направление вращения.
5. Как использовать L293D Motor Driver?
Двунаправленный ток ~600 мА, диапазон 4,5–36 В. Используем 16-пиновый чип с Arduino Uno.
Проект: подключение DC-двигателей и L293D к Arduino. Пошаговая настройка управления направлением и скоростью.
Шаг 1: Сборка материалов
- Два потенциометра 10 кОм
- Чип L293D
- Два малых DC-двигателя
- Arduino Uno или Arduino Pro Mini
- Макетная плата (breadboard)
- Перемычки (jumper wires)
Шаг 2: Сборка схемы
Соединения просты. Для наглядности используется видео-урок.
Двигателю лучше отдельное питание. Здесь: 12 В для мотора, 5 В для L293D и Arduino. Внешнее питание → Pin 8 L293D. Осторожно: ошибки могут повредить моторы.
Шаг 3: Код для программирования DC-двигателя
Два базовых этапа.
Установка библиотеки AFMotor.h
Нужен интерфейс общения с L293D. Установка AFMotor.h:
- Sketch → Include Library → Manage Libraries.
- Library Manager обновляет список, скачивает индекс.
- Поиск: "Motor Shield".
- Выбор: Adafruit Motor Shield Library by Adafruit → Install.
Запуск Arduino кода
#include <AFMotor.h>
AF_DCMotor motor(4);
void setup() {
// Начальная скорость и стоп
motor.setSpeed(200);
motor.run(RELEASE);
}
void loop() {
uint8_t i;
// Включение мотора
motor.run(FORWARD);
// Разгон от 0 до макс
for (i=0; i<255; i++) {
motor.setSpeed(i);
delay(10);
}
// Торможение от макс до 0
for (i=255; i!=0; i--) {
motor.setSpeed(i);
delay(10);
}
// Смена направления
motor.run(BACKWARD);
// Разгон
for (i=0; i<255; i++) {
motor.setSpeed(i);
delay(10);
}
// Торможение
for (i=255; i!=0; i--) {
motor.setSpeed(i);
delay(10);
}
// Выключение
motor.run(RELEASE);
delay(1000);
}
Шаг 4: Настройка завершена
DIY схема готова. Механизм управления любым DC-устройством через L293D и Arduino Uno работает.
6. Эквивалентные двухтактовые таймеры (L293D Equivalent)
Аналоги: ULN2003, SN754410, LB1909MC.
7. Применение L293D
- Управление высокотоковыми LED-устройствами.
- Высокотоковые моторы под цифровым управлением (роботы).
- Неотъемлемая часть шаговых и других двигателей.
- Модули релейных драйверы — обеспечивают защелкивающее реле.
Заключение
Существует много способов управления DC-моторами через Arduino. Один из простейших — L293D. Дает преимущество: одновременное независимое управление скоростью и направлением двух DC-двигателей. Научились настраивать и программировать. Для более сложных задач — обращайтесь за полной поддержкой.
Промышленные технологии
- Робот для поиска людей на базе Arduino Uno: пошаговая интеграция датчиков
- Декодирование PPM-сигнала RC-приёмника на Arduino: пошаговое руководство
- Android-управляемая робот-платформа на Raspberry Pi и Motor Shield
- Измерение массы Земли с Arduino: пошаговое руководство по DIY
- Создание PHP-веб-интерфейса для управления Arduino Uno
- DIY манипулятор, управляемый жестами руки: пошаговая сборка на Arduino
- Веб-управляемый XY-плоттер на Arduino с контроллером шаговых двигателей
- Как работает щеточный двигатель постоянного тока: простая механика и надежная мощность
- Цифровой компас в реальном времени на Arduino и Processing
- Пошаговое руководство по инспекции и диагностике неисправностей двигателей постоянного тока