Компоненты7 мин чтения25 сентября 2026 г.

Мотор-редукторы TT: что означают цифры

Передаточное число, обороты, момент, ток и напряжение мотор-редуктора TT на реальных цифрах: скорость робота, ток при блокировке, почему два мотора разные и почему при малом ШИМ они не трогаются.

Фото: Lukas Ruge · CC0

Мотор-редуктор TT — это маленький, обычно жёлтый мотор постоянного тока с пластиковым редуктором, на котором ездят многие робот-машины для начинающих. В робот-машине CoreEngine их два, с колёсами 65 мм. Его цифры выглядят простыми, но каждая из них что-то говорит о вашем роботе.

Передаточное число 1:48: скорость в обмен на силу

Внутри корпуса — маленький мотор, который вращается очень быстро, и редуктор, который его замедляет. Передаточное число 1:48 означает, что мотор делает 48 оборотов на один оборот выходного вала. Чтобы колесо делало 200 об/мин, мотор внутри вращается со скоростью около 9600 об/мин.

Редуктор меняет скорость на крутящий момент. Без трения замедление в 48 раз дало бы в 48 раз больший момент. Пластиковые шестерни теряют часть этого выигрыша, но колесо всё равно получает гораздо большее усилие, чем мог бы дать мотор без редуктора. Моторы TT продаются и с другими передаточными числами. Чем больше передаточное число, тем медленнее и сильнее колесо.

От оборотов к скорости робота

Без нагрузки при 6 В мотор TT делает около 200–250 об/мин (оборотов в минуту). Скорость робота определяется колесом: скорость = обороты в минуту × π × диаметр колеса. Вот пример расчёта для колеса 65 мм при скорости около 200 об/мин:

Шаг Расчёт Результат
Путь за один оборот колеса π × 65 мм около 204 мм
Оборотов колеса в секунду 200 / 60 около 3,33
Скорость 3,33 × 0,204 м около 0,68 м/с

Это наибольшая скорость при 6 В, когда колесо крутится в воздухе. Настоящий робот ездит медленнее. В робот-машине CoreEngine моторы получают через L298N около 4,2 В, а скорость без нагрузки примерно пропорциональна напряжению. Так что рассчитывайте примерно на две трети от неё, а с весом робота на колёсах — ещё немного меньше.

Крутящий момент: сила вращения

Крутящий момент показывает, с какой силой вал может вращаться. На колесе он превращается в силу, которой колесо отталкивается от пола: сила тяги = момент / радиус колеса. Поэтому с тем же мотором колесо вдвое большего диаметра едет вдвое быстрее, но толкает вдвое слабее.

Момент и ток связаны. Чем сильнее мотору приходится толкать — например, на подъёме, на ковре или с более тяжёлым роботом, — тем больший ток он берёт. Наибольший момент мотор развивает, когда застопорен, и ток при этом тоже самый большой. Магазины указывают для моторов TT очень разный момент, поэтому не полагайтесь на одну цифру. Проверяйте робота на том полу, где он будет ездить.

Ток: без нагрузки, в езде, при блокировке

Один мотор TT Ток
Вращается свободно, без нагрузки около 0,1–0,15 А
Везёт робота около 0,3 А
Застопорен: не вращается, напряжение полное примерно до 1 А

Важнее всего ток при блокировке вала:

  • Каждый пуск — это короткая блокировка. На мгновение, пока мотор ещё не начал вращаться, он берёт такой же ток, как при блокировке. Два мотора, которые трогаются одновременно, могут потребовать примерно до 2 А.
  • Драйвер должен его выдерживать. L298N рассчитан на ток до 2 А на канал, TB6612FNG — на 1,2 А. У L9110S около 0,8 А на канал — это меньше тока при блокировке мотора TT. Подробнее — в статье L298N, L9110S или TB6612: какой драйвер моторов выбрать?
  • Батарея под ним проседает. Два застопоренных мотора тянут напряжение батареи вниз, и Arduino может перезагрузиться. Подробнее — в статье Почему робот перезагружается.

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

Диапазон напряжений

Мотор TT рассчитан на 3–6 В и может работать примерно до 8 В. Чем выше напряжение, тем больше скорость и ток. Выше 6 В мотор сильнее греется и быстрее изнашивается. В робот-машине CoreEngine до моторов доходит около 4,2 В — это с запасом в пределах диапазона. С двумя литий-ионными аккумуляторами (около 7,4 В) моторы после потерь в L298N получали бы около 5,6 В.

Почему два «одинаковых» мотора разные

Два мотора из одной коробки никогда не совпадают полностью. У них немного различаются магниты, обмотки, щётки и трение в шестернях. Мотор может даже крутиться в одну сторону чуть быстрее, чем в другую. Робот добавляет свои различия: колесо, насаженное с небольшим перекосом, опора, которая уводит в сторону, больший вес с одной стороны. В итоге при одинаковом значении скорости на обоих моторах робот едет по дуге.

Чтобы это компенсировать:

  1. Пустите робота прямо вперёд на несколько секунд по гладкому полу. Если его уводит влево, значит, правое колесо быстрее.
  2. Немного замедлите в коде более быстрый мотор и проверьте снова. Например:
const int RIGHT_PERCENT = 95;   // this robot curves left: its right motor is a little faster

void driveStraight(int speed) {
  drive(speed, speed * RIGHT_PERCENT / 100);
}
  1. Вызывайте driveStraight(SPEED) там, где в проекте Первый заезд вызывается drive(SPEED, SPEED). Проверяйте значение заново, когда батарейки садятся или меняется скорость: на разных скоростях разница бывает разной.

Для по-настоящему прямой езды роботы используют энкодеры колёс — датчики, которые считают обороты колёс, чтобы код мог выравнивать эти показания. Это та же идея обратной связи, что и у П-регулятора в проекте Робот, который держит дистанцию.

Электрические помехи и маленький конденсатор

Внутри мотора маленькие щётки скользят по вращающемуся контакту — коллектору. Каждый раз, когда они переходят с одного контакта на следующий, ток переключается и возникают крошечные искры. Эти искры посылают электрические помехи по проводам мотора. Помехи могут мешать Arduino и датчикам: появляются странные показания или даже перезагрузки.

Обычное средство — маленький керамический конденсатор примерно на 0,1 мкФ (100 нФ, часто с маркировкой «104»), припаянный прямо между двумя выводами мотора. У него нет полярности, так что впаивать его можно любой стороной. Кроме того, делайте провода моторов короткими, скручивайте между собой два провода каждого мотора и держите их подальше от проводов датчиков.

Мёртвая зона: при малом ШИМ мотор не трогается

ШИМ: analogWrite 64, 128 и 191 включают пин на 25%, 50% и 75% времени, и мотор крутится быстрее.

analogWrite(ENA, value) задаёт долю времени, когда мотор получает питание: от 0 до 255. При малом значении среднее напряжение слишком низкое, чтобы преодолеть трение в редукторе и щётках. Мотор гудит, но не вращается. Этот диапазон малых значений и есть мёртвая зона. А сам гул — это частота широтно-импульсной модуляции (ШИМ): около 980 Гц на D5 и D6.

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

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

const int MIN_SPEED = 90;      // below this the motors only hum and do not turn

// in loop(), after the controller has computed the speed:
if (abs(speed) < MIN_SPEED) speed = (speed > 0) ? MIN_SPEED : -MIN_SPEED;

Чтобы найти это значение для своего робота, медленно повышайте скорость маленькими шагами и выводите каждое значение в монитор порта (Serial Monitor). Отметьте, при каком значении колёса начинают вращаться. Скетч MotorTest из урока Моторы и драйвер L298N поднимает скорость от 0 до 255 шагами по 5, так что с него удобно начать. Сами моторы есть в Маркете.