- •Курс «Основы робототехники. Базовый уровень». Занятие 3 Подключение моторов робота через драйвер двигателя на микросхеме l298n
- •Программы управления драйвером
- •Практическое занятие 1. Подключение драйвера и представление в программе
- •Практическое занятие 2. Управление одним колесом робота
- •Практическое занятие 2. Робот едет вперед
- •Практическое занятие 3. Робот едет вперед и назад
- •Практическое занятие 5. Развороты робота
- •Практическое занятие 7. Задание скорости робота
- •Практическое занятие 8. Выравнивание скоростей моторов для движения по прямой
- •Практическое занятие 9. Движение по кругу
- •Практическое занятие 10. Движение по спирали
- •Практическое занятие 11. Движение по квадрату или другому многоугольнику
- •Практическое занятие 12. Произвольные движения
Курс «Основы робототехники. Базовый уровень». Занятие 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 для движения моторов назад. Если при подаче сигналов на мотор происходит наоборот – поменяйте местами провода в клеммнике, к которому подключен мотор
