Arduino UNO урок 13 — драйвер двигателя L298N

Микросхема 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
Драйвер электродвигателейL2981
U2
Линейный регуляторL7805AB1
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
Разьем для подключения к Arduino1
Р5
Клеммный зажим для подключения питания1
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

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

Ваш адрес email не будет опубликован.