Проект 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, выполните следующие шаги:

  1. Скачайте обе библиотеки с официального сайта или из репозитория GitHub: - LiquidCrystal_I2C

  2. Откройте программу Arduino IDE и перейдите в меню «Скетч» → «Подключить библиотеку» → «Добавить .ZIP библиотеку…».

  3. В открывшемся окне выберите скачанный .zip файл и нажмите «Открыть».

  4. Снизу Arduino IDE появится сообщение «Библиотека добавлена. Проверьте меню «Подключить библиотеку» «

  5. Теперь библиотека будет доступна для использования в ваших проектах.

Пример кода с библиотекой:

#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 секунду.