Микросхема L298N представляет собой сдвоенный мостовой драйвер двигателей и предназначена для управления DC и шаговыми двигателями. Данная микросхема находит очень широкое применение в роботостроительстве. Одна микросхема L298N способна управлять двумя двигателями и обеспечивает максимальную нагрузку до 2А на каждый двигатель, а если задействовать параллельное включение для одного двигателя, то можно поднять максимальный ток до 4А.
В данной статье я хочу рассмотреть подключение к Arduino готового модуля L298N, которые очень широко представлены на популярном аукционе ebay, AliExpress и в др. местах. Можно конечно купить данную микросхему и в России и сделать самому шилд и всю обвязку, но сегодняшняя реальность такова, что при средней стоимости модуля на ebay в 5 долларов, все комплектующие при покупке у нас выйдут примерно также, а то и дороже. Не говоря уже про трудозатраты на изготовление печатной платы, пайку и т.д.
Сами модули на микросхемах L298N выглядят так:
Принципиальная схема такого модуля выглядит следующим образом:
Шилд имеет следующие пины подключения:
Vcc - подключение внешнего питания двигателей
+5 - питание логики
GND - общий
IN1, IN2, IN3, IN4 (разъем P4 на схеме) - входы управления двигателями
OUT1, OUT2 (разъем P2 на схеме) - выход первого двигателя
OUT3, OUT4 (разъем P3 на схеме) - выход второго двигателя
Выключатель S1 служит для переключения питания логической части микросхемы. Т.е. при включенном S1 питание логической части берется от внутреннего преобразователя модуля. При выключенном S1 питание берется от внешнего источника.
На модулях также присутствуют перемычки ENA и ENB для разрешения включения двигателей. Если необходимо, их можно также подключить к Arduino и задействовать, но это лишние 2 провода и в этих входах нет особого смысла.
ШИМ управление позволяет плавно изменять скорость вращение двигателя. Если нам не нужно ШИМ управление, то на соответствующий вход нужно просто подать логическую 1. На какой именно вход IN1 или IN2 вы подадите сигнал ШИМ, либо направление вращения - разницы не имеет. Тоже самое справедливо и для входов IN3, IN4.
Схема подключения шилда L298N к контроллеру Arduino:
Для питания логической части схемы необходимо нажать кнопку или вставить перемычку (зависит от типа модуля). Если же на вашем модуле не предусмотрен преобразователь 5В, то дополнительно, необходимо соединить вывод 5V от Arduino к входу +5 шилда.
Как видно из схемы выше, 2 и 4 вывод используются для установки направления движения, а 3 и 5 для ШИМ управления выводами.
Напишем тестовую программу, в которой мы будем в цикле изменять скорость вращения, а также направление вращения двигателей:
#define D1 2 // Направление вращение двигателя 1 #define M1 3 // ШИМ вывод для управления двигателем 1 #define D2 4 // Направление вращение двигателя 2 #define M2 5 // ШИМ вывод для управления двигателем 2 bool direction = 0; // Текущее направление вращения int value; // Текущее значение ШИМ void setup() { pinMode(D1, OUTPUT); pinMode(D2, OUTPUT); } void loop() { for(value = 0; value <= 255; value+=1) { digitalWrite(D1, direction); // Задаем направление вращения digitalWrite(D2, direction); analogWrite(M1, value); // Задаем скорость вращения analogWrite(M2, value); delay(20); } direction = direction ^ 1; // Инвертируем значение, чтобы в след. цикле вращаться в другую сторону }
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
U1 | Драйвер электродвигателей | L298 | 1 | Поиск в магазине Отрон | ||
U2 | Линейный регулятор | L7805AB | 1 | Поиск в магазине Отрон | ||
D1-D4, D9-D12 | Диод | 8 | Поиск в магазине Отрон | |||
D5-D8, D13 | Светодиод | 5 | Поиск в магазине Отрон | |||
С1, С3 | Конденсатор | 0.1 мкФ | 2 | Поиск в магазине Отрон | ||
С2 | Электролитический конденсатор | 470 мкФ 16 В | 1 | Поиск в магазине Отрон | ||
R1, R2 | Резистор | 20 кОм | 2 | Поиск в магазине Отрон | ||
R3 | Резистор | 1 кОм | 1 | Поиск в магазине Отрон | ||
S1 | Кнопка | 1 | Поиск в магазине Отрон | |||
Р2, Р3 | Клеммный зажим для подключения двигателя | 2 | Поиск в магазине Отрон | |||
Р4 | Разьем для подключения к Arduino | 1 | Поиск в магазине Отрон | |||
Р5 | Клеммный зажим для подключения питания | 1 | Поиск в магазине Отрон | |||
Скачать список элементов (PDF)
Прикрепленные файлы:
- L298N.rar (1 Кб)
Комментарии (34) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
Можно ли использовать этот драйвер как реле для включения/выключения моторов? Я так понимаю, нужно использовать контакты ENA и ENB?
Просто реле не предлагайте, нужно управление направлением вращение двигателя
digitalWrite(D1, HIGH); // в одну сторону
digitalWrite(D1, LOW); // в другую.
То есть направление зависит от состояние пина, отвечающего за направление(HIGH или LOW).
И так, по порядку. Микросхема содержит 4 пары транзисторов с выводами Out1...Out4 от средних точек. Внутренняя логика защищает от КЗ, позволяя сигналами In1...In4 в соответствующей паре выход Out1...Out4 подключить к Vcc или земле, если есть разрешение En1 для Out1 и Out2 и разрешение En2 для выходов Out3 и Out4.
ШИМ. В зависимости от значения value (в статье analogWrite(M1, value); ) в течение интервала 256/value на выходе единица, и ноль в течение 1-256/value.
В итоге на двигатель, подключенный к Out1 Out2 при En1=1 получим
№пп In1 In2 Out1 Out2 сост. двигателя
1 0 0 земля земля обестоен
2 0 1 +пит. земля прямое питание
3 1 0 земля +пит обратное питание
4 1 1 +пит +пит обесточен
Если при In1=0 и ШИМ = минимум (строка 0) Остановка. Переключим направление (строка 3), In1=1 . ШИМ начнет работать "наизнанку".
Если управлять мощностью по линиям En Шим ведет себя "правильно"
4х фазный 5 проводов.