31 год мы работаем для разработчиков, изготовителей и ремонтников электроники
Практические занятия робототехника. Конструктор ROBOT BIN CLASSIC

Методы оплаты Методы оплаты
Покупайте товар со скидкой, выбирая эти формы оплаты!
Прайс-листы DESSY.RU для скачивания
Партнерская программа
Наши акции
 
Архив новостей Архив новостей
Новости Новости!
В корзину
Работаем без НДС
В корзину
Работаем без НДС
Модуль RA061 / HW-094 / Контроллер 2-х двигателей на базе L298

Обратите внимание на близкий
по назначению товар:


Модуль RA063. Контроллер двигателей на базе L298

Модуль RA063. Контроллер двигателей на базе L298

Контроллер двигателей на базе L298 Тип3

Контроллер двигателей на базе L298 Тип3
Модуль RA061 / HW-094 / Контроллер 2-х двигателей на базе L298  Модуль RA061 / HW-094 / Контроллер 2-х двигателей на базе L298  Модуль RA061 / HW-094 / Контроллер 2-х двигателей на базе L298  Модуль RA061 / HW-094 / Контроллер 2-х двигателей на базе L298 

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 к линии питания, установив соответствующие перемычки. 

Также на плате присутствует перемычка выбора источника питания для работы драйвера. При установленной перемычке драйвер будет работать от источника питания двигателей через стабилизатор 78M05; при снятой - от линии +5V

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

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

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

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

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

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

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

// Мотор 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);
}

Для удобства код установки скорости и направления вращения можно вынести в отдельные процедуры и вызывать их по мере необходимости.


------------------
СЕЕД10628:200
Вы можете купить Модуль RA061 / HW-094 / Контроллер 2-х двигателей на базе L298 как за наличный расчёт, так и по безналичному расчёту ( т.н. безналу, перечислению). Для этого Вам надо либо оформить заказ на нашем сайте, указав в примечании реквизиты, либо прислать письмо с точным указанием кода CTTL10628 на Модуль RA061 / HW-094 / Контроллер 2-х двигателей на базе L298, желаемого количества и реквизитов Вашей организации. Счета по безналичному расчёту выписываются на основании вашего письменного запроса и от суммы 500 рублей.
Доставка может производиться различными по Вашему выбору способами. Это и самовывоз, и курьерские службы по г. Москве, и транспортные компании по России. Также мы можем выслать этот товар Почтой России. Если размеры, вес товара Модуль RA061 / HW-094 / Контроллер 2-х двигателей на базе L298 или соображения удароустойчивости находятся в разрешённых Почтой России пределах.