Как управлять микросерводвигателем с помощью Raspberry Pi: полное руководство_Custom Drive_Industry Insights_Kpower
Дом > Обзор отрасли >Пользовательский диск
ТЕХНИЧЕСКАЯ ПОДДЕРЖКА

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

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

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

01Что вам нужно, прежде чем начать

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

Микросервоприводдвигатель (общий тип: 9 гсервопривод, 3-проводной)

Перемычки (мама-мама)

Внешний источник питания 5 В (опционально, но рекомендуется для стабильной работы)

Небольшой потенциометр (опционально, для примера ручного управления)

Важное примечание по безопасности:Не подавайте питание наМикро Сервоприводнепосредственно от контакта 5 В Raspberry Pi, если вы используете сервопривод под нагрузкой или в течение длительного времени. Выход 5 В Pi может подавать только около 500 мА, аМикро Сервоприводможет потреблять 200-400 мА во время движения. Используйте отдельный источник питания 5 В (например, 4 батарейки АА или блок питания USB 5 В) и подключите землю этого источника к земле Pi.

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

Точно следуйте этим трем соединениям.Микро Сервоприводимеет три провода:

Коричневый или черный→ Земля (GND)

Красный→ Питание 5 В (внешний источник питания или вывод 5 В Pi только для тестирования)

Оранжевый или желтый→ Контакт GPIO (например, GPIO18)

Сервопровод Подключиться к
Коричневый/Черный Raspberry Pi GND (контакт 6) И внешний источник питания GND
Красный Внешний плюс 5 В (или контакт Pi 2 для светового тестирования)
Оранжевый/Желтый GPIO18 (контакт 12)

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

03Как работает микросервопривод

Микросерводвигатель содержит двигатель постоянного тока, потенциометр (датчик положения) и схему управления. Он используетШиротно-импульсная модуляция (ШИМ)для установки угла вала. Сервопривод ожидает сигнал частотой 50 Гц (период 20 мс). Длина импульса определяет угол:

Импульс 0,5 мс → 0 градусов

Импульс 1,5 мс → 90 градусов (центр)

Импульс 2,5 мс → 180 градусов

Большинство микросервоприводов имеют физический диапазон около 180 градусов, но некоторые составляют 90 или 270 градусов. Всегда сначала проверяйте пределы без нагрузки.

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

1. Включите оборудование ШИМ на Raspberry Pi. Откройте терминал и запустите:

sudo raspi-конфигурация

Перейдите к: «Параметры интерфейса» → «Удаленный GPIO» → «Да» → «Готово».

2. Установите библиотеку RPi.GPIO (предустановлена ​​в большинстве версий ОС Raspberry Pi). Для полного управления ШИМ установите pigpio:

sudo apt update sudo apt install pigpio python3-pigpio sudo systemctl включить pigpiod sudo systemctl запустить pigpiod

05Базовый код Python для управления сервоприводом

Создайте файл с именемservo_sweep.py:

import pigpio import time # Подключитесь к демону pigpio pi = pigpio.pi(), если не pi.connected: print("Демон Pigpio не запущен. Начните с: sudo pigpiod") exit() # Установите контакт GPIO (используя GPIO18) SERVO_PIN = 18 # Определите ширину импульса в микросекундах (500 = 0,5 мс, 2500 = 2,5 мс) def set_angle(angle): # Преобразование угол (0–180) к ширине импульса (500–2500) импульс = 500 + (угол / 180,0)2000 pi.set_servo_pulsewidth(SERVO_PIN,pulse) попробуйте: while True: для угла в диапазоне (0, 181, 10): set_angle(angle) time.sleep(0,1) для угла в диапазоне (180, -1, -10): set_angle(angle) time.sleep(0,1) кроме KeyboardInterrupt: print("Stopping...") pi.set_servo_pulsewidth(SERVO_PIN, 0) # Остановить сигнал ШИМ pi.stop()

Запустите код:

sudo pigpiod # если python3 servo_sweep.py еще не запущен

Ожидаемый результат:Сервоманипулятор будет поворачиваться от 0 до 180 градусов и обратно, делая паузу 0,1 секунды на каждые 10 градусов.

06Управление сервоприводом с помощью потенциометра (ручное управление в реальном времени)

В этом примере вы можете повернуть потенциометр для позиционирования сервопривода. Подключите потенциометр 10 кОм: левый контакт к 3,3 В, правый контакт к GND, средний контакт к GPIO17 (вход АЦП). Raspberry Pi не имеет аналоговых входов, поэтому мы используем микросхему АЦП MCP3008 или простой метод синхронизации RC. Ниже приведен метод синхронизации RC (дополнительный чип не требуется).

Подключите конденсатор 1 мкФ между GPIO23 и GND, а резистор 10 кОм от GPIO23 к движку потенциометра. Это продвинутый уровень. Для простоты используйте MCP3008 с SPI. Однако распространенный случай: многие новички терпят неудачу, потому что пытаются читать аналог напрямую.Рекомендация:Используйте недорогой АЦП, например MCP3008, или купите плату драйвера сервопривода.

Вот надежный код с использованием MCP3008:

import pigpio import time import spidev spi = spidev.SpiDev() spi.open(0, 0) spi.max_speed_hz = 1350000 def read_adc(channel): если канал 7: return -1 adc = spi.xfer2([1, (8+channel) 2000 pi.set_servo_pulsewidth(SERVO_PIN,pulse) try: while True: value = read_adc(0) # потенциометр на канале 0 angular = (value / 1023.0) * 180 set_angle(angle) time.sleep(0.02) кроме KeyboardInterrupt: pi.set_servo_pulsewidth(SERVO_PIN, 0) pi.stop() spi.close()

07Распространенные проблемы и решения

Проблема Наиболее вероятная причина Решение
Сервопривод дергается или не двигается Недостаточная мощность Используйте внешний источник питания 5 В (максимум 2 А для нескольких сервоприводов). Подключите заземление.
Сервопривод движется только в один конец Неправильный диапазон импульсов Некоторым сервоприводам требуется 600-2400 мкс. Тест в коде: измените 500 на 600 и 2500 на 2400.
Дрожание в состоянии покоя Частота ШИМ или джиттер синхронизации Используйте pigpio (ШИМ с аппаратной синхронизацией) вместо программного ШИМ RPi.GPIO.
Сервопривод становится горячим Ток остановки или неверный сигнал Отключить нагрузку. Убедитесь, что импульсы прекращаются после движения (установите значение 0).
Ошибка Python «нет модуля с именем pigpio» Отсутствует библиотека Бегать:sudo pip3 установить пигпиозатемsudo apt установить пигпио

08Оптимизация для нескольких микросервоприводов

Для управления до 16 микросервоприводами используйте специальную плату драйвера ШИМ (не называя бренды, найдите «16-канальный драйвер сервопривода ШИМ I2C»). Подключите его через I2C. Драйверу требуется только два контакта GPIO (SDA/SCL) и внешний источник питания 5 В. Каждый сервопривод имеет свой собственный сигнальный контакт. Это устраняет джиттер и нагрузку на процессор.

09Практические рекомендации

1. Всегда начинайте с одного сервопривода и внешнего источника питания 5 В.Прежде чем добавлять собственную логику, протестируйте код очистки.

2. Используйте pigpio для всех сервопроектов.Он обеспечивает аппаратно синхронизированную ШИМ с точностью до микросекунды, необходимую для плавного движения.

3. Установите сервоимпульс на 0 (выключено), когда он не движется.Это снижает энергопотребление и предотвращает перегрев.

4. Добавьте конденсатор емкостью 1000 мкФ к клеммам источника питания.(плюс и земля) рядом с сервоприводом для сглаживания скачков напряжения.

5. Для проектов с батарейным питанием используйте 4 NiMH перезаряжаемые батареи типа АА.(4,8 В) или регулируемый UBEC 5 В. Не используйте напряжение 6 В, если сервопривод не рассчитан на него (большинство микросервоприводов допускают напряжение 4,8–6,0 В).

10Заключение

Для управления микросерводвигателем с помощью Raspberry Pi требуется правильная проводка, внешний источник питания для надежной работы и библиотека pigpio для точных сигналов ШИМ. Основные шаги: правильно подключить заземление и питание, использовать GPIO18 для ШИМ, написать код Python, который сопоставляет углы с шириной импульса от 500 до 2500 микросекунд, и всегда сначала тестировать без нагрузки.

Заключительные действия:

Соберите схему с отдельным аккумулятором на 5 В.

Установите pigpio и запустите код очистки.

Измените код, чтобы интегрировать сервоуправление в свой собственный проект (роботизированная рука, поворотно-наклонная камера или автоподатчик).

Если вы испытываете дрожание, переключитесь с RPi.GPIO на pigpio.

Для нескольких сервоприводов добавьте плату драйвера ШИМ.

Следуя этому руководству, вы достигнете стабильного и точного управления любым стандартным микросерводвигателем с помощью Raspberry Pi.

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

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

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

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