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

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