Arduino UNO урок 13 - драйвер двигуна L298N

  • Час 11-09-2015, 17:07
  • Автор admin
  • Коментарів 0 Комент.
  • Силка url

Мікросхема L298N являє собою здвоєний мостовий драйвер двигунів і призначена для управління DC і кроковими двигунами. Дана мікросхема знаходить дуже широке застосування в роботостроительстве. Одна мікросхема L298N здатна керувати двома двигунами і забезпечує максимальне навантаження до 2А на кожен двигун, а якщо задіяти паралельне включення для одного двигуна, то можна підняти максимальний струм до 4А.

В даній статті я хочу розглянути підключення до Arduino готового модуля L298N, які дуже широко представлені на популярному аукціоні ebay і в ін. місцях. Можна звичайно купити дану мікросхему і в Росії і зробити самому шилд і всю обв'язку, але сьогоднішня реальність така, що при середній вартості модуля на ebay в 5 доларів, всі комплектуючі при купівлі у нас вийдуть приблизно також, а то й дорожче. Не кажучи вже про трудовитрати на виготовлення друкованої плати, пайка і т. д.

Самі модулі на мікросхемах L298N виглядають так:

Arduino UNO урок 13 - драйвер двигуна L298N

Принципова схема такого модуля виглядає наступним чином:

Arduino UNO урок 13 - драйвер двигуна L298N

Щит має наступні піни підключення:
Vcc - підключення зовнішнього живлення двигунів
+5 - харчування логіки
GND - загальний
IN1, IN2, IN3, IN4 (роз'єм P4 на схемі) - входи керування двигунами
OUT1, OUT2 (роз'єм P2 на схемі) - вихід першого двигуна
OUT3, OUT4 (роз'єм P3 на схемі) - вихід другого двигуна
Вимикач S1 служить для перемикання живлення логічної частини мікросхеми. Тобто при включеному S1 харчування логічної частини береться від внутрішнього перетворювача модуля. При вимкненому S1 харчування береться від зовнішнього джерела.
На модулях також присутні перемички ENA і ENB для вирішення включення двигунів. Якщо необхідно, їх можна також підключити до Arduino і задіяти, але це зайві 2 дроти і в цих входах немає особливого сенсу.

Arduino UNO урок 13 - драйвер двигуна L298N

ШІМ управління дозволяє плавно змінювати швидкість обертання двигуна. Якщо нам не потрібно ШІМ управління, то на відповідний вхід потрібно просто подати логічну 1. На який саме вхід IN1 або IN2 ви подасте сигнал ШІМ, або напрям обертання - різниці не має. Теж саме справедливо і для входів IN3, IN4.

Схема підключення шилда L298N до контролера Arduino:

Arduino UNO урок 13 - драйвер двигуна L298N

Для живлення логічної частини схеми необхідно натиснути кнопку або вставити перемичку (залежить від типу модуля). Якщо ж на вашому модулі не передбачений перетворювач 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 lt;= 255; value+=1) { digitalWrite(D1, direction); // Задаємо напрям обертання digitalWrite(D2, direction); analogWrite(M1, value); // Задаємо швидкість обертання analogWrite(M2, value); delay(20); } direction = direction ^ 1; // Інвертуємо значення, щоб у слід. циклі обертатися в іншу сторону } Прикріплені файли:
  • L298N.rar (1 Кб)
Tags

Коментарі до новини