> 업계 통찰 >커스텀 드라이브
기술 지원

Raspberry Pi로 마이크로 서보 모터를 제어하는 ​​방법: 전체 가이드

게시됨 2026-04-20

이 가이드는 마이크로 컨트롤러 연결 및 제어에 대한 단계별 지침을 제공합니다.서보 기구라즈베리파이를 이용한 모터. 올바른 배선, Python 코드 예제 및 일반적인 문제에 대한 실용적인 솔루션을 배우게 됩니다. 모든 정보는 표준 전자 관행을 기반으로 하며 실제 테스트를 통해 검증되었습니다.

01시작하기 전에 필요한 것

Raspberry Pi(3B+, 4, 5 등 GPIO 핀이 있는 모든 모델)

마이크로서보 기구모터(공통형: 9g서보 기구, 3선)

점퍼선(암-암)

외부 5V 전원(옵션이지만 안정적인 작동을 위해 권장)

소형 전위차계(선택 사항, 수동 제어의 경우)

중요한 안전 참고사항:전원을 공급하지 마십시오.마이크로 서보부하가 걸린 상태에서 또는 장시간 동안 서보를 실행하는 경우 Raspberry Pi의 5V 핀에서 직접 연결됩니다. Pi의 5V 출력은 약 500mA만 공급할 수 있으며마이크로 서보이동 중에 200-400mA를 소모할 수 있습니다. 별도의 5V 전원 공급 장치(예: 4xAA 배터리 또는 5V USB 보조 배터리)를 사용하고 해당 공급 장치의 접지를 Pi의 접지에 연결합니다.

02배선도(단계별)

이 세 가지 연결을 정확하게 따르십시오. 그만큼마이크로 서보세 개의 전선이 있습니다:

브라운 또는 블랙→ 접지(GND)

빨간색→ 5V 전원(테스트 전용 외부 공급 장치 또는 Pi의 5V 핀)

주황색 또는 노란색→ GPIO 핀(예: GPIO18)

서보 와이어 연결 대상
브라운/블랙 Raspberry Pi GND(핀 6) 및 외부 전원 공급 장치 GND
빨간색 외부 5V 양극(또는 조명 테스트용 Pi 핀 2)
주황색/노란색 GPIO18(핀 12)

일반적인 사례 예:한 애호가가 Pi의 5V 핀에서 직접 두 개의 마이크로 서보에 전원을 공급하려고 했습니다. 서보가 비정상적으로 작동하고 Pi가 재부팅되었습니다. 별도의 5V 배터리 팩(4xAA)을 추가하고 모든 접지를 함께 연결한 후 두 서보 모두 몇 시간 동안 원활하게 작동했습니다.

03마이크로 서보의 작동 방식

마이크로 서보 모터에는 DC 모터, 전위차계(위치 센서) 및 제어 회로가 포함되어 있습니다. 그것은 사용한다펄스 폭 변조(PWM)샤프트 각도를 설정합니다. 서보는 50Hz 신호(20ms 주기)를 예상합니다. 펄스 길이에 따라 각도가 결정됩니다.

0.5ms 펄스 → 0도

1.5ms 펄스 → 90도(중앙)

2.5ms 펄스 → 180도

대부분의 마이크로 서보의 물리적 범위는 약 180도이지만 일부는 90도 또는 270도입니다. 항상 먼저 부하 없이 한계를 테스트하십시오.

04소프트웨어 설정(Raspberry Pi OS)

1. Raspberry Pi에서 PWM 하드웨어를 활성화합니다. 터미널을 열고 다음을 실행합니다.

sudo raspi-config

인터페이스 옵션 → 원격 GPIO → 예 → 마침으로 이동합니다.

2. RPi.GPIO 라이브러리를 설치합니다(대부분의 Raspberry Pi OS 버전에 사전 설치됨). 완전한 PWM 제어를 위해서는 pigpio를 설치하십시오:

sudo apt 업데이트 sudo apt 설치 pigpio python3-pigpio sudo systemctl 활성화 pigpiod sudo systemctl 시작 pigpiod

05서보를 스윕하는 기본 Python 코드

라는 이름의 파일을 생성합니다.Servo_sweep.py:

import pigpio import time # pigpio 데몬에 연결 pi = pigpio.pi() if not pi.connected: print("Pigpio 데몬이 실행되지 않습니다. 다음으로 시작: sudo pigpiod") exit() # GPIO 핀 설정(GPIO18 사용) SERVO_PIN = 18 # 펄스 폭을 마이크로초 단위로 정의합니다(500 = 0.5ms, 2500 = 2.5ms) def set_angle(angle): # 각도(0-180)를 펄스 폭(500-2500)으로 변환합니다. pulse = 500 + (angle / 180.0)2000 pi.set_servo_pulsewidth(SERVO_PIN, pulse) try: 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) # PWM 신호 중지 pi.stop()

코드를 실행하세요:

sudo pigpiod # python3 Servo_sweep.py를 아직 실행하지 않은 경우

예상 결과:서보 암은 0도에서 180도까지 스윕하고 각 10도 단계마다 0.1초씩 정지합니다.

06전위차계를 이용한 서보 제어(실시간 수동 제어)

이 예에서는 전위차계를 돌려 서보 위치를 지정할 수 있습니다. 10kΩ 전위차계를 연결합니다. 왼쪽 핀을 3.3V에, 오른쪽 핀을 GND에, 중간 핀을 GPIO17(ADC 입력)에 연결합니다. Raspberry Pi에는 아날로그 입력이 없으므로 MCP3008 ADC 칩 또는 간단한 RC 타이밍 방법을 사용합니다. 아래는 RC 타이밍 방법입니다(추가 칩이 필요하지 않음).

GPIO23과 GND 사이에 1μF 커패시터를 연결하고 GPIO23의 10kΩ 저항을 전위차계 와이퍼에 연결합니다. 이것은 고급입니다. 단순화를 위해 SPI가 포함된 MCP3008을 사용하십시오. 그러나 일반적인 경우는 아날로그를 직접 읽으려고 시도하기 때문에 많은 초보자가 실패하는 경우입니다.추천:MCP3008과 같은 저렴한 ADC를 사용하거나 서보 드라이버 보드를 구입하세요.

다음은 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의 전위차계 angle = (value / 1023.0) * 180 set_angle(angle) time.sleep(0.02) 제외 KeyboardInterrupt: pi.set_servo_pulsewidth(SERVO_PIN, 0) pi.stop() spi.close()

07일반적인 문제 및 해결 방법

문제 가장 가능성이 높은 원인 해결책
서보가 움찔하거나 움직이지 않습니다. 전력 부족 외부 5V 전원을 사용하십시오(다중 서보의 경우 최대 2A). 접지를 연결하십시오.
서보는 한쪽 끝으로만 움직입니다. 잘못된 펄스 범위 일부 서보에는 600-2400μs가 필요합니다. 코드에서 테스트: 500을 600으로, 2500을 2400으로 변경합니다.
휴식 중 떨림 PWM 주파수 또는 타이밍 지터 RPi.GPIO의 소프트웨어 PWM 대신 pigpio(하드웨어 타이밍 PWM)를 사용하십시오.
서보가 뜨거워진다 현재 정지 또는 잘못된 신호 부하를 분리하십시오. 이동 후 펄스가 정지하는지 확인하십시오(0으로 설정).
Python 오류 "pigpio라는 모듈이 없습니다." 누락된 라이브러리 달리다:sudo pip3 설치 pigpio그 다음에sudo apt 설치 pigpio

08다중 마이크로 서보 최적화

최대 16개의 마이크로 서보를 제어하려면 전용 PWM 드라이버 보드를 사용하십시오(브랜드 이름을 지정하지 않고 "16채널 PWM 서보 드라이버 I2C"로 검색). I2C를 통해 연결합니다. 드라이버에는 GPIO 핀 2개(SDA/SCL)와 외부 5V 공급 장치만 필요합니다. 각 서보에는 자체 신호 핀이 있습니다. 이렇게 하면 지터와 CPU 로드가 제거됩니다.

09실행 가능한 권장사항

1. 항상 하나의 서보와 외부 5V 전원 공급 장치로 시작하십시오.자신의 논리를 추가하기 전에 스윕 코드를 테스트하십시오.

2. 모든 서보 프로젝트에는 pigpio를 사용하십시오.부드러운 모션에 필수적인 마이크로초 정밀도의 하드웨어 타이밍 PWM을 제공합니다.

3. 움직이지 않을 때는 서보 펄스를 0(off)으로 설정합니다.이를 통해 전력 소비를 줄이고 과열을 방지할 수 있습니다.

4. 전원 공급 장치 단자 전체에 1000μF 커패시터 추가(양극 및 접지) 서보 근처에서 전압 스파이크를 부드럽게 합니다.

5. 배터리로 구동되는 프로젝트의 경우 4x NiMH 충전식 AA 배터리를 사용하세요.(4.8V) 또는 규제된 5V UBEC. 서보의 정격이 아닌 이상 6V를 사용하지 마십시오(대부분의 마이크로 서보는 4.8-6.0V를 허용합니다).

10결론

Raspberry Pi로 마이크로 서보 모터를 제어하려면 올바른 배선, 안정적인 작동을 위한 외부 전원, 정확한 PWM 신호를 위한 pigpio 라이브러리가 필요합니다. 핵심 단계는 접지와 전원을 적절하게 연결하고, PWM용 GPIO18을 사용하고, 각도를 500~2500마이크로초 사이의 펄스 폭에 매핑하는 Python 코드를 작성하고, 항상 부하 없이 먼저 테스트하는 것입니다.

최종 조치 단계:

별도의 5V 배터리 팩으로 회로를 조립합니다.

pigpio를 설치하고 스윕 코드를 실행하십시오.

코드를 수정하여 서보 제어를 자신의 프로젝트(로봇 팔, 카메라 팬-틸트 또는 자동 공급 장치)에 통합하세요.

지터가 발생하면 RPi.GPIO에서 pigpio로 전환하세요.

다중 서보의 경우 PWM 드라이버 보드를 추가하십시오.

이 가이드를 따르면 Raspberry Pi를 사용하여 표준 마이크로 서보 모터를 안정적이고 정밀하게 제어할 수 있습니다.

업데이트 시간:2026-04-20

미래에 힘을 실어주다

귀하의 제품에 적합한 모터 또는 기어박스를 추천하려면 Kpower 제품 전문가에게 문의하십시오.

케이파워에 메일보내기
문의 제출
+86 0769 8399 3238
 
kpower지도