Драйвер 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);
}
Комментариев нет:
Отправить комментарий