Проект 4: Модуль драйвера двигателя L298N
Используя микросхему L298N от компании ST в качестве управляющего чипа, модуль обладает сильной способностью к управлению, низким тепловыделением и высокой устойчивостью к помехам. Этот модуль может использовать встроенный 78M05 для работы с электропитанием через часть питания драйвера. Однако, чтобы избежать повреждения стабилизирующего чипа, при использовании напряжения выше 12В рекомендуется использовать внешний источник питания с логическим напряжением 5В. Модуль оснащен высокоемкостным фильтрующим конденсатором, что позволяет следовать за током для защиты диодов и улучшает надежность.
Спецификации
Режим работы: H мост (двойные линии)
Управляющий чип: L298N (ST)
Логическое напряжение: 5V
Напряжение питания: 5V-35V
Логический ток: 0mA-36mA
Ток привода: 2A (макс. на один мост)
Температура хранения: -20 °C - +135 °C
Максимальная мощность: 25W
Вес: 30g
Габаритные размеры: 43 x 43 x 27 мм (Д x Ш x В)
Подключение

Пример кода
Базовый пример без библиотеки:
int ENA = 10;
int IN1 = 9;
int IN2 = 8;
int IN3 = 7;
int IN4 = 6;
int ENB = 5;
void setup() {
for (int i = 5; i < 11; i++) {
pinMode(i, OUTPUT);
}
}
void loop() {
// Вращение по часовой стрелке (CW)
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
analogWrite(ENA, 200);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(ENB, 200);
delay(1000);
// Пауза 1 секунда
analogWrite(ENA, 0);
analogWrite(ENB, 0);
delay(1000);
// Вращение против часовой стрелки (CCW)
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(ENA, 100);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(ENB, 100);
delay(1000);
// Пауза 1 секунда
analogWrite(ENA, 0);
analogWrite(ENB, 0);
delay(1000);
}
Второй вариант с использованием библиотеки
Для более простого управления моторами с использованием модуля L298N можно воспользоваться библиотекой AlashMotorControlLite.
ВНИМАНИЕ: Чтобы подключить библиотеку для Arduino, выполните следующие шаги:
Скачайте обе библиотеки с официального сайта или из репозитория GitHub: - LiquidCrystal_I2C
Откройте программу Arduino IDE и перейдите в меню «Скетч» → «Подключить библиотеку» → «Добавить .ZIP библиотеку…».
В открывшемся окне выберите скачанный .zip файл и нажмите «Открыть».
Снизу Arduino IDE появится сообщение «Библиотека добавлена. Проверьте меню «Подключить библиотеку» «
Теперь библиотека будет доступна для использования в ваших проектах.
Пример кода с библиотекой:
#include <AlashMotorControlLite.h>
// Создаем объект motorLeft с режимом DIR_DIR_PWM и пинами inA = 9, inB = 8, PWM = 10
AlashMotorControlLite motorLeft(DIR_DIR_PWM, 9, 8, 10);
// Создаем объект motorRight с режимом DIR_DIR_PWM и пинами inA = 7, inB = 6, PWM = 5
AlashMotorControlLite motorRight(DIR_DIR_PWM, 7, 6, 5);
void setup() {
// В данной функции нет инициализации, оставлено пустым
}
void loop() {
motorLeft.setSpeed(100); // Установка скорости вращения вперед для левого мотора
motorRight.setSpeed(100); // Установка скорости вращения вперед для правого мотора
delay(1000); // Задержка 1 секунды
motorLeft.setSpeed(0); // Остановка левого мотора
motorRight.setSpeed(0); // Остановка правого мотора
delay(1000); // Задержка 1 секунды
motorLeft.setSpeed(-100); // Установка скорости вращения назад для левого мотора
motorRight.setSpeed(-100); // Установка скорости вращения назад для правого мотора
delay(1000); // Задержка 1 секунды
motorLeft.setSpeed(0); // Остановка левого мотора
motorRight.setSpeed(0); // Остановка правого мотора
delay(1000); // Задержка 1 секунды
}
Результат
После подключения и включения питания два мотора вращаются по часовой стрелке в течение 1 секунды на скорости 200 (значение PWM 200), затем останавливаются на 1 секунду; два мотора вращаются против часовой стрелки в течение 1 секунды на скорости 100 (значение PWM 100), затем останавливаются на 1 секунду.