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

26-02-2020, 16:49 1 комментариев
Сегодня мы хотим рассказать вам о том, как подключить драйвер L298N к Arduino и для чего он в целом может понадобиться. Речь пойдет о цифровом двухканальном устройстве, которое способно коммутировать большой ток. Это значит, что оно поможет нам в тех проектах, где необходимо применение управления более мощными моторами постоянного тока (уж простите за тавтологию).

Кроме промышленного сектора, шаговые двигатели находят применение в сфере любителей электроники и радиотехники. Работаете над конструированием робота? Желаете заставить двигаться сложный самодельный механизм либо движущиеся устройства? Модернизируете станок с ЧПУ? Во всех этих случаях не обойтись без рассматриваемого нами механизма.

Обратимся к техническим параметрам модуля:
  • напряжение питания: до 35V;
  • рабочий ток (поканально): 2 А;
  • потребляемый логикой ток: 36mA;
  • периодический ток (80% — вкл, 20% — выкл): 2,5 А;
  • кратковременный ток: 3А;
  • рабочие температуры: -25 … +135 С;
  • габариты: 43.5 х 43.2 х 29.4 мм;
  • вес: около 33 г.
Как вы понимаете, устройство имеет массу преимуществ – оно помогает управлять скоростью вращения моторов в обоих направлениях, не требует внешних компонентов для начала работы.
Распиновка контактов показана на скриншоте:

Подключение AD9833 к Ардуино

Для реализации простого проекта нам понадобятся такие компоненты:
  1. плата расширения Ардуино Uno (Arduino Nano и другие совместимые микроконтроллеры также могут подойти)
  2. модуль платы управления моторами L298N
  3. шаговые двигатели (2 шт)
  4. соединительные провода
  5. источник питания (9 В.)
Внешний вид макета (и соответственно схема подключения) выглядит следующим образом:

 Теперь зальем скетч для тестирования (так называемого разгона с регулировкой скорости) мотора:
// подключите пины контроллера к цифровым пинам Arduino

// первый двигатель

int enA = 10;

int in1 = 9;

int in2 = 8;

// второй двигатель

int enB = 5;

int in3 = 7;

int in4 = 6;

void setup()

{

// инициализируем все пины для управления двигателями как outputs

pinMode(enA, OUTPUT);

pinMode(enB, OUTPUT);

pinMode(in1, OUTPUT);

pinMode(in2, OUTPUT);

pinMode(in3, OUTPUT);

pinMode(in4, OUTPUT);

}

void demoOne()

{

// эта функция обеспечит вращение двигателей в двух направлениях на установленной скорости

// запуск двигателя A

digitalWrite(in1, HIGH);

digitalWrite(in2, LOW);

// устанавливаем скорость 200 из доступного диапазона 0~255

analogWrite(enA, 200);

// запуск двигателя B

digitalWrite(in3, HIGH);

digitalWrite(in4, LOW);

// устанавливаем скорость 200 из доступного диапазона 0~255

analogWrite(enB, 200);

delay(2000);

// меняем направление вращения двигателей

digitalWrite(in1, LOW);

digitalWrite(in2, HIGH);

digitalWrite(in3, LOW);

digitalWrite(in4, HIGH);

delay(2000);

// выключаем двигатели

digitalWrite(in1, LOW);

digitalWrite(in2, LOW);

digitalWrite(in3, LOW);

digitalWrite(in4, LOW);

}

void demoTwo()

{

// эта функция обеспечивает работу двигателей во всем диапазоне возможных скоростей

// обратите внимание, что максимальная скорость определяется самим двигателем и напряжением питания

// ШИМ-значения генерируются функцией analogWrite()

// и зависят от вашей платы управления

// запускают двигатели

digitalWrite(in1, LOW);

digitalWrite(in2, HIGH);

digitalWrite(in3, LOW);

digitalWrite(in4, HIGH);

// ускорение от нуля до максимального значения

for (int i = 0; i < 256; i++)

{

analogWrite(enA, i);

analogWrite(enB, i);

delay(20);

}

// торможение от максимального значения к минимальному

for (int i = 255; i >= 0; --i)

{

analogWrite(enA, i);

analogWrite(enB, i);

delay(20);

}

// теперь отключаем моторы

digitalWrite(in1, LOW);

digitalWrite(in2, LOW);

digitalWrite(in3, LOW);

digitalWrite(in4, LOW);

}

void loop()

{

demoOne();

delay(1000);

demoTwo();

delay(1000);

}
К слову, в подобной схеме можно использовать такие шаговые двигатели как Nema 17 (детальнее о нем можно почитать ТУТ), а источник питания заменить на две стандартные пальчиковые батарейки.

Модуль драйвера L298N довольно сложен в настройке, но если вы с нею справитесь, то получите достойный инструмент контроля ШД в проектах любой сложности. На этом пока все! До новых встреч!
Поделись в социальных сетях:
О авторе
Калугин Антон

Программист микроконтроллеров с 8-ми летним стажем, работал в таких компаниях как IBM, ASUS, Microsoft.

В комментариях с радостью отвечу на ваши вопросы.

Все статьи автора
Похожие новости

Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет...

Сегодня у нас на рассмотрении подключение MQ-135 к Arduino и все, что с ним связано. Данная тема и в особенности модуль сенсора выбраны не случайно, ведь в...

Сегодня говорим о цифровом датчике линии TCRT5000 и его подключении к Arduino. Устройство достаточно функционально, оно широко применяется в конструировании и...

На повестке дня – подключение L293D к Arduino, знакомство с техническими характеристиками модуля, его практическим применением и простейшими схемами сборки....

В этой статье мы рассмотрим подключение ADS1115 к Ардуино. Речь идет о 16-битном аналого-цифровом преобразователе, оснащенном 4 входами непосредственно для...

1 комментария
  1. Василий
    11 января 2023 08:48 Василий

    Каша какая-то. В тексте речь про шаговые двигатели, а на схеме показаны обычные коллекторные и скетч, соответственно для них. Неплохо бы читать свои труды до опубликования.

    replyОтветить
Оставить комментарий