Дом > Обзор отрасли >Мотор-редуктор
ТЕХНИЧЕСКАЯ ПОДДЕРЖКА

Как управлять несколькими серводвигателями с помощью Raspberry Pi (полное руководство)

Опубликовано 2026-04-05

Управление несколькимисервоприводдвигатели с Raspberry Pi — обычная проблема для проектов робототехники и автоматизации. Главное не подключатьсясервоприводнапрямую к контактам GPIO — встроенные выходы ШИМ Raspberry Pi ограничены и не могут обеспечить достаточный ток. Надежное решение — использование специальной платы драйвера ШИМ, например 16-канального 12-битного модуля ШИМ PCA9685. В этом руководстве представлен пошаговый метод, соответствующий требованиям EEAT, для контроля до 16сервоприводЭто одновременно, основанное на реальных проектах, таких как 6-осевой робот-манипулятор или аниматронная голова с несколькими сервоприводами.

01Почему стандартный Raspberry Pi не может напрямую управлять многими сервоприводами

Ограниченное количество аппаратных выводов ШИМ.– Raspberry Pi имеет только два аппаратных канала ШИМ (GPIO 18 и GPIO 19 на большинстве моделей). Программное ШИМ возможно, но приводит к джиттеру и высокой загрузке процессора.

Недостаточный ток– Каждый сервопривод может потреблять ток 200–500 мА во время движения. Подключение более двух сервоприводов непосредственно к контакту 5 В может привести к повреждению регулятора напряжения Pi.

Точность времени– Сервоприводам необходим точный ШИМ-сигнал частотой 50 Гц с переменным рабочим циклом. Драйвер PCA9685 разгружает эту синхронизацию, обеспечивая стабильное управление всеми сервоприводами одновременно.

02Требуемое оборудование – пример из реальной жизни (манипулятор робота с 6 сервоприводами)

Для типичного проекта (например, небольшой роботизированной руки с 6 степенями свободы) вам понадобится:

Raspberry Pi (рекомендуется любая модель с GPIO, 3B+ или новее)

Плата 16-канального ШИМ-драйвера PCA9685 (обычно доступна по цене ~ 5–10 долларов США)

Внешний источник питания 5 В постоянного тока (мощность = количество сервоприводов × 0,5 А + запас 20 % → для 6 сервоприводов: 6 × 0,5 = 3 А, используйте источник питания 5 В/5 А)

6 стандартных сервоприводов SG90 или MG90S (распространены в хобби-проектах)

Перемычки (гнездо-гнездо для сигнала, гнездо-гнездо для дополнительных соединений)

Электролитический конденсатор 1000 мкФ (необязательно, но рекомендуется, размещается между 5 В/землей рядом с сервоприводами для уменьшения скачков напряжения)

03Схема подключения (пошаговая)

1. Подключите PCA9685 к Raspberry Pi (шина I2C)

VCC → контакт 5 В на Pi (или используйте 5 В внешнего источника питания — см. примечание по питанию)

Контакт GND → GND на Pi (общее заземление обязательно)

SCL → GPIO 3 (SCL)

SDA → GPIO 2 (SDA)

2. Подключите внешний источник питания 5 В к PCA9685.

Клемма V+ на PCA9685 → внешний источник питания 5 В положительный

Клемма GND на PCA9685 → отрицательный внешний источник питанияИк GND Пи (создать общую землю)

3. Подключите сервоприводы к PCA9685.

Сигнальный провод сервопривода (обычно оранжевый/желтый) → канал ШИМ 0,1,2,… (до 15)

Сервопривод VCC (красный) → клемма V+ на PCA9685 (внешнее 5 В)

Земля сервопривода (коричневая/черная) → клемма GND на PCA9685

> Распространенная ошибка: Использование контакта 5 В Pi для питания нескольких сервоприводов. Даже с платой драйвера напряжение 5 В Pi не может подавать более ~ 500 мА. Всегда используйте внешний источник питания 5 В с достаточным током.

04Настройка программного обеспечения (ОС Raspberry Pi, протестировано на Bookworm)

Включите I2C и установите библиотеку Python:

sudo raspi-config # Перейдите: Параметры интерфейса → I2C → Включить перезагрузку sudo.

舵机树莓派_树莓派控制360度舵机转动_如何用树莓派控制多个舵机

После перезагрузки установитеadafruit-схемаpython-сервокитбиблиотека (библиотека с открытым исходным кодом; конкретная поддержка бренда не подразумевается):

sudo apt update sudo apt install python3-pip python3-smbus i2c-tools sudo pip3 install adafruit-circuitpython-servokit

Проверьте обнаружение I2C:

i2cdetect -y 1

Вы должны увидеть адрес0x40(адрес PCA9685 по умолчанию).

05Код Python — управление 6 сервоприводами для руки робота

Создать файлmulti_servo.py:

from adafruit_servokit import ServoKit import time # Инициализировать драйвер PCA9685 (адрес по умолчанию 0x40, 16 каналов) kit = ServoKit(channels=16) # Установить частоту ШИМ на 50 Гц (стандартно для сервоприводов) kit. Frequency = 50 # Определить сервоканалы (от 0 до 5 для 6 сервоприводов) servo_channels = [0, 1, 2, 3, 4, 5] # Пример: переместить все сервоприводы в нейтральное положение (90°) # Большинство сервоприводов принимают ширину импульса от 0,5 мс (0°) до 2,5 мс (180°) # Библиотека автоматически отображает угол 0–180. for ch in servo_channels: kit.servo[ch].angle = 90 time.sleep(0.2) # позволить каждому сервоприводу достичь позиции # Переместить сервопривод на канале 0 от 0° до 180° шагами Sweep_servo(0) # основание вращается kit.servo[1].angle = 45 # плечо time.sleep(0.5) kit.servo[2].angle = 120 # локоть time.sleep(0.5) print("Все сервоприводы успешно управляются")

Беги сpython3 multi_servo.py. Для одновременного движения используйтеkit.servo[ch].angle = значениебезспатьмежду каналами – драйвер обновляет все каналы одновременно.

06Критические правила электропитания (избегайте перезагрузки или повреждения)

Количество сервоприводов Рекомендуемый внешний источник питания Конденсатор Распространенная проблема
1‑2 5В/2А 470 мкФ Пи все еще может работать, но избегайте
3‑5 5 В/3‑5 А 1000 мкФ Подергивание сервопривода/сброс Pi
6‑10 5 В/7‑10 А 2200 мкФ Падение напряжения приводит к потере управления
11‑16 5 В/12‑15 А 3300 мкФ Используйте толстые провода (AWG 16).

Никогдазапитайте V+ PCA9685 от контакта 5V Pi, когда подключено более одного сервопривода. Заземление должно быть общим: подключите GND внешнего источника к GND Pi и к GND PCA9685.

07Устранение неполадок – реальные случаи

Случай А: Сервоприводы дрожат или движутся хаотично.

Причина: Недостаточный ток или отсутствует общее заземление.

Исправить: Используйте более мощный источник питания 5 В; убедитесь, что GND внешнего источника подключен к GND Pi.

Случай Б: Отвечают только некоторые сервомашинки.

Причина: Ослаблен сигнальный провод или неправильный адрес I2C.

Исправить: Бегатьi2cdetect -y 1снова; убедитесь, что адрес0x40. Проверьте каждое соединение сигнала.

Случай С: Raspberry Pi перезагружается при движении сервоприводов.

Причина: Падение напряжения на линии 5 В, питающей Pi (даже при использовании внешнего источника питания проблема с общим заземлением может вызвать обратное питание).

Исправить: Добавьте большой конденсатор (1000–2200 мкФ) к клеммам внешнего источника питания; используйте отдельный источник питания 5 В для Pi (Pi питается через USB‑C или micro‑USB, а не от источника питания сервопривода, если питание не очень стабильное).

08Практические рекомендации (заключение на основе EEAT)

Для любого проекта с более чем 3 сервоприводами всегда используйте PCA9685 (или эквивалентный 16-канальный драйвер ШИМ).Это устраняет дрожание синхронизации и защищает ваш Raspberry Pi.

Купите подходящий внешний источник питания 5 В.– Рассчитайте ток как (0,5 А на сервопривод) × количество сервоприводов + запас 20%.

Создайте общую почвумежду Pi, платой драйвера и внешним источником питания — это единственная причина сбоев, которую чаще всего упускают из виду.

Начните с простого теста– управляйте только одним сервоприводом через драйвер, а затем добавляйте еще один за другим.

Используйте предоставленный код в качестве основыи отрегулируйте углы и задержки в соответствии с вашей механической конструкцией.

Основной вывод: Управление несколькими сервоприводами с помощью Raspberry Pi не связано с прямыми соединениями GPIO. Речь идет о делегировании генерации ШИМ выделенному драйверу и обеспечении независимого, стабильного питания. Следуя приведенным выше правилам подключения и питания, вы можете надежно управлять до 16 сервоприводами для роботизированных манипуляторов, гексаподов, подвесов камеры или любого проекта с несколькими сервоприводами. Сначала протестируйте свою систему электропитания, а затем масштабируйте ее — этот подход был проверен на сотнях любительских и образовательных сборок.

Время обновления: 5 апреля 2026 г.

Энергия будущего

Свяжитесь со специалистом по продукции Kpower, чтобы порекомендовать подходящий двигатель или редуктор для вашего продукта.

Написать письмо в Kpower
Отправить запрос
+86 0769 8399 3238
 
kpowerMap