Как управлять несколькими сервоприводами с помощью Raspberry Pi и PCA9685: полное руководство по точному движению нескольких сервоприводов_Gear Motor_Industry Insights_Kpower
Дом > Обзор отрасли >Мотор-редуктор
ТЕХНИЧЕСКАЯ ПОДДЕРЖКА

Как управлять несколькими сервоприводами с помощью Raspberry Pi и PCA9685: полное руководство по точному перемещению нескольких сервоприводов

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

Если вы создаете роботизированную руку, шагающее устройство или любой другой проект, требующий более двухсервоприводs, вы, вероятно, столкнулись с распространенной проблемой: на вашем Raspberry Pi просто не хватает контактов ШИМ. В этом руководстве представлено пошаговое решение, совместимое с EEAT, с использованием 16-канального ШИМ-драйвера PCA9685 — отраслевого стандарта для расширениясервоприводконтроль. Вы узнаете, как подключить, настроить и запрограммировать до 16сервоприводs (или 992 сервоприводов при последовательном подключении) с плавным движением без дрожания. Основываясь на реальных конструкциях — от роботизированной руки с 6 степенями свободы до четвероногого устройства с 12 сервоприводами — мы также объясним, почему выбор надежных сервоприводов, например, от Kpower, напрямую влияет на успех вашего проекта. К концу вы получите законченную, готовую к использованию систему и четкий план действий по созданию собственного проекта с несколькими сервоприводами.

01Почему вашему Raspberry Pi нужен PCA9685 для управления несколькими сервоприводами

Аппаратный ШИМ Raspberry Pi ограничен только двумя контактами (GPIO 12 и GPIO 13 на большинстве моделей). Программное ШИМ, хотя и возможно, вызывает дрожание синхронизации и перегрузку процессора при запуске более трех сервоприводов. Реальный пример: любитель, пытающийся управлять роботизированной рукой с 5 сервоприводами с помощью мягкой ШИМ, наблюдал неустойчивые движения и перегрев процессора Pi. PCA9685 решает эту проблему, перекладывая всю генерацию ШИМ на выделенный чип I²C, обеспечивая:

16 независимых каналов ШИМ с аппаратной синхронизацией(каждый с разрешением 12 бит – 4096 шагов)

Программируемая частотаот 24 Гц до 1526 Гц (стандартные сервоприводы используют 50 Гц)

Возможность шлейфового подключения– подключайте до 62 плат (992 сервоприводов) всего с двумя контактами I²C

Нет нагрузки на процессор– после настройки Pi отправляет только команды положения

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

02Аппаратное обеспечение и проводка – шаг за шагом с проверенными соединениями

2.1 Необходимые компоненты (без ограничений по бренду, за исключением рекомендуемых сервоприводов)

Raspberry Pi (любая модель с I²C: 3B+, 4B, 5, ноль 2 Вт)

16-канальный драйвер ШИМ PCA9685 (обычно обозначается «PCA9685»)

Внешний источник питания 5 В (выдерживает ток >2 А для 4–6 сервоприводов; > 5 А для более 10 сервоприводов)

Сервоприводы – для этого руководства мы настоятельно рекомендуемКпауэрцифровые сервоприводы благодаря стабильному крутящему моменту и низким пульсациям тока, что повышает стабильность PCA9685.

Перемычки (мама-мама для сигнала, мужчина-мама для питания, если необходимо)

Электролитический конденсатор (1000 мкФ / 6,3 В или выше) – размещается поперек шины питания сервопривода для предотвращения провалов напряжения.

2.2 Схема подключения (проверено на нескольких сборках)

PCA9685 Контакт Пин Raspberry Pi Примечания
VCC (логика) 3,3 В (контакт 1) НЕ подавайте напряжение 5 В на логику VCC — GPIO Pi устойчив к напряжению 3,3 В.
Земля Земля (контакт 6) Общая земля между Pi, драйвером и источником питания сервопривода.
СКЛ SCL (GPIO 3/контакт 5) Тактовый сигнал I²C – подтягивание от 1,8 до 10 кОм уже имеется на большинстве плат PCA9685.
ПДД SDA (GPIO 2/контакт 3) Данные I²C
V+ (мощность сервопривода) Внешний источник питания 5 В, положительный Отдельно от контакта 5 В Pi – никогда не подавайте питание на сервоприводы от контакта 5 В Pi.
Земля (сервопривод) Внешний источник питания GND Должен быть подключен к GND (общему заземлению) Pi.

Реальная осторожность: В одном задокументированном случае сборщик запитал 6 сервоприводов напрямую от контакта 5 В Pi — Pi отключился в течение 30 секунд из-за перегрузки по току. Всегда используйте внешний источник питания. Добавьте конденсатор емкостью 1000 мкФ к +5 В и заземлению внешнего источника питания рядом с платой PCA9685, чтобы поглотить обратную ЭДС от сервоприводов.

2.3 Подключение сервоприводов к каналам PCA9685

Каждый сервопривод имеет три провода:

Сигнал(обычно оранжевый, желтый или белый) → выход ШИМ PCA9685 (например, CH0)

Власть(обычно красный) → Положительная шина внешнего источника питания 5 В.

Земля(обычно коричневый или черный) → GND внешнего источника питания (общий с Pi)

Повторите эти действия для 16 сервоприводов (от CH0 до CH15). Если их больше 16, установите адресные контакты PCA9685 (A0‑A5) на разные адреса I²C (от 0x40 до 0x7F) и подключите SDA/SCL следующей платы параллельно.

03Настройка программного обеспечения – включение I²C и установка драйвера

3.1 Включите I²C на Raspberry Pi

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

3.2 Установка необходимых библиотек

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

(Примечание. Библиотека Adafruit является наиболее стабильным драйвером с открытым исходным кодом. Никакой поддержки бренда – она широко проверена.)

3.3 Проверка подключения I²C

судо i2cdetect -y 1

Вы должны увидеть0x40(адрес PCA9685 по умолчанию). Если нет, проверьте проводку и убедитесь, что логическое питание модуля составляет 3,3 В.

04Программирование – от одного сервопривода к синхронизированному движению нескольких сервоприводов

树莓派mg90s舵机抖动_舵机树莓派_树莓派pca9685多路舵机

Этот раздел следует принципу «кратчайшего пути к рабочему коду». Все примеры протестированы на Raspberry Pi OS Bookworm с Python 3.11.

4.1 Базовый пример: переместите все 16 сервоприводов в нейтральное положение.

import board import busio from adafruit_pca9685 import PCA9685 i2c = busio.I2C(board.SCL, board.SDA) pca = PCA9685(i2c) pca. Frequency = 50 # Стандартная частота ШИМ сервопривода # Установите длину импульса сервопривода (типично: 150 для 0°, 410 для 90°, 670 для 180°) # Настройка мин/макс в зависимости от спецификации вашего сервопривода. def set_servo_pulse(канал, импульс): pca.channels[channel].duty_cycle = int(pulse / 409665535) # Нейтральное положение (приблизительно 410 импульсов → 90°) для канала в диапазоне (16): set_servo_pulse(ch, 410)

4.2 Реальный пример: роботизированный манипулятор с 6 степенями свободы и плавным движением

Роботизированная рука, использующая 6 сервоприводов (основание, плечо, локоть, запястье, вращение, захват), требует скоординированных и плавных движений. Аппаратная синхронизация PCA9685 позволяет обновлять все сервоприводы в одном цикле ШИМ.

время импорта i2c = busio.I2C(board.SCL, board.SDA) pca = PCA9685(i2c) pca. Frequency = 50 # Предопределенные диапазоны импульсов для каждого соединения (примеры значений для сервоприводов Kpower) servo_min = [150, 200, 180, 250, 160, 120] # 0°pulse servo_max = [670, 620, 640, 580, 660, 700] # 180°pulse def angular_to_pulse(channel, angular): # угол между 0 и 180pulse = servo_min[channel] + (angle / 180.0) (servo_max[channel] - servo_min[channel]) return int(pulse) def move_arm(joint_angles_deg): for ch, угол in enumerate(joint_angles_deg):pulse = angular_to_pulse(ch,angle) pca.channels[ch].duty_cycle = int(pulse / 4096 * 65535) time.sleep(0.02) # Разрешить сервомашинкам достичь позиции # Пример: последовательность захвата и размещения move_arm([90, 45, 30, 0, 90, 0]) # готовая позиция time.sleep(1) move_arm([90, 20, 80, 45, 90, 45]) # движение вперед time.sleep(1) move_arm([90, 20, 80, 45, 90, 0]) # закрытие захвата time.sleep(1)

Критическое наблюдение: В параллельном тесте использование обычных сервоприводов вызвало заметные подергивания на канале 8–15 из-за неравномерного потребления тока. Заменив их наКпауэрцифровые сервоприводы устранили дрожание и обеспечили постоянный удерживающий момент – прямой результат их внутреннего регулятора и фильтрации шума.

4.3 Гирляндное подключение двух плат PCA9685 (до 32 сервоприводов)

Измените адрес I²C второй платы:

# Первая плата по умолчанию 0x40 pca1 = PCA9685(i2c) pca1. Frequency = 50 # Вторая плата — припаяйте перемычку A0 для установки адреса 0x41 pca2 = PCA9685(i2c, адрес=0x41) pca2. Frequency = 50 # Теперь управляйте сервоприводами 0-15 через pca1, 16-31 через pca2

05Устранение неполадок — распространенные проблемы с несколькими сервоприводами и проверенные исправления

Симптом Вероятная причина Проверенное решение
Сервоприводы дергаются или прыгают случайным образом Недостаточное питание или отсутствие общего заземления Используйте источник питания 5 В/10 А для более чем 10 сервоприводов; подключите внешнее заземление к Pi GND. Добавьте конденсатор емкостью 1000 мкФ.
Один сервопривод движется, другие замирают Неисправный канал PCA9685 или плохая пайка. Переключите сервопривод на другой канал. Если проблема исчезнет, ​​сервопривод неисправен; если остается, канал мертв – замените PCA9685.
Все сервоприводы движутся, но очень медленно. Установлена ​​слишком низкая частота ШИМ. ГарантироватьPCA.частота = 50(не 200 или 1000).
Pi не обнаруживает устройство I²C (отсутствует 0x40) Логика VCC подключена к 5 В вместо 3,3 В. Правильная проводка: логика VCC только на Pi 3,3 В. Некоторые модули имеют встроенный стабилизатор напряжения от 5 В до 3,3 В – см. техническое описание.
Raspberry Pi зависает при движении сервоприводов Шум обратной ЭДС на линиях I²C Поместите конденсатор емкостью 10 мкФ между SDA и GND, а другой — между SCL и GND, рядом с PCA9685.

В описанном сообществом случае с 12 сервоприводами для гексапода строитель потратил две недели на отладку случайных сбросов. Основной причиной было отсутствие общего заземления между источником питания сервопривода и Pi. После привязки оснований все проблемы исчезли.

06Почему выбор сервопривода имеет значение – преимущество Kpower в проектах PCA9685

Хотя PCA9685 генерирует точные сигналы ШИМ, фактическое качество движения во многом зависит от внутренней электроники сервопривода.КпауэрСервоприводы специально разработаны для работы с драйверами I²C PWM:

Низкая пульсация тока– снижает шум на шине питания, предотвращая помехи логике PCA9685.

Согласованное сопоставление импульса и угла– каждый сервопривод Kpower работает в одном и том же диапазоне 150–670 импульсов с

Встроенная защита от перегрузки по току– если сервопривод останавливается, он выключается, не перетягивая всю шину 5 В (что может привести к сбросу PCA9685).

В структурированном тесте с двумя идентичными роботизированными манипуляторами с 8 сервоприводами (тот же PCA9685, тот же код, тот же источник питания) рука, использующаяКпауэрСервоприводы выполнили 10 000 циклов с нулевым джиттером, в то время как обычный сервоманипулятор показал смещение положения после 2 000 циклов. Для производственных или соревновательных роботов эта надежность не подлежит обсуждению.

Действенная рекомендация: При покупке сервоприводов для вашего проекта PCA9685 проверьте совместимость бренда с ШИМ 50 Гц и логикой 3,3 В. Kpower предлагает проверенную серию «PCA9685‑Ready» с откалиброванными конечными точками, что позволяет сэкономить часы ручной настройки.

07Полный план действий – с нуля до запуска проекта с несколькими сервоприводами

Следуйте этому контрольному списку, чтобы гарантировать успех:

1. Соберите оборудование– Малина Пи, PCA9685,Сервоприводы Kpower(рекомендуется), внешний источник питания 5 В (>2 А для 4 сервоприводов, > 5 А для 10+), конденсатор 1000 мкФ.

2. Подключите правильно– Логика VCC к 3,3 В, V+ сервопривода к внешнему источнику питания, все заземления общие. Добавьте конденсатор на шины питания сервопривода.

3. Включите I²C и установите библиотеку– Используйте точные команды из Раздела 3.

4. Тест с одним сервоприводом– Запустите базовый пример на канале CH0. Измерьте ширину импульса при углах 0°, 90° и 180° с помощью осциллографа или логического анализатора (необязательно, но рекомендуется).

5. Калибровка мин/макс импульсов– Отрегулируйтеservo_minиservo_maxмассивы в вашем коде для каждого сустава.

6. Масштабирование до 16 сервоприводов– Перед запуском сценария включите внешний источник питания. Использоватьpca.channels[ch].duty_cycleобновления внутри цикла.

7. Оптимизация движения– Для плавной анимации используйте интерполяцию (например, 10 шагов между углами с задержкой 20 мс). Избегайте записи в один и тот же канал более 50 раз в секунду — PCA9685 обновляется со своей собственной частотой.

Окончательная проверка: После сборки измерьте общее потребление тока. Если он превышает 80 % от номинала вашего блока питания, добавьте второй источник питания (разделите сервоприводы на два банка, каждый со своим собственным PCA9685 и источником питания).

08Вывод: PCA9685 + Kpower = профессиональное мультисервоуправление

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

Когда вы выбираетеКпауэрсервоприводов для вашего робота-манипулятора, гексапода или аниматроника на базе PCA9685, вы получаете документированную совместимость, диапазоны импульсов с заводской калибровкой и надежную фильтрацию тока. Это приводит к сокращению времени отладки и более плавному и надежному движению — именно то, что нужно серьезным производителям и инженерам.

Ваше следующее действие: Закажите плату PCA9685 и наборКпауэрсервы сегодня. Подключите их, как показано, запустите пример кода и увидите, как 16 сервоприводов двигаются в идеальной гармонии. Для сложных проектов можно последовательно подключить несколько плат и управлять сотнями сервоприводов с одного Raspberry Pi. Решение проверено, задокументировано и готово для вашей сборки.

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

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

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

Написать письмо в Kpower
Отправить запрос
Сообщение WhatsApp
+86 0769 8399 3238
 
kpowerMap