Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Занятие 3 Драйверы двигателей, управление моторами роботов.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
209.92 Кб
Скачать

Курс «Основы робототехники. Базовый уровень». Занятие 3 Подключение моторов робота через драйвер двигателя на микросхеме l298n

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

Моторы подключаются к двум клеммникам справа и слева модуля

На контакт +12 В (+UП) подключается напряжение питания моторов (в роботах туда подключены аккумуляторы)

Контакт Gnd подключается к Gnd источника питания и Gnd Arduino

Модуль имеет четыре управляющих входа In1, In2, In3, In4. In1, In2 управляет одним мотором, In3, In4 – другим мотором (ближайшим к ним)

При подаче сигнала HIGH (логической 1) на вход In1 мотор М1 движется в одном направлении, при подаче HIGH на In2 мотор вращается в другом направлении:

In1

In2

Результат

0

0

Мотор 1 не вращается

1

0

Мотор 1 вращается в одну сторону

0

1

Мотор 1 вращается в другую сторону

1

1

Мотор 1 в режиме торможения, лучше избегать такого состояния

Аналогично управляется мотор M2 через контакты In3 и In4

Программы управления драйвером

Для облегчения написания и понимания программ управления моторами рекомендуется использовать следующие названия переменных:

Для номеров пинов

LF

Left Forward – при подаче высокого уровня левое колесо крутится вперед

LB

Left Backward – при подаче высокого уровня левое колесо крутится назад

RF

Right Forward – при подаче высокого уровня правое колесо крутится вперед

RB

Right Backward – при подаче высокого уровня правое колесо крутится назад

Для скоростей

speed_left

Скорость, подаваемая на левый мотор командой analogWrite

speed_right

Скорость, подаваемая на правый мотор командой analogWrite

Таким образом, можно составить следующую таблицу управляющих сигналов для движений робота:

LF

LB

RF

RB

Результат

0

0

0

0

Робот стоит на месте

1

0

1

0

Робот едет вперед

0

1

0

1

Робот едет назад

1

0

0

1

Робот разворачивается на месте влево

0

1

0

1

Робот разворачивается на месте вправо

Примечание 1: данные сигналы можно подавать командами digitalWrite (1 – HIGH, 0 – LOW) или, если нужно управлять скоростью, analogWrite (1 – заданная скорость, 0 – скорость 0)

Примечание 2: для унификации программ и схем рекомендуется использовать пины In1 и In3 для движения моторов вперед, а In2 и In4 для движения моторов назад. Если при подаче сигналов на мотор происходит наоборот – поменяйте местами провода в клеммнике, к которому подключен мотор