Подключение DC электромоторов к Raspberry Pi через драйвер L298N
-
Если вы захотите собрать робота на колёсах, то столкнётесь с необходимостью изучения принципов работы управляющего электромоторами драйвера. Самый простой, недорогой и распространённый драйвер - L298N . Он может управлять скоростью и направлением вращения электромоторов
Управление DC электромоторами
Управление электромотором подразумевает под собой управление скоростью и направлением его вращения. Это достигается сочетанием двух методов:
ШИМ (широтно-импульсная модуляция) для управления скоростью вращения
H-Bridge - для управления направлением вращенияУправление скоростью вращения при помощи ШИМ
Скорость вращения мотора регулируется через изменение уровня подаваемого на него напряжения.
ШИМ это методика, суть которой состоит в том, что среднее значение напряжение на входе регулируется серией импульсов ВКЛ-ВЫКЛ, т.е быстрыми включениями и выключениями подачи напряжения питания к двигателю.
Средняя величина напряжения будет пропорциональна коэффициенту заполнения (ширине) импульса - чем больше коэффициент, тем выше напряжение, и наоборот.
Эта картинка иллюстрирует данную зависимость:
H-Bridge
Направление вращения регулируется сменой полярности входного напряжения. Стандартным способом реализации такой смены является H-Bridge
В электрической цепи (которая визуально напоминает букву Н) H-Bridge присутствуют 4 ключа с мотором в центре этой цепи.
Полярность входного напряжения на моторе будет зависить от того, какая пара ключей замыкает цепь в настоящий момент. Вот так это выглядит:
L298N - драйвер электромотора
Основой этого модуля является чёрный чип с радиатором. L298N является двухканальным драйвером, и следовательно может независимо управлять двумя электромоторами. Поэтому данный драйвер хорошо подходит для использования в двухколёсных роботах, поворот которых осуществляется за счёт разницы в скорости вращения правого и левого колеса.
Питание драйвера
Питание к L298N подаётся через трёхконтактный зажимной терминальный разъём (провода вставляются в разъём и зажимаются вращением винта на разъёме).
- 1 контакт Vs - питание, которое будет подаваться через драйвер на моторы;
- 2 контакт GND - земля;
- 3 контакт Vss - питание 5V для управляющего драйвером устройства, в качестве которого может выступать микроконтролер или Raspberry Pi)
L298N имеет также встроенный стабилизатор (78M05) напряжения до 5V. Когда установлен джампер, то этот стабилизатор работает и с контакта Vss можно снимать 5V 0.5А для питания управляющего драйвером устройства. Когда джампер снят, то стабилизатор выключен, а значит нам нужно питатьуправляющее драйвером устройство от независимого источника питания.
Использование джампера запрещено, при подаче на 1-ый контакт (Vs) напряжения, превышающего 12В. Это может привести к выходу из строя стабилизатора78M05 .
Если джампер установлен, то контакт Vss работает как выход . Подавать на него напряжение извне в этом случае запрещено
Падение напряжения на L298N
Падение напряжение на драйвере может достигать 2В, за счёт падения напряжения на транзисторах Н-Моста. Таким образом, при подаче на контакт Vs 12В до электромоторов дойдёт только 10В, а значит они не смогут выйти на максимум своих оборотов (естественно речь идёт о 12-ти вольтовых DC электромоторах). Таким образом напряжение, подаваемое на контакт Vss должно быть на 2V выше напряжения работы электромотора (14В для 12-ти вольтовых моторов, 7В для пятивольтовых соответственно)
Подключение DC электромоторов к драйверу
Электромоторы подключаются к зажимным контактам по краям платы.
Можно подключать электромоторы, рассчитанные на напряжение 5-35V. Максимальный ток от драйвера к каждому мотору - 2А (если источник питания драйвера умеет отдавать столько тока)Контакты контроля направления вращения
Используя контакты IN1-IN4, можно менять направление вращения электромоторов (различные уровни напряжения на этих контактах приводят к замыканию нужных пар ключей Н-Моста драйвера L298N) - по часовой стрелке или в обратном направлении.
Контакты IN1 IN2 управляют направлением вращение первого электоромотора (А), IN3 IN4 - второго электромотора (В) Направление вращения моторов зависит от того, какой уровень напряжения (высокий или низкий) подаётся на эти контакты.
Возможно 4 варианта:
- Низкий уровень напряжения на обоих контактах - мотор выключен
- Высокий уровень напряжения на обоих контактах - мотор выключен
- In1 высокий уровень, In2 низкий уровень - мотор вращается вперёд
- Ln1 низкий уровень, In 2 высокий уровень - мотор вращается назад
Контакты контроля скорости
Для управления скоростью вращения моторов используется контакты ENA (мотор А), ENB(мотор В)
Низкий уровень - мотор отключен, высокий уровень - мотор работает на максимальных оборотах, ШИМ - различная скорость вращения в зависимости от коэффициента заполнения импульсов. По умолчанию на этих контактах установлены джамперы, их следует снять, если вы хотите управлять оборотами.
Подключение L298N к Raspberry Pi
Теперь, когда мы хорошо знакомы с драйвером L298N, можно подключить к нему питание, моторы и Raspberry Pi
Raspberry Pi я запитал через 5V внешний аккумулятор PowerBank. Поскольку у меня не было аккумулятора на 12V драйвер L298N я запитал от того же внешнего аккумулятора, вставив в него повышающий DC/DC преобразователь
В следующей статье рассмотрим программирование двухколёсного робота с драйвером L298N