Драйвер двигателя L298N: различия между версиями
Root (обсуждение | вклад) Нет описания правки |
Artecoll (обсуждение | вклад) Нет описания правки |
||
Строка 4: | Строка 4: | ||
Драйвер позволяет просто и понятно управлять скоростью вращения моторов в обоих направлениях с помощью ШИМ (раздельно для каждого мотора). | Драйвер позволяет просто и понятно управлять скоростью вращения моторов в обоих направлениях с помощью ШИМ (раздельно для каждого мотора). | ||
== Спецификация модуля L298N: == | |||
* напряжение питания двигателей: до 35 В; | * напряжение питания двигателей: до 35 В; | ||
Строка 12: | Строка 12: | ||
* вес: 33 г. | * вес: 33 г. | ||
== Контакты драйвера == | |||
* '''OUT1 и OUT2''' – разъёмы для подключения первого щёточного двигателя или первой обмотки шагового двигателя; | * '''OUT1 и OUT2''' – разъёмы для подключения первого щёточного двигателя или первой обмотки шагового двигателя; | ||
Строка 29: | Строка 29: | ||
Две другие винтовые клеммы (OUT1/2 и OUT 3/4) служат для подключения моторов. Надо отметить, что моторы постоянного тока неполярные, но от того на какой контакт мотора подается плюс, а на какой минус, зависит направление их вращения. | Две другие винтовые клеммы (OUT1/2 и OUT 3/4) служат для подключения моторов. Надо отметить, что моторы постоянного тока неполярные, но от того на какой контакт мотора подается плюс, а на какой минус, зависит направление их вращения. | ||
== Контакты управления == | |||
Контактов по три штуки на каждый мотор. Контакты ENA и ENB позволяют управлять моторами с помощью ШИМ сигнала. Если ENA и ENB подключить строго к +5 В, то моторы будут всегда вращаться с максимальной возможной скоростью. Именно для этого режима на модуле предусмотрены две перемычки рядом с ENA и ENB. | Контактов по три штуки на каждый мотор. Контакты ENA и ENB позволяют управлять моторами с помощью ШИМ сигнала. Если ENA и ENB подключить строго к +5 В, то моторы будут всегда вращаться с максимальной возможной скоростью. Именно для этого режима на модуле предусмотрены две перемычки рядом с ENA и ENB. | ||
Строка 58: | Строка 58: | ||
Если нам необходимо резко остановить мотор, то выбираем режим блокировки. Для плавной остановки — выбираем «отключение мотора» | Если нам необходимо резко остановить мотор, то выбираем режим блокировки. Для плавной остановки — выбираем «отключение мотора» | ||
== Подключение драйвера L298N к Arduino uno == | |||
[[Файл:Схема подключения драйвера к Arduino uno.png|мини|Схема подключения драйвера к Arduino uno]] | [[Файл:Схема подключения драйвера к Arduino uno.png|мини|Схема подключения драйвера к Arduino uno]] | ||
Для управления скоростью вращения, уберем перемычку с контакта ENA. | Для управления скоростью вращения, уберем перемычку с контакта ENA. | ||
Строка 64: | Строка 64: | ||
Перемычка питания стабилизатора установлена на драйвере. Поэтому arduino можно запитать от вывода +5В. | Перемычка питания стабилизатора установлена на драйвере. Поэтому arduino можно запитать от вывода +5В. | ||
== Программа для драйвера мотора L298N == | |||
Программа, которая вращает мотор в одну сторону 3 секунды с максимальной скоростью, и затем 3 секунды в обратную сторону с более медленной скоростью. | Программа, которая вращает мотор в одну сторону 3 секунды с максимальной скоростью, и затем 3 секунды в обратную сторону с более медленной скоростью. | ||
[[Файл:Внешний вид макета.png|мини| | [[Файл:Внешний вид макета.png|мини|Внешний вид макета]] | ||
<syntaxhighlight lang="c"> | <syntaxhighlight lang="c"> | ||
byte ena = 3; | byte ena = 3; | ||
Строка 94: | Строка 94: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Файл:Внешний вид макета с двумя двигателями.jpg|мини|Внешний вид макета с двумя двигателями]] | [[Файл:Внешний вид макета с двумя двигателями.jpg|мини|Внешний вид макета с двумя двигателями]] | ||
== Программа для управления двумя двигателями == | |||
Перемычки на контактах ENA и ENB убраны - можно менять скорость вращения. | Перемычки на контактах ENA и ENB убраны - можно менять скорость вращения. |
Текущая версия от 14:18, 11 июня 2021
L298N - драйвер коллекторных двигателей на 2 канала, который может также применяться для управления одним шаговым мотором. Представляет собой полный H-мост, главная функция которого — менять полярность на нагрузке. Если в качестве нагрузки будет мотор постоянного тока, то смена полярности приведет к смене направления его вращения.
Драйвер позволяет просто и понятно управлять скоростью вращения моторов в обоих направлениях с помощью ШИМ (раздельно для каждого мотора).
Спецификация модуля L298N:
- напряжение питания двигателей: до 35 В;
- рабочий ток (на каждый канал): 2 А;
- периодический ток (80% — вкл, 20% — выкл): 2,5 А;
- кратковременный ток: 3 А;
- вес: 33 г.
Контакты драйвера
- OUT1 и OUT2 – разъёмы для подключения первого щёточного двигателя или первой обмотки шагового двигателя;
- OUT3 и OUT4 – разъёмы для подключения второго щёточного двигателя или второй обмотки шагового двигателя;
- VSS – вход для питания двигателей (максимальный уровень +35V);
- GND – общий провод (не забываем соединить с аналогичным входом Arduino!!!);
- Vs – вход для питания логики +5V. Через него непосредственно запитывается сама микросхема L298N. Есть ещё второй способ питания, при котором 5V для L298N берётся от встроенного в модуль стабилизатора напряжения. В таком случае на разъём подаётся только питание для двигателей (Vss), контакт Vs остаётся не подключенным, а на плате устанавливается перемычка питания от стабилизатора, который ограничит питающее моторы напряжение до приемлемых 5V.
- IN1, IN2 – контакты управления первым щёточным двигателем или первой обмоткой шагового двигателя.
- IN3, IN4 – контакты управления вторым щёточным двигателем или второй обмоткой шагового двигателя.
- ENA, ENB – контакты для активации/деактивации первого и второго двигателей или соответствующих обмоток ШД. Подача логической единицы на эти контакты разрешает вращение двигателей, а логический ноль – запрещает. Для изменения скорости вращения щёточных моторов на эти контакты подаётся ШИМ-сигнал. Для работы с шаговым двигателям, как правило, на эти контакты ставят перемычки, обеспечивающие постоянную подтяжку к +5V.
Логика микросхемы L298N питается напряжением 5 Вольт. Для этого на модуле предусмотрен стабилизатор напряжения 78M05. На вход этого стабилизатора можно подавать напряжение до 35 В, а на выходе всегда получается 5 В. Рабочий ток у 78M05 небольшой — до 500 мА.
Тройная клемма снизу отвечает за питание модуля. Самый левый контакт — питание моторов. Сюда можно подавать до 35 В. Средний контакт — земля, которая должна быть общей для модуля и контроллера. Правый контакт имеет двоякую функцию. Если на модуле стоит перемычка питания стабилизатора, то на этом контакте будет +5В и к нему можно ничего не подключать, либо питать от него контроллер. Но если перемычку убрать, то к этому контакту нужно будет непременно подключить +5В от контроллера, чтобы питать драйвер.
Две другие винтовые клеммы (OUT1/2 и OUT 3/4) служат для подключения моторов. Надо отметить, что моторы постоянного тока неполярные, но от того на какой контакт мотора подается плюс, а на какой минус, зависит направление их вращения.
Контакты управления
Контактов по три штуки на каждый мотор. Контакты ENA и ENB позволяют управлять моторами с помощью ШИМ сигнала. Если ENA и ENB подключить строго к +5 В, то моторы будут всегда вращаться с максимальной возможной скоростью. Именно для этого режима на модуле предусмотрены две перемычки рядом с ENA и ENB.
С помощью контактов IN1,IN2,IN3,IN4 задаётся режим работы моторов. Таблица режимов для двигателя A имеет вид:
Режим работы | IN1 | IN2 |
---|---|---|
Вращение в одну сторону | 1 | 0 |
Вращение в обратную сторону | 0 | 1 |
Блокировка мотора | 1 | 1 |
Отключение мотора | 0 | 0 |
Если нам необходимо резко остановить мотор, то выбираем режим блокировки. Для плавной остановки — выбираем «отключение мотора»
Подключение драйвера L298N к Arduino uno
Для управления скоростью вращения, уберем перемычку с контакта ENA.
Перемычка питания стабилизатора установлена на драйвере. Поэтому arduino можно запитать от вывода +5В.
Программа для драйвера мотора L298N
Программа, которая вращает мотор в одну сторону 3 секунды с максимальной скоростью, и затем 3 секунды в обратную сторону с более медленной скоростью.
byte ena = 3;
byte in1 = 4;
byte in2 = 5;
void setup() {
pinMode(ena, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
}
void loop() {
// выставляем 100% мощность на моторе А - 255 из 255
analogWrite(ena, 255);
// выставляем режим мотора - вращение по часовой
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
delay(3000); // пауза 3сек
// выставляем мощность на мотора А - 150 из 255
analogWrite(ena, 150);
// режим мотора - вращение против часовой
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
delay(3000); // пауза 3сек
}
Программа для управления двумя двигателями
Перемычки на контактах ENA и ENB убраны - можно менять скорость вращения.
Перемычка питания стабилизатора на драйвере убрана. Драйвер не питает Arduino.
byte ena = 9;
byte in1 = 7;
byte in2 = 6;
byte enb = 3;
byte in3 = 5;
byte in4 = 4;
void setup() {
pinMode(ena, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(enb, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
}
void loop() {
// выставляем 100% мощность на моторе А - 255 из 255
analogWrite(ena, 255);
// выставляем 100% мощность на моторе B - 255 из 255
analogWrite(enb, 255);
// выставляем режим моторов - вращение по часовой
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
delay(3000); // пауза 3сек
// выставляем мощность на мотора А - 150 из 255
analogWrite(ena, 150);
// выставляем мощность на мотора B - 150 из 255
analogWrite(enb, 150);
// режим моторов - вращение против часовой
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
delay(3000); // пауза 3сек
}