Драйвер шагового двигателя L298N двухмостовый
Драйвер шагового двигателя L298N двухмостовый
Драйвер шагового двигателя L298N двухмостовый
Драйвер шагового двигателя L298N двухмостовый
Драйвер шагового двигателя L298N двухмостовый
Драйвер шагового двигателя L298N двухмостовый
Драйвер шагового двигателя L298N двухмостовый
Драйвер шагового двигателя L298N двухмостовый

Драйвер шагового двигателя L298N двухмостовый

Арт. 13448

170

менее 50 шт.

Описание

L298N - это один из наиболее популярных драйверов двигателей. Он содержит в себе два H-моста, и позволяет управлять направлением и скоростью вращения двух двигателей постоянного тока (или одним шаговым двигателем, хотя для них существуют более специализированные микросхемы). Модули, построенные на базе этой микросхемы, содержат все необходимые компоненты обвязки, выводы и клеммы, что облегчает их применение.

Зачем вообще нужны драйверы двигателей?

Двигатели постоянного тока являются одними из основных компонентов в робототехнике. Но зачастую им требуется напряжение, превышающее напряжение питания микроконтроллера. И даже если двигатель рассчитан на 3-5 вольт, он может потреблять значительный ток - сотни миллиампер и более. Это означает, что его нельзя подключать напрямую к выводам Ардуино, т.к. это приведёт к повреждению микроконтроллера. Как же быть?

Простейшее решение - это использовать некий ключ, например, транзистор, который будет управляться цифровым выводом Ардуино и запускать двигатель:

Подключение двигателя к Ардуино через NPN транзистор

Это вполне рабочее решение, с его помощью можно даже управлять скоростью вращения двигателя, если подключить транзистор к выводу Ардуино с поддержкой ШИМ. Однако оно не позволит менять полярность напряжения на двигателе, а значит мы не сможем менять направление вращения. Чтобы решить эту проблему нам придётся усложнить схему, добавив в неё еще несколько деталей:

Схема H-моста

Приведённая схема получила название H-моста благодаря её графическому изображению, напоминающему букву H. При таком соединении транзисторы при подаче на них управляющих сигналов будут открываться попарно: либо Q1 и Q4, либо Q2 и Q3. Таким образом обеспечивается изменение полярности напряжения, прикладываемого к нагрузке (мотору). К счастью, нам не придётся собирать подобную схему самостоятельно, поскольку она уже доступна в виде готовых микросхем. Такие микросхемы называют драйверами двигателей. И одной из них является микросхема L298N.

Драйвер L298N довольно мощный. Он способен питать двигатели напряжением до 46 вольт. Максимальный допустимый ток составляет 2 ампера на канал. При этом для работы самого драйвера требуется напряжение 4.5-7 вольт, а потребляемый им ток не превышает 70 миллиампер. Подробные технические характеристики драйвера L298N можно найти в даташите.

Выводы модуля L298N

Выводы модуля L298N

На плате модуля имеются 6 управляющих выводов: ENA - позволяет управлять скоростью первого двигателя при помощи ШИМ сигнала, IN1 и IN2 - направлением его вращения. ENB, IN3, IN4, соответственно, отвечают за второй двигатель. Если вы не планируете управлять скоростью вращения, то можете соединить выводы ENA и ENB с линией питания.

Также на плате присутствуют перемычки:

  • CSA (Chip Select A) и CSB (Chip Select B) - разрешают работу мостов A и B соответственно
  • U1..U4 - задействуют подтягивающие резисторы для выводов IN1..IN4
  • 5V_EN - выбор источника питания для L298N:
    • при установленной перемычке - от источника питания двигателей через стабилизатор 78M05
    • при снятой - от линии 5V

Если вы питаете двигатели напряжением 4-5.5 В, то есть нет необходимости понижать его для драйвера, то перемычку 5V_EN следует снять, а питание подвести к выводам VMS и 5V. Если напряжение источника превышает указанный диапазон, то подводим его только к VMS и устанавливаем перемычку.

Логика управления двигателем с использованием драйвера L298N отражена в следующей таблице:

Состояние входов Назначение
ENA = HIGH IN1 = HIGH, IN2 = LOW Движение вперёд
IN1 = LOW, IN2 = HIGH Движение назад
IN1 = IN2 Тормоз (выводы двигателя закорачиваются)
ENA = LOW IN1 = X, IN2 = X Двигатель обесточен

Данные в таблице приведены для первого двигателя. Для второго принцип тот же, но используются ENB, IN3 и IN4.

Габариты модуля составляют 43х43х27 мм, вес: 30 гр.

Подключение модуля L298N к Ардуино

Подключение модуля L298N к Ардуино

Данная схема предполагает использование общего источника питания для Ардуино, драйвера двигателей и самих двигателей. Перемычка 5V_EN установлена. Теперь остаётся загрузить в Ардуино скетч, который будет управлять работой двигателей. Пример такого скетча приведён ниже.

// Мотор A
const byte pin_M1_speed = 9;
const byte pin_M1_dir1 = 2;
const byte pin_M1_dir2 = 3;
// Мотор B
const byte pin_M2_speed = 10;
const byte pin_M2_dir1 = 4;
const byte pin_M2_dir2 = 5;

void setup() {
  pinMode(pin_M1_speed, OUTPUT);
  pinMode(pin_M1_dir1, OUTPUT);
  pinMode(pin_M1_dir2, OUTPUT);
  pinMode(pin_M2_speed, OUTPUT);
  pinMode(pin_M2_dir1, OUTPUT);
  pinMode(pin_M2_dir2, OUTPUT);
}

void loop() {
  // Выставляем направление вращения
  digitalWrite(pin_M1_dir1, HIGH);
  digitalWrite(pin_M1_dir2, LOW);
  digitalWrite(pin_M2_dir1, HIGH);
  digitalWrite(pin_M2_dir2, LOW);
  // В цикле наращиваем скорость
  for (byte i = 100; i < 250; i+=10) {
    analogWrite(pin_M1_speed, i);
    analogWrite(pin_M2_speed, i);
    delay(500);
  }
  // Меняем направление вращения
  digitalWrite(pin_M1_dir1, LOW);
  digitalWrite(pin_M1_dir2, HIGH);
  digitalWrite(pin_M2_dir1, LOW);
  digitalWrite(pin_M2_dir2, HIGH);
  // Уменьшаем скорость в цикле
  for (byte i = 250; i > 100; i-=10) {
    analogWrite(pin_M1_speed, i);
    analogWrite(pin_M2_speed, i);
    delay(500);
  }
  // Тормоз
  digitalWrite(pin_M1_dir2, LOW); // pin_M1_dir1 и pin_M2_dir1 уже установлены в LOW
  digitalWrite(pin_M2_dir2, LOW);
  delay(3000);
}