Перейти к основному содержимому

Драйвер моторов

Цветной блок в визуальной программе может означать «ехать вперёд» или «установить скорость», но сам блок не питает двигатель. Команда сначала превращается в сигналы микроконтроллера, а силовой ток переключает отдельное устройство — драйвер моторов.

Реальная модель Tinkercad: Arduino Uno управляет двумя моторами через L293D с отдельной ветвью питания

На снимке из опубликованной модели Tinkercad моторы подключены к силовым выходам L293D, а источник питания показан отдельно от USB. Два потенциометра внизу относятся к исходному проекту и для этого урока необязательны.

Коротко

Arduino передаёт драйверу слабые управляющие сигналы. Драйвер берёт энергию от подходящего источника и направляет её в мотор. Мотор подключают к силовым выходам драйвера, а не к контактам микроконтроллера.

Зачем это нужно

Колёса учебного робота должны не только вращаться, но и останавливаться, менять направление и двигаться с разной скоростью. Микроконтроллер умеет принять решение, однако его вывод рассчитан на сигнал, а не на ток тягового двигателя. Особенно большой ток возникает при старте, тяжёлой нагрузке и заблокированном валу.

Если соединить мотор с цифровым выводом напрямую, программа может вести себя непредсказуемо: плата перезапускается, напряжение проседает, мотор дёргается, а вывод рискует выйти из строя. Блоковая среда не отменяет электрические ограничения. Она лишь скрывает синтаксис программы.

Драйвер образует границу между двумя частями робота:

  • логическая часть решает, куда и с какой командой ехать;
  • силовая часть подаёт ток в обмотку мотора;
  • общий провод даёт входам драйвера и контроллеру одну точку отсчёта;
  • защитные возможности зависят от конкретной микросхемы и платы драйвера.

Главная идея

Полезно читать систему слева направо:

блоки программы -> сигналы Arduino -> драйвер -> ток мотора -> движение
источник питания -> драйвер

Блок «направление» выбирает состояние управляющих входов. Блок «скорость» обычно задаёт PWM-команду. Драйвер по этим сигналам переключает силовые ключи. Положительный провод моторного источника не должен попадать на сигнальный вывод Arduino.

Реальный англоязычный интерфейс Tinkercad: блоки сигналов для двух каналов L293D

Номера на двух иллюстрациях не смешиваются

Схема и блоки взяты из двух разных опубликованных проектов Tinkercad. Второй скриншот показывает форму блоков, а не распиновку первой схемы. В своём проекте сначала составьте единую таблицу «контакт Arduino → вход L293D», а затем выберите эти же номера в блоках.

Как Tinkercad управляет L293D

В Tinkercad для L293D не требуется стороннее моторное расширение. Ученик использует обычные синие блоки set pin ... to HIGH/LOW для входов направления. Если вход Enable соединён с PWM-выводом Arduino, числовой блок от 0 до 255 задаёт долю активного времени.

УровеньЧто видит ученикЧто происходит в устройстве
визуальная программаблоки уровней для входов L293DTinkercad сохраняет номера контактов и состояния
созданная программаdigitalWrite() или analogWrite()Tinkercad создаёт код Arduino
логические сигналынесколько слабых линийдрайвер распознаёт направление и PWM
силовая цепьмотор начинает вращатьсяключи драйвера переключают ток отдельного источника

Поэтому копировать цепочку блоков без распиновки недостаточно. В каждом проекте Tinkercad номера в блоках должны точно совпадать с проводами от Arduino к входам L293D.

Контакты и два питания

На драйверах встречаются разные обозначения. Их точный смысл берут из документации выбранного модуля.

ГруппаРаспространённые обозначенияНазначение
логические входыIN1, IN2, DIR, PWM, ENполучают команды контроллера
силовое питаниеVM, VS, VINполучает энергию для мотора
логическое питаниеVCC, VLOGICпитает логику, если требуется отдельно
общий проводGNDсвязывает точки отсчёта контроллера, драйвера и источника
силовые выходыOUT1, OUT2, M+, M-подключаются к двум выводам одного мотора
служебные контактыSTBY, SLEEP, FAULTвключают драйвер или сообщают о неисправности

У некоторых плат логическое и силовое питание уже разведены на модуле, у других их нужно подключать отдельно. Иногда вывод ожидания требуется явно перевести в рабочее состояние. Эти различия нельзя угадывать по цвету платы.

Направление, PWM и остановка

H-мост меняет направление тока через обмотку. Распространённая учебная модель с двумя входами выглядит так:

Первый входВторой входВозможный режим
низкийвысокийвращение в одну сторону
высокийнизкийвращение в другую сторону
низкийнизкийчасто выбег или отключение
высокийвысокийчасто активное торможение

Это не универсальная таблица. У отдельной микросхемы сочетания могут означать другие режимы, а вход ENABLE или STBY меняет результат. Визуальный блок «стоп» тоже может выбрать либо свободный выбег, либо электрическое торможение.

PWM быстро включает и выключает силовой путь. Доля активного времени влияет на передаваемую мотору энергию, но значение блока не является точным числом оборотов. Скорость зависит от напряжения источника, нагрузки, трения, редуктора и самого мотора. При малой команде двигатель может гудеть и не тронуться, потому что момента не хватает для старта.

PWM — не отдельное пониженное напряжение

Источник сохраняет своё напряжение, а драйвер подаёт его импульсами. Механика и обмотка сглаживают действие импульсов. Для точного поддержания скорости нужны измерение, например энкодером, и обратная связь.

Собираем безопасную цепочку блоков

Для первого опыта колесо лучше поднять над столом. Логика может быть такой:

при запуске
остановить мотор
выбрать направление вперёд
установить небольшую скорость
ждать
установить скорость ноль
ждать
выбрать направление назад
установить небольшую скорость
ждать
остановить мотор

Это смысловая запись, а не названия кнопок конкретного редактора. Начальная команда остановки не даёт мотору случайно стартовать во время настройки. Перед реверсом скорость снижают до нуля и дают механике замедлиться. Переход «полный вперёд — полный назад» создаёт большой ток и удар в редукторе.

В Tinkercad состояние каждого входа L293D задаётся отдельным блоком. Перед изменением направления оба канала переводят в остановку, добавляют паузу и только затем задают новую пару уровней.

Выбор драйвера и источника

Для подбора недостаточно фразы «работает от батарейки». Сравнивают:

  1. диапазон силового напряжения драйвера и напряжение источника;
  2. непрерывный ток канала и ток мотора под нагрузкой;
  3. кратковременный ток при старте или блокировке;
  4. совместимость логических уровней с платой;
  5. охлаждение, провода, разъёмы и возможности источника.

Ток холостого хода описывает лёгкий режим. При остановленном валу ток обычно гораздо выше. Не удерживайте мотор заблокированным ради проверки. Точные пределы, допустимое время пика и требования к конденсаторам берут из datasheet двигателя, драйвера и руководства модуля.

Пример: два колеса робота

Дифференциальному роботу нужны два независимых моторных канала. Поворот получается из пары команд:

Левый моторПравый моторПоведение
стоп или медленнеевперёдповорот влево по дуге
назадвперёдразворот на месте
одинаковая командаразная фактическая скоростьробот уходит в сторону

Сначала проверяют каналы по одному. Если одно колесо вращается «назад», питание выключают и либо меняют два моторных провода местами, либо корректируют соответствие направления в проекте. Переставлять проводку во включённой цепи нельзя.

Для движения по датчику цепочка блоков расширяется: чтение входа, сравнение с порогом, выбор направления, установка скоростей. Ошибка в условии относится к программе, а отсутствие силового питания — к схеме. Такое разделение ускоряет поиск причины.

Диагностика от команды к движению

СимптомПервая проверка
оба мотора молчатпитание драйвера, общий GND, STBY/ENABLE
один канал не работаетраспиновка канала, выходы, мотор и соединения
плата перезапускаетсяпросадка питания и путь силового тока
направление не меняетсяреальные уровни входов и таблица режимов
мотор дёргаетсяконтакт проводов, слишком малая команда, ограничение источника
драйвер быстро нагреваетсязаклинивание, перегрузка, короткое замыкание, охлаждение

Проверяйте модель по слоям: номера в блоках, провода от Arduino к L293D, логические уровни, ветвь силового питания и выходы мотора. Меняйте схему только при остановленной симуляции.

Что запомнить про моторный блок

  • Визуальный блок задаёт команду, но не подаёт моторный ток.
  • Коллекторный мотор подключают только к силовым выходам подходящего драйвера.
  • Силовое питание отделяют от сигнальных выводов, а земли объединяют по схеме.
  • Направление, PWM, выбег и торможение зависят от конкретного драйвера.
  • Перед реверсом команду уменьшают и дают механике замедлиться.
  • Первый запуск проводят с поднятыми колёсами и небольшой командой.

Практика

Задание 1. Карта контактов

Добавьте в Tinkercad Arduino Uno, L293D, два мотора и источник. По названиям контактов микросхемы составьте таблицу: логические входы, Enable, логическое и силовое питание, GND и выходы моторов. Симуляцию пока не запускайте.

Задание 2. Мягкая последовательность

Соберите цепочку блоков: безопасная остановка, движение вперёд на небольшой команде, пауза, остановка, пауза, движение назад и окончательная остановка. Значения и длительности выберите для своего стенда без готового ответа.

Задание 3. Два канала

Составьте четыре пары команд для левого и правого моторов: прямо, поворот по дуге, разворот на месте и стоп. До запуска предскажите направление каждого колеса.

Задание 4. План поиска ошибки

Робот принимает блоки без сообщения об ошибке, но мотор не вращается. Запишите порядок из шести проверок — от настройки проекта до силовой цепи — так, чтобы не менять несколько причин одновременно.

Проверьте себя

  1. Почему мотор нельзя подключать прямо к цифровому выводу Arduino?
  2. Чем логическая команда отличается от силового тока?
  3. Зачем контроллеру и драйверу общий GND?
  4. Что обычно задаёт PWM-команда и почему она не равна точной скорости?
  5. Почему таблицу режимов нельзя переносить с одного драйвера на другой?
  6. Чем свободный выбег отличается от активного торможения?
  7. Зачем снижать команду перед сменой направления?
  8. Какие параметры нужно сравнить при выборе драйвера и источника?
Ориентиры для самопроверки

Сначала ответьте без подсказки. Ответ можно считать полным, если вы:

  • формулируете основную мысль своими словами;
  • называете важные условия, ограничения или меры безопасности;
  • для схемы, кода или расчёта показываете ход решения и ожидаемый результат.

Если один из пунктов объяснить не получается, найдите соответствующую главу статьи, перечитайте её и повторите ответ.

Словарь статьи

  • Драйвер мотора — силовой узел, который переключает ток двигателя по командам контроллера.
  • H-мост — схема ключей, позволяющая менять направление тока через мотор.
  • PWM (ШИМ) — импульсная команда, в которой меняется доля активного времени.
  • Силовое питание — источник энергии для двигателя и ключей драйвера.
  • Логический вход — контакт, принимающий слабый управляющий уровень.
  • Общий провод — общая точка отсчёта напряжений, обычно GND.
  • Выбег — замедление мотора без активного электрического торможения.
  • Ток блокировки — ток при приложенном напряжении и неподвижном роторе.

Связанные темы

Источники