Для электронщиков и радиолюбителей

Arduino и сервомотор MG996R: как управлять мощным сервоприводом с Arduino

Arduino и сервомотор MG996R: как управлять мощным сервоприводом с Arduino

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


Краткое описание

Сервомотор MG996R часто используется в Arduino-проектах. В отличие от другого популярного сервопривода — SG90, — MG996R способен вращать значительно более тяжёлые нагрузки. Именно поэтому его часто можно увидеть в 3D-печатных роботизированных руках и других механических конструкциях.


Технические характеристики MG996R

ПараметрЗначение
Габаритыпримерно 40.7 × 19.7 × 42.9 мм
Весоколо 55 г
Рабочее напряжение4.8 В – 6.6 В
Рабочий тококоло 600 – 1500 мА
Крутящий момент (stall torque)9.4 кг·см (при 4.8 В); 11 кг·см (при 6 В)
Скорость вращения0.19 с/60° (при 4.8 В); 0.15 с/60° (при 6 В)
Угол поворота0–180°

⚠️ Важно: характеристики могут немного отличаться у разных производителей.


Пример применения

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


Схема подключения

Сервомотор MG996R имеет три провода:

  • Коричневый (GND) — земля
  • Красный (+5V) — питание
  • Оранжевый (PWM) — управляющий сигнал

MG996R нельзя напрямую питать от Arduino, поскольку мотор потребляет слишком большой ток, что может повредить плату. Поэтому для питания используется внешний источник — например, USB-повербанк на 5 В.

Для подключения применён USB-терминальный адаптер.

  • Отрицательный контакт («-») адаптера соединён с коричневым проводом сервопривода.
  • Положительный («+») контакт — с красным проводом.
  • Чтобы обеспечить общий уровень сигнала, минус терминала также соединён с контактом GND на Arduino.
  • Оранжевый провод (сигнал PWM) подключается к пину №3 Arduino.
Цвет проводаНазначениеПодключение
КоричневыйGNDМинус повербанка и GND Arduino
Красный+5VПлюс повербанка
ОранжевыйСигнал PWMПин №3 Arduino

Пример кода

Для управления MG996R используется стандартная библиотека Servo.h.
В функции setup() задаётся управляющий пин, а в loop() — мотор поочерёдно поворачивается на несколько угловых позиций.

#include <Servo.h>

Servo servo; // объект для управления сервоприводом MG996R

void setup() {
  servo.attach(3); // подключение сигнального провода к цифровому пину 3
}

void loop() {
  servo.write(0);    // поворот на угол 0°
  delay(1000);       // пауза 1 секунда
  servo.write(45);   // поворот на 45°
  delay(1000);
  servo.write(90);   // поворот на 90°
  delay(1000);
  servo.write(135);  // поворот на 135°
  delay(1000);
  servo.write(180);  // поворот на 180°
  delay(1000);
}

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