Всем привет! Сегодня я покажу вам как подключать драйвер двигателей 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 меньше, чем напряжение источника питания.
Назначение контактов драйвера
VCC- контакт положительного питания 5V-35V.
Gnd- контакт отрицательного питания 5V-35V
5V - контакт положительного питания 5V для подключения других устройств
ENA - контакт управления скоростью первого двигателя
ENB - контакт управления скоростью второго двигателя
IN1 и IN2- контакты управления первым двигателем
IN3 и IN4- контакты управления вторым двигателем
OUT1 и OUT2 - разъёмы для первого двигателя
OUT3 и OUT4 - разъёмы для второго двигателя
Схема подключения
Схема подключения:
Приношу извинения, но на схеме подключения у драйвера 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 секунд
}
На этот раз всё, всем спасибо за внимание!