22.12.2022 Заняття № 29

 

Драйвер L298N і Arduino


Мікроконтролер, встановлений на платі Arduino, не здатний віддавати великий струм через свої Піни. Що ж робити, якщо необхідно керувати відносно потужними двигунами, наприклад, для переміщення робота?


У таких випадках разом з Arduino використовують драйвер - силову частину, керовану платою і здатну коммутувати великий струм. Найвідоміший такий драйвер для колекторних двигунів - L298N


 

КОРОТКИЙ ОГЛЯД МОДУЛЯ

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

СХЕМА ПІДКЛЮЧЕННЯ ДО ARDUINO


Для управління напрямками двигунів використовується 4 входи - IN1-IN4, крім них - ще 2 дроти (по 1 на канал) для ШІМ-регулювання швидкості. Їх можна відразу замкнути джамперами на +5 В для максимальної швидкості обертання, заощадивши цим 2 Піна контролера.


Піни IN підключаються до будь-яких пінам Arduino, ENABLE - тільки до поміченим на платі знаком ~ (ШІМ).

ПІДКЛЮЧЕННЯ В ARDUINO IDE

Існує 4 можливих комбінації на пінах модуля:
IN1 = 1, IN2 = 1 - двигун стоїть на місці;
IN1 = 0, IN2 = 0 - двигун стоїть на місці;
IN1 = 1, IN2 = 0 - двигун крутиться в одну сторону;
IN1 = 0, IN2 = 1 - двигун крутиться в іншу сторону.
Швидкість обертання регулюється подачею ШІМ на пін 
Enable.


Для прикладу напишемо невеликий скетч, в якому будемо розганяти мотор за допомогою ШІМ-управління:

int IN1 = 5;
int IN2 = 4;
int ENA = 3;

void setup(){
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENA, OUTPUT);
}

void loop(){
//задаємо напрямок
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
//регулюємо через затримки ШІМом плавний розгін.
analogWrite(ENA,55);
delay(500);
analogWrite(ENA,105);
delay(1000);
analogWrite(ENA,255);
delay(1500);
//зупиняємо за допомогою ШІМ порту
analogWrite(ENA,0);
delay(4500);
}

Також зупинити мотор можна, подавши однойменні сигнали, наприклад так:


Або застосувати гальмування реверсом, помінявши сигнали місцями. Воно буде вкрай ефективним, але може привести до осідання напруги через великий струм.


Бажано використовувати джерело живлення з великим вихідним струмом і повісити паралельно кілька конденсаторів великої ємності, якщо стабільність роботи дійсно важлива.


Тепер ви зможете побудувати свого робота або що-небудь ще моторизоване, використовуючи Arduino!

Комментариев нет:

Отправить комментарий

ВАС ВІТАЄ "ШКОЛА РОБОТОТЕХНІКИ" Школа робототехніки - це осередок творчості та технічної фантазії. Місце де мистецтво переплітаєть...