Как работает драйвер двигателя L298N и как его подключить к Arduino


В данной статье мы рассмотрим управление электродвигателем постоянного тока с помощью платы Arduino и драйвера двигателя L298N. Данный принцип управления электродвигателем находит широкое применение при создании различных проектов машин с дистанционным управлением, роботов и других устройствах.

Внешний вид проекта подключения к Arduino драйвера двигателя L298N

Ранее на нашем сайте мы уже рассматривали применение драйвера двигателя L298N в следующих проектах:

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Модуль драйвера двигателя LM298N (купить на AliExpress).
  3. Электродвигатели постоянного тока, работающие от напряжения 12V (купить на AliExpress).
  4. Редукторы для электродвигателей.
  5. Потенциометр.
  6. Кнопка.
  7. Резистор.
  8. Макетная плата.
  9. Соединительные провода.

Общие принципы управления электродвигателями постоянного тока

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

Использование ШИМ для управления двигателем постоянного токаС помощью ШИМ можно регулировать средний уровень напряжения, подаваемый на управляемое электронное устройство. Данный средний уровень напряжения зависит от коэффициента заполнения (duty cycle) ШИМ сигнала, представляющий собой отношение активного состояния сигнала (состояние ON) ко всему периоду сигнала. Более подробно про это можно прочитать в статье про использование ШИМ в плате Arduino.

Влияние коэффициента заполнения ШИМ сигнала на средний уровень напряженияТаким образом мы можем, к примеру, подключить ШИМ контакт Arduino к затвору MOSFET транзистора и управлять скоростью вращения двигателя, изменяя коэффициент заполнения ШИМ сигнала, как показано на следующем рисунке.

Принцип управления двигателем постоянного тока с помощью Arduino и MOSFET транзистораЧто такое H-мост и как он работает

Как мы уже разобрались, скоростью вращения двигателя постоянного тока можно управлять изменяя коэффициент заполнения ШИМ сигнала. А чтобы управлять направлением вращения двигателя нам необходимо изменять направление тока, протекающего через двигатель. Один из самых распространенных способов сделать это - использование H-моста. Типовой H-мост содержит 4 переключающих элемента, транзистора или MOSFET, с двигателем в центре этой схемы. Таким образом, мы получаем конфигурацию наподобие английской буквы H. Управляя двумя переключателями одновременно, мы можем изменить направление протекания тока, таким образом, изменяя направление вращения двигателя.

Принцип работы H-моста

То есть, используя комбинацию ШИМ и H-моста, мы можем получить полный контроль над двигателем - сможем управлять и направлением, и скоростью его вращения.

Драйвер двигателей L298N

Сейчас на рынке присутствует достаточно много разнообразных модулей драйверов двигателей, L298N - является одним из самых популярных среди них. Он представляет собой двойной H-мост, что позволяет ему управлять двумя электродвигателями постоянного тока одновременно. Модуль позволяет управлять двигателями с питающим напряжением от 5 до 35 В и пиковым током до 2 А.

Внешний вид модуля драйвера двигателей L298N

Модуль L298N содержит две идентичные пары контактов для двигателей A и B, а также группу контактов, включающую Ground (общий провод/земля), питающее напряжение (VCC) для двигателей и контакт 5V, который может быть как входом, так и выходом.

Назначение контактов (распиновка) модуля L298NМодуль содержит встроенный регулятор 5V, который можно включить или выключить с помощью джампера. Если питающее напряжение двигателя не превышает 12V, мы можем задействовать регулятор 5V и в этом случае мы можем использовать контакт 5V в качестве выхода и запитывать с его помощью, к примеру, плату Arduino. Но если питающее напряжение двигателя более 12V мы должны с помощью джампера отключить этот контакт поскольку такие напряжения могут вывести из строя встроенный регулятор 5V. В этом случае мы можем использовать контакт 5V в качестве входа и подключить его к источнику питания 5V, от которого будет запитываться наш модуль.

Падение напряжения на модуле L298N составляет около 2 В. То есть если мы используем источник питания с напряжением 12 В, то напряжение на контактах, к которым подключаются двигатели, составляет около 10 В, то есть в данном случае мы не сможем достичь максимальной скорости вращения нашего двигателя постоянного тока, работающего от 12 В.

Падение напряжения на модуле L298NКонтакты Enable A и Enable B модуля L298N используются для включения и регулировки скорости вращения двигателей. Если на этих контактах присутствует джампер, то двигатель будет включен и вращаться с максимальной скоростью, если мы удалим джампер, то мы можем подключить эти контакты в выходам ШИМ микроконтроллера (платы) и с помощью сигнала ШИМ регулировать скорость вращения двигателей. Если мы подключим один из этих контактов к общему проводу/земле (Ground), то соответствующий двигатель будет отключен.

Контакты модуля L298N для регулировки скорости и направления вращения двигателейКонтакты Input 1 и Input 2 модуля L298N используются для задания направления вращения двигателя A, а контакты inputs 3 и 4 - для задания направления вращения двигателя B. С помощью данных контактов мы фактически управляем переключателями H-мостов внутри микросхемы L298N. Если на input 1 уровень LOW, а на input 2 уровень HIGH, то двигатель A будет вращаться в прямом направлении и наоборот, если на input 1 уровень HIGH, а на input 2 уровень LOW, то двигатель будет вращаться в обратном направлении. Если на обоих этих контактах одинаковый уровень, LOW или HIGH, двигатель остановится. Аналогично и для контактов inputs 3 и 4 и двигателя B.

Схема проекта

Схема подключения модуля драйвера двигателей L298N к плате Arduino представлена на следующем рисунке.

Схема подключения модуля драйвера двигателей L298N к плате ArduinoВ нашем проекте мы будем управлять скоростью вращения двигателя с помощью потенциометра, а изменять направление его вращения с помощью кнопки.

Исходный код программы (скетча)

Видео, демонстрирующее работу проекта

Источник статьи

(Проголосуй первым!)
Загрузка...
124 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *