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 | Драйвер електродвигунів |
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 | ||
Прикреплені файли:
- L298N.rar (1 Кб)