В этой статье мы научимся подключать и работать с драйвером двигателей и мотора. Драйвер предназначен для управления 2 моторами постоянного тока или одним шаговым двигателем с потреблением тока не больше 2 Ампер.
Внутреннее устройство платы L298N
Схема имеет следующие обозначения:
1-разъем питания двигателей до 35 В, питание с которого уходит на мотор(обозначается VSS), а также земля(обозначение на плате GND)(подсоединяется к аналогичному GND на Arduino)
2-линейный понижающий стабилизатор до 5 Вольт;
3-вход для питания платы(Vs), также является входом для питания стабилизатора, Возможно не подключать его, а подать напряжение только на VSS, но нужно установить джампер 4 для ограничения подаваемого напряжения на плату до 5 Вольт. Благодаря стабилизатору 2 и его входу 3 на 5 Вольт драйвер способен питать микроконтроллер или сервоприводы.
4-джампер подачи напряжения до 35 В для управления мотором, однако для этого требуется отдельно подавать 5 Вольт с платы Arduino.
5-OUT1 и OUT2 слева(разъемы для подключения первого двигателя или единственного мотора), OUT3 и OUT4 справа соответственно(разъёмы для подключения второго двигателя или единственного мотора), проще говоря-выходы на мотор или двигатель
6-Два логических входа на левые выходы(IN1, IN2) для моторов и два-для правых(IN3, IN4).
7- Джамперы, отвечающие за работу двигателей(ENA, ENB). Позволяют полностью включать и выключать канал мотора. Их можно не снимать и использовать вместо них основные логические входы. Используются в основном для изменения скорости щеточных моторов при помощи ШИМ-сигнала.
К двум боковым клеммам подключаются двигатели. На 3 пина подсоединяются питание для двигателей и самой микросхемы. Контакт в 12 В можно питать от 5 до 19 В, но стабилизатор принимает только 12В, в случае, если мы хотим подать больше-нужно убрать перемычку рядом с пинами и отдельно подать 5 В. В данном случае стабилизатор будет питаться от 5 Вольтового пина, а двигатели-от 2 пинов, на которые подано напряжение. Грубо говоря, плата питается от 5 Вольтового пина, а двигатели и мотор-от двух других.
Входы на плату управляют направлением вращения двигателей. Левые два входа относятся к левому каналу, два последних-к правому.
Если подать 5 Вольт на 1 контакт, двигатель будет крутиться в одну сторону, если на второй-то он поменяет свое направление.
Два джампера рядом с входами соединяют два контакта. Если его снять, то там окажется контакт с 5 Вольтовым входом и контакт, регулирующий скорость оборота при помощи ШИМ-сигнала. Если на контакт, регулирующий скорость, ничего не подавать, то двигатель не будет вращаться даже в случае подачи сигналов к основным входам, регулирующим направление. С одетыми джамперами можно подавать сигналы на основные входы и регулировать как скорость, так и направление.
Логика управления мотором по 2ум пинам:
- При подаче двух низких сигналов будет холостой ход
- При подаче двух высоких сигналов будет активное торможение
- При подаче разных сигналов задается направление вращения.
- Недостатки драйвера 298N
- Микросхемы данного драйвера является очень слабым по току и нагреваются даже при токе в 1 Ампер от одного мотора.
Подключение мотора с редуктором
Для примера подключим плату к мотору с редуктором(на него одеваем колесо от машинки). Плату питаем от обычной 5 Вольтовой телефонной зарядки. Третий контакт задействовать не будем, поскольку напряжение всего 5 Вольт.
Перемычка остается на месте, а стабилизатор питает плату от напряжения +5 Вольт. Подсоединяем мотор к пину, отвечающему за направление вращения. После подсоединения к розетке на плате загорается светодиод, который сигнализирует о наличии напряжения. Подаем к контакту, отвечающему за мотор напряжение в 5 Вольт. Колесо начинает крутиться. Если переставить его в соседний контакт- направление изменится.
Подключение драйвера к ардуино и управление мотором при помощи ШИМ-сигнала
При работе через драйвер диод на мотор для борьбы с помехами ставить не требуется, поскольку мост на драйвере сам образует диод в обе стороны сам себя защищает. Диод требуется только при работе с одиночным транзистором и реле.
Для следующего эксперимента нам понадобится:
- Плата Arduino;
- Макетная плата;
- Потенциометр(переменный резистор);
- Пины, работающие с ШИМ-сигналом, обозначены волнистой линией.
Для управления скоростью вращения достаточно подавать ШИМ сигнал на управляющий вход, который обозначим pinIN, т.е. можно задействовать не все 6 входов, а 4 для управления скоростью.
Для управления направлением и скоростью мотора На 1 пин подаем 0 или 1, на второй-ШИМ. Для вращения в обратную сторону нам нужно инвертировать ШИМ сигнал, чтобы скорость менялась от 0 до 100%.
Если направление инвертировано, то инвертируем скорость и подаем на пин управления значения направление и на ШИМ-пин скорость.
Код
#define MOTOR1_IN 2
#define MOTOR1_PWM 3
#define MOTOR2_IN 4
#define MOTOR2_PWM 5
void setup() {
pinMode(MOTOR1_IN, OUTPUT);
pinMode(MOTOR1_PWM, OUTPUT);
pinMode(MOTOR2_IN, OUTPUT);
pinMode(MOTOR2_PWM, OUTPUT);
}
void loop() {
motorControl(analogRead(0), MOTOR1_IN, MOTOR1_PWM);
}
// принимает знач. 0-1023, пин IN и PWM(ШИМ)
void motorControl(int val, byte pinIN, byte pinPWM) {
val = map(val, 0, 1023, -255, 255);
if (val > 0) { // вперёд
analogWrite(pinPWM, val);
digitalWrite(pinIN, 0);
} else if (val < 0) { // назад
analogWrite(pinPWM, 255 + val);
digitalWrite(pinIN, 1);
} else { // остановка
digitalWrite(pinIN, 0);
digitalWrite(pinPWM, 0);
}
}
Однако 298N несовременен, ввиду своих характеристик является устаревшим. Микросхемы этого драйвера сделаны по полупроводниковой технологии. Он слаб по току и греется даже от нагрузки в 1 Ампер от 1 мотора. К тому же, он не эргономичен. Аналогичны характеристики имеет и классический моторшилд для UNO.
Рассмотрим другие, более современные драйвера.
Драйвер MX1508
Драйвер MX1508 обладает следующими характеристиками:
- Позволяет подать на два мотора напряжение до 10 В при максимальном токе в 2.5 А;
- Позволяет подать на два мотора напряжение до 10 В при максимальном токе в 2.5 А;
- Чип имеет защиту от перегрева(сам отключается в случае перегрева);
- Управление аналогично 298N;
- Предназначен для работы с двумя моторами.
Драйвер TA6586
Драйвер TA6586 обладает следующими характеристиками:
- Предназначен для работы с двумя моторами;
- Ток до 7 А;
- Обладает защитой от перегрева;
- Подключение и управление аналогично.
В данной статье мы рассмотрели различные вариации драйверов: как устаревшие, так и современные. Научились подключать драйвер к плате Arduino и управлять драйвером при помощи ШИМ-сигнала с Arduino.