PWM: сервы и классические ESC
Протоколы в БАС: полный курс · Урок 11 из 18 · Модуль 4. Моторы и сервы: PWM и DShot
Команда длиной в импульс: как устроен серво-PWM, чем питаются сервоприводы и как калибруются классические регуляторы оборотов со входом PWM.
Сервы питаются от BEC, а не от логики контроллера: три провода — сигнал, плюс 5–6 В, минус. Просадка напряжения BEC под нагрузкой — типичная причина рывков сервоприводов.
Содержание
1. Цели урока
После этого урока вы сможете:
- объяснять кодирование команды шириной импульса 1000–2000 мкс
- подключать сервопривод: сигнал, питание, общий провод
- выполнять калибровку диапазона ESC со входом PWM
- выбирать частоту обновления для аналоговых и цифровых серв
2. Серво-PWM: как устроен сигнал
Серво-PWM (Pulse Width Modulation — широтно-импульсная модуляция) — самый простой способ передать команду одним проводом. Информация закодирована не напряжением, а длиной импульса: каждые 20 мс (частота 50 Гц) контроллер выдаёт импульс, и его ширина означает команду.
Серво-PWM: период 20 мс (50 Гц), команда определяется шириной импульса 1000–2000 мкс. Импульс — 3,3 В, пауза — 0 В.

| Ширина импульса | Значение команды |
|---|---|
| 1000 мкс | Минимум: стоп для ESC, крайнее положение сервы (−100 %) |
| 1500 мкс | Нейтраль / центр хода (0 %) |
| 2000 мкс | Максимум: полный газ для ESC, второе крайнее положение сервы (+100 %) |
| 988–2012 мкс | Рабочий диапазон Betaflight (немного расширен для запаса) |
Промежуточные значения пропорциональны: 1250 мкс — четверть хода от минимума, 1750 мкс — три четверти. Где используется серво-PWM:
- Сервоприводы самолётов, VTOL, гексакоптеров и подвесов — основной способ управления рулями, закрылками и поворотными механизмами.
- ESC со входом PWM — классические регуляторы: 1000 мкс = стоп, 2000 мкс = полный газ.
- Тестеры сервоприводов — ручной генератор импульсов для проверки сервы без полётного контроллера.
3. Подключение сервопривода
Подключение сервопривода: сигнал от полётного контроллера, питание — от BEC, общий провод GND соединяет все устройства.
У сервопривода три провода, и их роли важно не перепутать:
| Провод | Назначение | Куда подключается |
|---|---|---|
| Коричневый / чёрный | GND (минус) | Общий провод — одновременно с BEC и полётным контроллером |
| Красный | Питание +5…6 В | Выход BEC, не логика контроллера 3,3 В |
| Оранжевый / жёлтый / белый | Сигнал PWM 50 Гц | Выход Servo полётного контроллера |
Питание — отдельная история. Серва под нагрузкой потребляет заметный ток, и если питать её от логического стабилизатора платы — напряжение просядет, контроллер уйдёт в перезагрузку. Ориентировочные токи:
| Тип сервы | Ток под нагрузкой |
|---|---|
| Микро-серва (2–5 г) | 0,2–0,5 А |
| Стандартная (9–25 г) | 0,5–1,5 А |
| Большая (40–100 г) | 1–4 А и выше |
Правило подбора BEC: суммарный ток всех серв под нагрузкой + запас 30 %. Если сервы «дёргаются» при резких командах — первым делом замерь напряжение BEC мультиметром под нагрузкой.
↑ К оглавлению4. Классические ESC со входом PWM
Регулятор со входом PWM измеряет ширину входящего импульса и пересчитывает её в газ. У каждого ESC свой допуск на «минимум» и «максимум»: из-за разброса генераторов и прошивок один регулятор считает 1000 мкс стопом, другой — нет. Поэтому диапазон калибруется — процедура показывает ESC, какие импульсы означают «стоп» и «полный газ».
Процедура калибровки (классическая):
- Сними пропеллеры. Калибровка с установленными пропеллерами опасна.
- Подай газ в максимум (стик пульта — вверх; в Betaflight — ползунок Master во вкладке Motors).
- Подай питание на ESC (подключи батарею).
- Дождись первого звукового сигнала (мелодия «максимум»).
- Опусти газ в минимум.
- Дождись второго сигнала (мелодия «минимум»).
- Отключи питание. Калибровка сохранена.
Признаки неоткалиброванного ESC:
| Симптом | Причина |
|---|---|
| Мотор начинает вращаться не с нуля газа | ESC считает «минимум» ниже, чем выдаёт контроллер |
| Мотор не раскручивается до полных оборотов | ESC считает «максимум» выше, чем выдаёт контроллер |
| Мотор не останавливается при нулевом газе | Диапазон смещён вниз, нужна калибровка |
В ArduPilot выходы моторов настраиваются параметрами: SERVO1_FUNCTION…SERVO14_FUNCTION = 33–40 (моторы 1–8), тип сигнала — MOT_PWM_TYPE = 0 (Normal, классический PWM). Для серв самолёта функции 1–14 соответствуют каналам (элероны, руль высоты, газ и так далее).
5. Устаревшие протоколы: короткая справка
6. Для программиста
💻 Для программиста
Генерация серво-PWM на микроконтроллере — это аппаратный таймер: счётчик тикает с заданной частотой, а регистр сравнения переключает пин, когда счётчик достигает нужного значения. В Arduino для этого есть библиотека Servo: servo.attach(pin), servo.writeMicroseconds(1500). Внимание к уровням: выход Arduino — 5 В, вход большинства современных полётных контроллеров — 3,3 В; при стыковке проверяй допустимые напряжения.
Период 20 мс не случаен: это компромисс между скоростью реакции и совместимостью с аналоговыми сервами. Цифровые сервы допускают частоту обновления до 333 Гц (период ≈ 3 мс) — реакция быстрее, но возрастает средний ток.
7. Чек-лист самопроверки
Урок освоен, если каждый пункт выполнен на практике:
- Подал тестером сервоприводов импульсы 1000/1500/2000 мкс и проверил ход сервы без полётного контроллера
- Замерил напряжение BEC мультиметром под нагрузкой (с работающими сервами)
- Откалибровал классический ESC по процедуре (пропеллеры сняты)
- Объясняю разницу 50 Гц и 333 Гц для серв
- Знаю, почему OneShot125/42 и Multishot устарели
8. Что дальше
- Предыдущий урок: Урок 10. DroneCAN на практике: устройства и настройка в ArduPilot
- Следующий урок: Урок 12. DShot и прошивки ESC
- Полный перечень тем — в статье «Содержание курса».


