Найти в Дзене
Электроника, Arduino и IT

Драйвер двигателей L298N. Подключение к Arduino и управление двумя двигателями

Оглавление

Всем привет! Сегодня я покажу вам как подключать драйвер двигателей L298N к Arduino.

В этом уроке использованы:

1. Плата Arduino Uno

2. Компьютер с установленной Arduino IDE и драйверами для плат

3. Два двигателя с припаянными проводами

4. Драйвер двигателей L298N

5. Бокс и два литий-ионных аккумулятора на 3.7V(в качестве источника питания). Можно использовать и другой источник питания.

6. Соединительные провода типа папа-мама 6 штук

Описание драйвера двигателей L298N

Эта плата драйвера использует драйвер двигателей L298N. Он позволяет управлять двумя двигателями или шаговым двигателем(Nema-17). Максимальный потребляемый двигателями ток - 2 Ампера. Питать драйвер можно от 5V до 35V. Диапазон рабочих температур от -25 до 135 градусов. Также драйвер имеет контакты ENA и ENB, которые позволяют управлять скоростью двигателей с помощью ШИМ. Их нужно подключать к ШИМ-выходам платы Arduino. На Arduino Uno это пины 3, 5, 6, 9, 10 и 11.

У драйвера L298N есть внутреннее падение напряжения в Н-мосте, поэтому моторы получат на 2V меньше, чем напряжение источника питания.

Драйвер двигателей L298N
Драйвер двигателей L298N

Назначение контактов драйвера

VCC- контакт положительного питания 5V-35V.

Gnd- контакт отрицательного питания 5V-35V

5V - контакт положительного питания 5V для подключения других устройств

ENA - контакт управления скоростью первого двигателя

ENB - контакт управления скоростью второго двигателя

IN1 и IN2- контакты управления первым двигателем

IN3 и IN4- контакты управления вторым двигателем

OUT1 и OUT2 - разъёмы для первого двигателя

OUT3 и OUT4 - разъёмы для второго двигателя

Схема подключения

Схема подключения:

L298N схема подключения
L298N схема подключения

Приношу извинения, но на схеме подключения у драйвера L298N отсутствуют контакты ENA и ENB. Куда их подключать сказано ниже.

VCC(L298N) - плюс на источнике питания

Gnd(L298N) - минус на источнике питания

ENA(L298N) - Pin6(плата Arduino Uno)

ENB(L298N) - Pin9(плата Arduino Uno)

IN1(L298N) - Pin2(плата Arduino Uno)

IN2(L298N) - Pin3(плата Arduino Uno)

IN3(L298N) - Pin4(плата Arduino Uno)

IN4(L298N) - Pin5(плата Arduino Uno)

VCC(плата Arduino) - 5V(L298N)

Gnd(плата Arduino) - Gnd(L298N)

Скетч

Архив со схемой подключения и скетчем можно скачать отсюда.

Давайте приступим к написанию скетча. Чтобы двигатель крутился вперёд, нужно подать на один контакт плюс, а на другой минус. А если поменять полярность двигатель будет вращаться в обратную сторону. По этому принципу и пишется программа для L298N.

int motor1 = 2; //пин первого двигателя IN1

int motor2 = 3; //пин первого двигателя IN2

int motor3 = 4; //пин второго двигателя IN3

int motor4 = 5; //пин второго двигателя IN4

int ENA = 6; //пин регулировки скорости первого двигателя

int ENB = 9; //пин регулировки скорости второго двигателя

void setup() {

pinMode(motor1, OUTPUT); //переводим IN1 в режим вывода

pinMode(motor2, OUTPUT); //переводим IN2 в режим вывода

pinMode(motor3, OUTPUT); //переводим IN3 в режим вывода

pinMode(motor4, OUTPUT); //переводим IN4 в режим вывода

pinMode(ENA, OUTPUT); //переводим ENA в режим вывода

pinMode(ENB, OUTPUT); //переводим ENB в режим вывода

}

void loop() {

//вращаем оба двигателя вперёд с максимальной скоростью

digitalWrite(motor1, HIGH);

digitalWrite(motor2, LOW);

digitalWrite(motor3, HIGH);

digitalWrite(motor4, LOW);

analogWrite(ENA, 255);

analogWrite(ENB, 255);

delay(5000); //задержка 5 секунд

//вращаем оба двигателя назад с максимальной скоростью

digitalWrite(motor1, LOW);

digitalWrite(motor2, HIGH);

digitalWrite(motor3, LOW);

digitalWrite(motor4, HIGH);

analogWrite(ENA, 255);

analogWrite(ENB, 255);

delay(5000); //задержка 5 секунд

}

На этот раз всё, всем спасибо за внимание!