Опубликовано 2026-04-05
Установкасервоприводпривод двигателя на определенный угол вращения — фундаментальная задача в робототехнике, автоматизации и домашней электронике. В этом руководстве представлены точные шаги, логика кода и методы калибровки для создания любого стандарта.сервоприводповорачивайте под любым углом, не полагаясь на какой-либо конкретный бренд или продукт. Вы узнаете универсальный принцип ширины импульса, пошаговый подход к программированию и способы устранения распространенных угловых ошибок. К концу вы сможете точно и многократно устанавливать углы сервопривода.
Все стандартные сервоприводы используютШиротно-импульсная модуляция (ШИМ)сигнал для определения угла их поворота. Управляющий сигнал представляет собой частоту 50 Гц (период = 20 миллисекунд). В течение каждых 20 мс высокий импульс (время включения) сообщает сервоприводу, куда двигаться.
Импульс 1,0 мс→ 0 градусов (полный угол против часовой стрелки на большинстве сервоприводов)
Импульс 1,5 мс→ 90 градусов (центральное положение)
Импульс 2,0 мс→ 180 градусов (полностью по часовой стрелке)
Эти значения являются отраслевым стандартом. Однако фактические конечные точки могут незначительно отличаться для отдельных сервоприводов. В таблице ниже показаны универсальные отношения:
> Ключевой факт: Ширина импульса изменяет угол линейно. Для любого угла от 0° до 180° необходимая длительность импульса = 1,0 мс + (угол/180) × 1,0 мс.
Следуйте этим четырем универсальным шагам. Никакого фирменного программного или аппаратного обеспечения не предполагается.
Стандартный сервопривод имеет три провода:
Коричневый или черный– Земля (подключитесь к GND вашего контроллера)
Красный– Питание (5 В для большинства сервоприводов; проверьте номинальное напряжение вашего сервопривода)
Оранжевый или желтый– Сигнал (подключитесь к контакту с поддержкой ШИМ)
> Критическое предупреждение: Не подавайте питание на сервопривод напрямую от контакта 5 В микроконтроллера, когда он находится под нагрузкой. Используйте отдельный источник питания 5 В, способный обеспечить ток не менее 1 А на сервопривод.
Настройте микроконтроллер или сервопривод на создание сигнала частотой 50 Гц (период 20 мс). Затем установите ширину импульса в соответствии с вашим целевым углом.
Пример расчета: Чтобы установить 45°
Ширина импульса = 1,0 + (45/180)×1,0 = 1,0 + 0,25 = 1,25 мс
Пример расчета: Чтобы установить 135°
Ширина импульса = 1,0 + (135/180)×1,0 = 1,0 + 0,75 = 1,75 мс
Следующая логика работает на любой платформе (Arduino, Raspberry Pi, ESP32 и т. д.):
Установить частоту ШИМ = 50 Гц. Установить разрешение ШИМ = 1 мкс (микросекунда). Шаг функции setAngle(angle_grades): если angular_grades 180: angular_grades = 180pulse_width_us = 1000 + (angle_grades / 180).1000 #pulse_width_us находится в диапазоне от 1000 до 2000 Запись ШИМ-сигнала: период = 20000 мкс, high_time =pulse_width_us
После загрузки кода обратите внимание на звуковой сигнал сервопривода. Если звуковой сигнал не переместится в ожидаемое положение, выполните калибровку, описанную в разделе 4.
Рассмотрим простую роботизированную руку с тремя суставами (плечо, локоть, запястье). Вам нужно, чтобы локтевой сустав переместился от 30° до 120° за 2 секунды.
Этапы дела:
1. Определите сервопривод локтя.
2. Напишите цикл, постепенно увеличивающий угол:
Начальный угол = 30° → длительность импульса = 1,0 + (30/180)×1,0 = 1,1667 мс
Конечный угол = 120° → длительность импульса = 1,0 + (120/180)×1,0 = 1,6667 мс
3. Увеличивайте угол на 1° каждые 20 миллисекунд (50 шагов в секунду).
![]()
4. Общая длительность = (120‑30) шагов × 0,02 с = 1,8 секунды (приблизительно).
Результат: Локоть плавно перемещается от 30° до 120°, без рывков. Этот метод ежедневно используется тысячами любительских и образовательных роботов.
Даже при правильном диапазоне 1,0–2,0 мс вы можете обнаружить, что команда на 90° приводит к 85° или 95°. Это нормально из-за производственных допусков. Калибровка каждого сервопривода индивидуально:
1. Подайте команду сервоприводу на 0° (отправьте импульс 1,0 мс).
2. Отметьте фактическое положение на звуковом сигнале.
3. Дайте команду сервоприводу развернуться на 180° (отправьте импульс длительностью 2,0 мс).
4. Отметьте фактическое положение.
5. Измерьте истинный диапазон углов. Например, если физический диапазон составляет всего 170°:
Истинный минимальный импульс = 1,0 мс (все еще работает)
Истинный максимальный импульс = 2,0 мс дает 170° → чтобы получить 180°, вам потребуется 2,058 мс.
6. Вместо изменения стандартного диапазона сопоставьте желаемый угол с фактическим диапазоном:
фактический_угол = желаемый_угол × (истинный_макс_угол / 180)
Пример: Если истинный максимальный угол = 170°, чтобы получить желаемые 90°:
фактический_угол = 90 × (170/180) = 85°→ отправить импульс на 85°.
Такое линейное отображение гарантирует, что физический рупор будет идти именно туда, куда вы хотите.
Избегайте этих ошибок, чтобы гарантировать успех:
Некоторые сервоприводы модифицированы для непрерывного вращения. В этом случае ширина импульса больше не определяет абсолютный угол. Вместо:
1,5 мс→ стоп
(например, 1,3 мс) → вращать в одном направлении со скоростью, пропорциональной разнице
>1,5 мс(например, 1,7 мс) → повернуть в противоположном направлении
Для сервоприводов непрерывного вращения «установка угла» невозможна без датчика обратной связи (энкодера). Используйте стандартный сервопривод (0–180°) для абсолютного углового позиционирования.
Основной принцип повторен: Угол поворота сервопривода устанавливается путем генерации ШИМ-сигнала частотой 50 Гц и длительностью импульса от 1,0 мс (0°) до 2,0 мс (180°). Связь линейная.
План немедленных действий:
1. Соединятьсервопривод к выделенному источнику питания 5 В (а не к контакту 5 В вашего микроконтроллера, если сервоприводов несколько).
2. Генерироватьсигнал ШИМ частотой 50 Гц на любом выводе GPIO, используя сервобиблиотеку предпочитаемой вами платформы или необработанный ШИМ.
3. Рассчитатьширина импульса:пульс_us = 1000 + (желаемый_угол/180)1000.
4. Тестс 0°, 90° и 180°. Отметьте фактические позиции.
5. Калибровкаиспользуя формулу отображения из раздела 4, если позиции отклоняются более чем на 2°.
6. Постепенно двигатьсямежду углами, изменяя угол на 1–2° каждые 20–50 мс во избежание механического воздействия.
Следуя этому руководству, вы можете установить любой стандартный сервопривод на любой угол от 0° до 180° с точностью ±1°. Никаких специфичных для бренда уловок не требуется — только универсальный стандарт ШИМ, которому подчиняются все сервоприводы.
Время обновления: 5 апреля 2026 г.
Свяжитесь со специалистом по продукции Kpower, чтобы порекомендовать подходящий двигатель или редуктор для вашего продукта.