Опубликовано 2026-04-22
В этом руководстве представлены полные технические характеристики и код программирования Arduino для MG946R.сервоприводмотор. Вы узнаете точные параметры сигнала ШИМ, требования к напряжению, номинальные крутящие моменты и пошаговые примеры кода для управления этим.сервоприводв ваших робототехнических или радиоуправляемых проектах. Все данные проверяются на соответствие стандартусервоприводтехнические характеристики и испытания в реальных условиях.
Рабочее напряжение: 4,8–6,6 В (рекомендуется 6,0 В для оптимального крутящего момента)
Крутящий момент сваливания: 10 кг·см при 4,8 В / 12 кг·см при 6,0 В
Рабочая скорость: 0,17 с/60° при 4,8 В / 0,14 с/60° при 6,0 В
Угол поворота: 180° (диапазон ширины импульса 500–2500 мкс)
Ширина мертвой зоны: 3 мкс
Тип шестерни: Металлические шестерни (3-ступенчатая планетарная передача)
Масса: 55 г ± 5 г
Размеры: 40,7 мм × 19,7 мм × 42,9 мм
MG946R управляется стандартным сигналом ШИМ частотой 50 Гц (период = 20 мс). Положение определяется большой шириной импульса:
Критическое примечание: Фактический полезный диапазон импульсов может варьироваться в пределах ±50 мкс из-за производственных допусков. Всегда выполняйте процедуру калибровки перед развертыванием.
Ниже приведен готовый к использованию пример кода, используемый в тысячах любительских и образовательных проектов робототехники. Этот код позволяет избежать задержек блокировки и обеспечивает плавное управление сервоприводом.
#включатьСервопривод mg946rСервопривод; интервал сервопин = 9; // Используем вывод с поддержкой ШИМ (3,5,6,9,10,11 в Uno) void setup() { mg946rServo.attach(servoPin, 500, 2500); // Явный диапазон импульсов Serial.begin(9600); Serial.println("Тест сервопривода MG946R начался"); // Тест центра - проверка нейтрального положения mg946rServo.write(90); задержка(1000); } void Loop() { // Развертка от 0 до 180 градусов for (int angular = 0; angular = 0; angular -= 5) { mg946rServo.write(angle); задержка(20); } Задержка (1000); }
Для проектов, требующих точного времени или нескольких сервоприводов, используйте прямую генерацию импульсов:
интервал сервопин = 9; INT PulseWidth = 1500; // микросекунды (1500 = 90°) void setup() { pinMode(servoPin, OUTPUT); Серийный.начало(9600); } void Loop() { // Генерируем сигнал 50 Гц digitalWrite(servoPin, HIGH); задержкамикросекунды (pulseWidth); digitalWrite(servoPin, LOW); задержка (20 - (pulseWidth / 1000,0)); // период 20 мс // Пример: развертка путем изменения PulseWidth с 500 на 2500 }
Проблема: Сервопривод трясется под определенными углами и потребляет чрезмерный ток.
Решение: Добавьте электролитический конденсатор емкостью 470–1000 мкФ между питанием и землей рядом с сервоприводом. Используйте отдельный источник питания 5 В/6 В (минимум 2 А для одного сервопривода, 5 А для нескольких).
Корректировка кода: Уменьшите скорость, добавив задержку 30–50 мс между командами записи.
Проблема: Сервопривод не возвращается точно в центр после поворота.
Решение: Проблема с механической центровкой – отрегулируйте шлицы рупора сервопривода на один зуб. В коде откалибруйте центральный импульс (обычно 1520 мкс вместо 1500 мкс).
Метод проверки: Прикрепите указатель и отметьте истинное центральное положение на 1500 мкс, затем отрегулируйте ширину импульса до тех пор, пока механический центр не совпадет.
Проблема: Сервопривод перегревается при удержании полезного груза массой 200 г под углом 45°.
Решение: Уменьшите напряжение до 5,0 В (крутящий момент уменьшится, но ток значительно упадет). Добавьте пассивное охлаждение (небольшой радиатор на металлическом корпусе). Максимальный непрерывный удерживающий момент не должен превышать 6 кг·см во избежание отключения из-за перегрева.
Никогда не подавайте питание напрямую от контакта Arduino 5 В.– Ток остановки (типично 1,2 А) приведет к сбросу микроконтроллера. Всегда используйте отдельный источник питания сервопривода с общим заземлением для Arduino.
1. Всегда сначала калибруйте: Запустите простой эскиз, который меняет диапазон от 500 мкс до 2500 мкс с шагом 10 мкс, наблюдая при этом фактическое движение рупора. Запишите значения мкс для 0° и 180° – это ваши истинные пределы.
2. Используйте отдельное питание с первого дня: Подключите сервопривод VCC к источнику питания 6 В, 3 А (или к 4 батареям типа АА последовательно). Подключите GND сервопривода к GND Arduino. Сигнальный провод к выводу ШИМ.
3. Добавьте конденсатор с низким ESR емкостью 1000 мкФ.между клеммами питания сервопривода – это предотвращает падение напряжения при резком изменении направления.
4. Для проектов с несколькими сервоприводами: чередуйте команды движения на 20–50 мс, чтобы избежать одновременного пикового потребления тока.
5. Внедрение ограничений программного обеспечения: Даже если сервопривод поддерживает 180°, ограничьте свой код значением 170° (например, от 550 до 2450 мкс), чтобы защитить внутренний потенциометр от механического износа.
Для MG946R требуется ШИМ-сигнал с периодом 20 мс (50 Гц) и длительностью импульса от 500 мкс до 2500 мкс для полного поворота на 180°.
Для надежной работы требуется источник питания 6 В, способный выдавать ток не менее 2 А на один сервопривод.
Всегда калибруйте точный диапазон импульсов для вашего конкретного устройства перед окончательной сборкой.
Используйте библиотеку Arduino Servo с явными параметрами мин/макс или прямую генерацию импульсов для расширенных приложений.
Последний шаг действия: Перед интеграцией в окончательную сборку подключите сервопривод к Arduino с источником питания 6 В, 3 А, загрузите представленный выше калибровочный эскиз и запишите фактические значения импульсов вашего устройства 0 ° и 180 °. Затем измените свой производственный код, чтобы использовать эти калиброванные значения для точной и надежной работы.
Время обновления: 22 апреля 2026 г.
Свяжитесь со специалистом по продукции Kpower, чтобы порекомендовать подходящий двигатель или редуктор для вашего продукта.