Что такое сервопривод? Управление сервоприводом с Arduino
Что такое сервопривод, как он работает и как подключить его к Arduino? Сравнение SG90, MG90S и MG996R, библиотека Servo, питание сервоприводов и частые ошибки.
Сервопривод — это небольшой мотор, вал которого поворачивается на заданный угол и остаётся в этом положении. Обычный мотор постоянного тока крутится без остановки, а сервопривод, если попросить 90 градусов, встаёт ровно на 90 градусов и удерживает там нагрузку. Сервоприводы двигают руки роботов, поворотные камеры (pan-tilt), автоматические дверные замки и рули моделей самолётов.



Как работает сервопривод?
Внутри сервопривода четыре части: маленький мотор постоянного тока, редуктор, который снижает скорость и увеличивает крутящий момент, потенциометр, измеряющий положение вала, и схема управления, которая всем этим руководит. Схема управления постоянно сравнивает заданный угол с углом, который показывает потенциометр, и крутит мотор, пока разница не станет нулевой. Благодаря такой замкнутой петле сервопривод держит положение даже под нагрузкой.
Угол передаётся сервоприводу PWM-сигналом: импульс приходит каждые 20 мс (50 Hz), а ширина импульса задаёт угол. Примерно 1 мс означает 0°, 1,5 мс — 90°, 2 мс — 180°. Большинство сервоприводов принимают диапазон 0,5–2,5 мс; точные значения немного отличаются у разных моделей.
Провода сервопривода и подключение
| Цвет провода | Назначение | Куда подключается на Arduino |
|---|---|---|
| Коричневый / чёрный | GND (земля) | GND |
| Красный | Питание (+4,8–6 V) | 5V или внешний источник 5–6 V |
| Оранжевый / жёлтый / белый | Сигнал (PWM) | Любой цифровой пин (например, 9) |
Какой сервопривод выбрать?

| Модель | Момент (примерно) | Шестерни | Для чего подходит |
|---|---|---|---|
| SG90 | 1,8 кг·см | Пластик | Лёгкие задачи, первые эксперименты, pan-tilt |
| MG90S | 2,2 кг·см | Металл | Тот же размер, что у SG90, но прочнее |
| MG996R | 9–11 кг·см | Металл | Руки роботов, тяжёлые крышки и механизмы |
| FS90R | 1,5 кг·см | Пластик | Постоянное вращение: небольшие колёсные роботы |
Управление сервоприводом с Arduino: угол задаётся потенциометром


- Подключи коричневый провод сервопривода к GND, а красный к 5V (для одного SG90).
- Оранжевый сигнальный провод подключи к цифровому пину 9.
- Крайние ножки потенциометра подключи к 5V и GND, а среднюю к A0.
- Загрузи код ниже: при вращении потенциометра сервопривод должен поворачиваться в пределах 0–180°.
1#include <Servo.h>
2
3Servo servo; // servo nesnesi / servo object
4const int POT_PIN = A0; // potansiyometre / potentiometer
5
6void setup() {
7 servo.attach(9); // sinyal 9. pinde / signal on pin 9
8}
9
10void loop() {
11 int value = analogRead(POT_PIN); // 0–1023 oku / read 0–1023
12 int angle = map(value, 0, 1023, 0, 180); // açıya çevir / convert to angle
13 servo.write(angle); // servoyu döndür / move the servo
14 delay(15); // servo yetişsin / let the servo settle
15}servo.write(angle) принимает угол от 0 до 180. Для более точного управления используй servo.writeMicroseconds(1500), чтобы задать ширину импульса прямо в микросекундах. Какие пины твоей платы поддерживают PWM и какие цифровые, можно посмотреть в утилите распиновки.
Сервоприводы с ESP32 и Raspberry Pi Pico
- ESP32: стандартная библиотека Servo не работает; установи в Arduino IDE библиотеку ESP32Servo. Она используется так же. Для большинства сервоприводов сигнала 3,3 V достаточно.
- Raspberry Pi Pico (MicroPython): настрой PWM на 50 Hz и задай ширину импульса через duty_ns(): 1 000 000 ns ≈ 0°, 1 500 000 ns ≈ 90°, 2 000 000 ns ≈ 180°.
- На обеих платах не питай сервопривод от пина 3,3 V платы; используй линию 5 V или внешний источник.
Самые частые ошибки с сервоприводами
- Дрожание и случайные движения: чаще всего из-за нехватки питания. Используй внешний источник и поставь на питание сервопривода конденсатор 470–1000 µF.
- Забытая общая GND: сервопривод с внешним питанием не понимает сигнал, если земли не соединены.
- Сервопривод упирается в предел: упёршись в механический ограничитель, сервопривод жужжит и греется. При необходимости ограничь диапазон углом 10–170°.
- Ожидание PWM на пинах 9 и 10: на Uno библиотека Servo использует Timer1, поэтому, пока подключён сервопривод, analogWrite на этих пинах не работает.
- Ожидание угла от сервопривода постоянного вращения: модели вроде FS90R не знают своего положения, у них управляются только скорость и направление.
Чтобы увидеть, что можно сделать с сервоприводами, загляни в проекты с роботами и моторами в BlueGrays. Если ты только начинаешь с Arduino, сначала прочитай Что такое Arduino?, а чтобы собрать схему на плате, — Что такое макетная плата?.
Частые вопросы
На сколько градусов поворачивается сервопривод?
Стандартные сервоприводы поворачиваются примерно на 180°; некоторые модели на 90° или 270°. Сервоприводы постоянного вращения крутятся без ограничений, но не держат угол.
Можно ли питать сервопривод от пина 5V платы Arduino?
Один SG90 с лёгкой нагрузкой для пробы можно. Для нескольких сервоприводов, мощных моделей вроде MG996R или проектов под нагрузкой используй внешний источник 5–6 V и соедини земли.
Сколькими сервоприводами может управлять одна Arduino?
Библиотека Servo поддерживает до 12 сервоприводов на Arduino Uno и до 48 на Mega. Для большого количества сервоприводов практичнее 16-канальные I2C-драйверы вроде PCA9685.
Почему сервопривод дрожит?
Самые частые причины — нехватка питания, отсутствие общей земли и длинные сигнальные провода. Используй мощный источник, поставь конденсатор на питание сервопривода и делай провода короткими.
Чем сервопривод отличается от шагового двигателя?
Сервопривод благодаря обратной связи встаёт на заданный угол и остаётся там, обычно в пределах 180°. Шаговый двигатель поворачивается шаг за шагом без ограничений; для точного позиционирования ему нужна плата-драйвер, а своё положение он сам не измеряет.
Что собрать после прочтения
Все проекты
Работа с сервоприводом
Рычаг маленького сервопривода по очереди поворачивается в три положения: до упора в начало, ровно на середину и до упора в конец, задерживаясь на каждой остановке на две секунды. Arduino сообщает мото

Управление сервоприводом потенциометром
Когда ты поворачиваешь ручку потенциометра, рычаг сервопривода поворачивается вместе с ней: одно крайнее положение ручки — ноль градусов, другое — пол-оборота. Arduino всё время читает положение ручки

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

Сервопривод на 360 градусов из шагового мотора
Научи обычный шаговый мотор вставать на любой нужный угол по всему кругу. Arduino вычисляет, сколько шагов нужно для каждого угла; мотор по очереди поворачивается на 0, 90, 45, 180, 135 и 360 градусов

Сервопривод на ESP32 (управление потенциометром)
В этом проекте сервопривод SG90 управляется потенциометром. Угол сервопривода задаётся сопоставлением аналогового значения потенциометра с диапазоном 0–180 градусов. Библиотека ESP32Servo формирует сигналы сервопривода на подходящих выходных пинах GPIO у ESP32; этот проект использует GPIO 18. Это базовый способ управления для роборук, подвесов камер и механизмов автоматических дверей.

Дверной замок с RFID на ESP32 (RC522 + сервопривод + OLED + зуммер + светодиод)
Собираем умный дверной замок на ESP32, модуле RFID RC522, сервоприводе SG90, OLED-дисплее SSD1306, активном зуммере и 2 светодиодах. При поднесении карты её UID сравнивается со списком разрешённых карт в коде: если доступ разрешён, сервопривод поворачивается и открывает дверь (зелёный светодиод + 2 коротких сигнала), а через 5 секунд дверь снова запирается сама. При чужой карте загорается красный светодиод, звучат 3 быстрых сигнала, а прочитанный UID показывается на экране.

Хореография сервоприводов по кругу — анимации на 32 сервоприводах
Визуальный анимационный проект на Arduino Mega с 32 сервоприводами, расставленными по кругу. Сервоприводы собраны в один массив и подключены к пинам 22–53 Mega; они показывают четыре движения: хаотичное дрожание на случайных углах, синхронный взмах всех сразу, плавную волну по кругу и, наконец, стрелку компаса, качающуюся влево и вправо. Эффект бегущей волны создаётся поворотом каждого сервопривода в зависимости от его расстояния до активного.
Другие статьи
Приложение BlueGrays
Собери эту схему шаг за шагом в телефоне
Схема подключения, код и список деталей на одном экране. 200+ проектов на Arduino, ESP32 и Pico готовы к сборке.
Наведи камеру телефона
Наведи камеру на код — откроется магазин приложений на телефоне.
или открыть магазин

