Главная → Моторы и приводы

Сервоприводы SG90 и MG996R: чем отличаются и когда не хватает тока

20 сентября 2026 · Моторы и приводы

Сервопривод — это мотор с редуктором, датчиком положения и платой, которая держит вал под заданным углом. В самоделках на Arduino и ESP32 чаще всего встречаются две модели: крошечный SG90 и «стандартный» MG996R. Один весит 9 граммов, другой — 55, и разница не только в размерах: у них разный момент, разные шестерни и совсем разный аппетит по току. Разбираем оба по паспорту производителя — где их реально хватает, а где нет.

Как сервопривод понимает, куда крутить

Внутри обычного серво: моторчик, редуктор, потенциометр на выходном валу и плата. Контроллер шлёт импульс каждые 20 мс (частота 50 Гц), и ширина этого импульса — команда. Примерно 1 мс — одно крайнее положение, 1,5 мс — центр, 2 мс — другое. По даташиту SG90 рабочий диапазон пульсов — 500–2400 мкс, то есть крайние углы конкретного экземпляра могут не совпадать с теоретическими 0° и 180°.

Плата сравнивает задание с реальным углом и крутит мотор, пока они не совпадут. Отсюда главное свойство серво: он не «едет», а «стоит» в заданном угле и сопротивляется попыткам его сдвинуть — и в этот момент потребляет максимальный ток. Обе модели цифровые, мёртвая зона по паспорту 1 мкс.

Характеристики по паспорту Tower Pro

Параметр SG90 MG996R
Момент 1,8 кг·см при 4,8 В 9,4 кг·см при 4,8 В; 11 кг·см при 6 В
Скорость 0,1 с/60° при 4,8 В 0,19 с/60° при 4,8 В; 0,15 с/60° при 6 В
Питание 4,8 В (допустимо до 6 В) 4,8–6,6 В
Ток 0,5–2 А под нагрузкой (оценка производителя) покой 10 мА; без нагрузки 170 мА; до 2,5 А при стопоре (6 В)
Шестерни POM (пластик) металл; алюминий 6061-T6 в версии на 180°
Вес 9 г 55 г
Габариты 23×12,2×29 мм 40,7×19,7×42,9 мм
Мёртвая зона 1 мкс 1 мкс
Длина провода 25 см 32 см
Температура 0…55 °C 0…55 °C

Числа — со страниц производителя towerpro.com.tw (SG90 digital и MG996R); ток под нагрузкой и стопорный ток MG996R — из даташита дистрибьютора.

Чем они отличаются на практике

Момент. 1,8 кг·см против 9,4 кг·см при 4,8 В — разница в пять раз. SG90 уверенно двигает лёгкую заслонку, флажок или мини-манипулятор; MG996R тащит рычаг с грузом, поворачивает камеру, рулит моделью 1/10 масштаба.

Шестерни. У SG90 редуктор из POM-пластика: заклинил механизм — шестерни срезает за секунду. У MG996R редуктор металлический, в версии на 180° производитель ставит алюминий 6061-T6: переживает удар, но тяжелее и дороже.

Скорость. Парадокс: маленький SG90 формально быстрее, 0,1 с/60° против 0,19 с/60° у MG996R при 4,8 В. Но скорость сильно зависит от нагрузки: с реальным плечом лёгкий SG90 часто проигрывает тяжёлому собрату.

Когда не хватает тока

Здесь серво-проекты и умирают. Ток покоя MG996R — 10 мА, без нагрузки — 170 мА, а при стопоре (вал держит нагрузку или упёрся в край) — до 2,5 А при 6 В. Производитель SG90 на своём сайте оценивает рабочий ток в 0,5–2 А — уже больше, чем отдаёт USB-порт (0,5 А).

Пин 5V Arduino Uno питается через стабилизатор и рассчитан на доли ампера. Один MG996R под нагрузкой просаживает питание — контроллер перезагружается, серво «заикается». Это не брак, это физика. Кормим серво правильно:

Подключение к Arduino Uno

Провода по даташиту SG90: красный — плюс питания, коричневый — минус, оранжевый — сигнал. Схема: оранжевый на D9, красный и коричневый — на питание внешнего блока, минус блока — на GND Arduino.

#include <Servo.h>

Servo myServo;                          // объект серво

void setup() {
  myServo.attach(9, 500, 2400);         // D9, пульсы 500-2400 мкс по даташиту
}

void loop() {
  for (int a = 0; a <= 180; a++) {      // плавно от 0 до 180
    myServo.write(a);
    delay(15);                          // пауза, чтобы серво успевало
  }
  for (int a = 180; a >= 0; a--) {      // и обратно
    myServo.write(a);
    delay(15);
  }
}

Подключение к ESP32

У ESP32 свой ШИМ, ставим библиотеку ESP32Servo из менеджера библиотек Arduino IDE. Сигнал — на GPIO 13, питание серво по-прежнему отдельное.

#include <ESP32Servo.h>

Servo myServo;

void setup() {
  ESP32PWM::allocateTimer(0);           // таймеры под ШИМ серво
  ESP32PWM::allocateTimer(1);
  myServo.attach(13, 500, 2400);        // GPIO 13, пульсы 500-2400 мкс
}

void loop() {
  myServo.write(0);   delay(1000);      // край
  myServo.write(90);  delay(1000);      // центр
  myServo.write(180); delay(1000);      // другой край
}

Про уровни: выход ESP32 даёт 3,3 В против 5 В у Uno. Обе модели читают такой импульс нормально, но если экземпляр капризничает на краях — подтяни сигнальный провод резистором 10 кОм к 5 В.

Частые ошибки

  1. Кормить MG996R от пина 5V Arduino. Стопорный ток 2,5 А — стабилизатор уходит в защиту, контроллер перезагружается. Только отдельное питание.
  2. Нет общего GND. Блок серво отдельный, а земля к контроллеру не пришла — импульс без опоры, серво дёргается или молчит.
  3. Просить 180° у экземпляра с ограничителем. Диапазон пульсов 500–2400 мкс по даташиту шире механического хода многих клонов: на краях серво трещит и греется. Найди края своего экземпляра и работай внутри них.
  4. Держать под нагрузкой постоянно. Серво, удерживающее рычаг, греется и жрёт ток, даже когда стоит. Для «держать» лучше механическая фиксация или реле, для редких перемещений — серво.
  5. Перепутать SG90 с MG90S. Внешне близнецы, но у MG90S металлические шестерни и выше момент. Проверяй маркировку, прежде чем вешать нагрузку.

Когда нужна не позиция, а непрерывное вращение — это к шаговым двигателям: у нас есть разбор связки 28BYJ-48 с драйвером ULN2003. А включать силовую нагрузку по команде контроллера удобнее через реле-модуль — в проектах серво и реле часто работают в паре.

Информация собрана из открытых источников и паспортов производителей и не является истиной в последней инстанции. Характеристики, распиновку и совместимость проверяйте по документации конкретной партии модуля перед покупкой и подключением.

Читайте дальше

Связь

Bluetooth-модули HC-05 и HC-06: обзор и подключение

Две платы на одном чипе Когда надо добавить в самоделку беспроводной «провод» — чтобы телефон или вторая Arduino видели плату как обычный…

Читать обзор →
Датчики

Датчик DHT22 (AM2302): характеристики, подключение к Arduino и частые ошибки

DHT22 — самый простой способ научить устройство измерять температуру и влажность. Один датчик, один сигнальный провод, готовая библиотека — и через десять…

Читать обзор →
Готовые проекты

Автоматическая дверца курятника по датчику освещённости: проект на ESP32 и сервоприводе

Зачем курятнику дверца на автомате Куры встают с рассветом и сами выходят во двор, вечером возвращаются домой. Хозяину остаётся открывать дверцу утром…

Читать обзор →