게시됨 2026-04-17
이 가이드는 PCA9685 기반 PWM 드라이버 모듈을 사용하여 제어할 때 발생하는 가장 자주 발생하는 문제를 해결합니다.서보 기구에스. 실제 사용자 경험을 바탕으로 전원 불안정 및 신호 노이즈부터 충돌 및 구성 오류 해결에 이르기까지 근본 원인과 실행 가능한 수정 사항에 중점을 둡니다. 각 문제는 일반적인 시나리오와 함께 단계별 해결 방법으로 설명됩니다. 결국에는 신뢰성 있는 진단을 보장하기 위한 명확한 진단 작업 흐름과 예방 조치를 갖게 됩니다.서보 기구작업.
일반적인 경우:사용자는 표준 5V 서보를 PCA9685 출력 채널 0에 연결합니다. 마이크로컨트롤러는 PWM 신호를 보내지만 서보는 정지 상태를 유지하거나 회전하지 않고 비정상적으로 진동합니다.
근본 원인:
서보에 대한 전원 공급이 부족하거나 불안정합니다.
PCA9685, 서보 전원 및 마이크로컨트롤러 간의 공통 접지가 누락되었습니다.
잘못된 PWM 주파수 또는 펄스 폭 범위.
솔루션:
서보 전용 외부 전원 공급 장치를 사용하십시오(예: 최대 2-3개의 마이크로 서보의 경우 5V / 2A, 더 큰 서보의 경우 더 높은 전류). 마이크로컨트롤러의 5V 핀에서 PCA9685의 V+ 핀을 통해 서보에 전원을 공급하지 마십시오.
모든 접지를 연결하십시오. 마이크로컨트롤러 GND, PCA9685 GND 및 서보 전원 공급 장치 GND를 함께 연결해야 합니다.
표준 아날로그/디지털 서보의 경우 PWM 주파수를 50Hz(주기 20ms)로 설정합니다. 펄스 폭 확인: 일반적으로 1.0ms(0°), 1.5ms(90°), 2.0ms(180°). 도서관을 이용하세요setPWMPreq(50)최소/최대 펄스 값을 조정합니다.
일반적인 경우:서보는 스위핑 테스트를 실행하지만 가끔 잘못된 각도로 점프하거나 명령 없이 움찔합니다. 여러 개의 서보가 함께 작동하면 문제가 더욱 악화됩니다.
근본 원인:
PWM 신호 라인의 전기적 노이즈.
동시 서보 이동 중에 전압이 떨어집니다.
마이크로컨트롤러와 PCA9685 간의 I²C 통신 오류.
솔루션:
PWM 신호 배선(SDA, SCL)을 짧게 유지하십시오(
PCA9685 모듈에 가까운 서보 전원 레일 전체에 대형 전해 커패시터(470~1000μF, 6.3V 이상)를 추가합니다.
점진적인 각도 변경(예: 20ms 지연으로 10° 단계)을 전송하여 서보 속도를 줄입니다.
I²C 풀업 저항을 확인하십시오. 대부분의 PCA9685 모듈에는 4.7kΩ 풀업이 포함되어 있습니다. 여러 I²C 장치가 동일한 버스에 있는 경우 총 풀업 저항이 너무 낮아질 수 있습니다. 추가 풀업을 제거하거나 10kΩ 저항을 사용하십시오.
일반적인 경우:I²C 스캐너 스케치는 예상 주소(기본값 0x40)에서 장치를 반환하지 않습니다. 사용자가 VCC, GND, SDA, SCL을 올바르게 연결했습니다.
근본 원인:
다른 I²C 장치와의 충돌을 해결합니다.
솔더 브리지 또는 잘못된 주소 핀(A0-A5) 구성.
배선이 느슨하거나 전압 레벨이 잘못되었습니다(3.3V 대 5V).
솔루션:
I²C 스캐너를 실행하여 활성 주소를 확인합니다. 0x40이 누락된 경우 A0-A5 점퍼를 확인하십시오. 모두 열림 = 0x40입니다. A0을 닫으면 1(0x41)이 추가되고 A2는 4가 추가됩니다.
PCA9685 모듈이 5V 로직을 지원하는지 확인하십시오(대부분 지원). 마이크로컨트롤러가 3.3V에서 실행되는 경우 SDA/SCL을 직접 연결하세요. PCA9685는 5V에 견딜 수 있지만 모듈 사양을 확인하세요.
주소 핀과 전원 핀의 리플로우 솔더 조인트. 멀티미터를 사용하여 SDA/SCL 핀에서 마이크로컨트롤러 핀까지의 연속성을 측정합니다.
일반적인 경우:6개의 서보가 채널 0-5에 연결됩니다. 채널 0-3은 제대로 작동하지만 채널 4와 5에는 움직임이 표시되지 않습니다. 배선은 동일하게 보입니다.
근본 원인:
PCA9685 출력 채널이 손상되었습니다(드물지만 가능함).
해당 채널에 대한 잘못된 PWM 듀티 사이클 계산(예: 오버플로 또는 잘린 값)
특정 출력 핀 헤더의 느슨하거나 차가운 납땜 연결부.
솔루션:
작동하지 않는 서보를 작동하는 채널(예: 채널 0)로 바꿉니다. 작동한다면 원래 채널에 결함이 있는 것입니다. 대신 다른 채널을 사용하세요.
코드를 확인하세요. 올바른 채널 번호에 쓰고 있고 12비트 해상도(0~4095)를 사용하고 있는지 확인하세요. 값이 0이면 듀티가 0%(서보가 유지되지 않을 수 있음)인 반면, 4095는 100%(전체 켜짐, 서보에 적합하지 않음)를 제공합니다. 50Hz의 경우 활성 펄스 폭은 듀티 사이클 = (펄스 폭 / 20ms)에 해당합니다. 4095.
헤더 핀을 검사합니다. 작동하지 않는 채널의 신호 핀과 접지 핀을 다시 납땜합니다.
일반적인 경우:서보는 0°와 180°로 올바르게 회전하지만 끝점에서 큰 윙윙거리는 소리가 나고 뜨거워집니다. 이는 명령을 중지한 후에도 발생합니다.
근본 원인:
![]()
끝점의 펄스 폭이 서보의 기계적 한계를 초과합니다.
지나치게 긴 펄스 폭으로 인해 서보가 강제로 정지됩니다.
솔루션:
윙윙거리는 소리 없이 서보가 수용하는 실제 펄스 폭 범위를 측정하십시오. 안전한 범위(예: 0.6ms~2.4ms)에서 시작하여 점차 범위를 좁혀보세요. 많은 표준 서보는 0.9ms ~ 2.1ms에서 잘 작동합니다.
코드에서 사용자 정의 최소 및 최대 펄스 폭을 정의하십시오. PCA9685의 경우 펄스 폭을 레지스터 값으로 변환합니다.펄스 = (pulse_width_us / 20000_us) 4095. 0.9ms의 예: (900/20000)4095 ≒ 184. 2.1ms의 경우: (2100/20000)4095 ≒ 430. 값을 0.5ms 이하 또는 2.5ms 이상으로 강제하지 마십시오.
윙윙거리는 소리가 지속되면 서보를 물리적으로 멈출 때까지 완전히 구동하지 않음으로써 서보의 최대 토크를 줄이십시오.
일반적인 경우:사용자는 3개의 PCA9685 모듈을 스택하고 A0-A5 점퍼(예: 0x40, 0x41, 0x42)를 통해 주소를 설정합니다. 전원을 껐다 켜면 모든 보드가 0x40으로 되돌아갑니다.
근본 원인:
주소 점퍼 패드의 콜드 솔더 조인트.
라이브러리는 명시적으로 지정하지 않는 한 기본 주소로 모든 보드를 초기화합니다.
솔루션:
A0-A5의 솔더 브리지를 물리적으로 확인합니다. 0x41의 경우 납땜 A0이 닫힙니다. 0x42의 경우 솔더 A1이 닫힙니다. 0x43, 납땜 A0 및 A1 등의 경우 연속성 모드에서 멀티미터를 사용하여 확인합니다.
소프트웨어에서 고유 주소를 사용하여 각 PCA9685를 인스턴스화합니다.PCA9685 pwm1(0x40); PCA9685 pwm2(0x41);등. 자동 감지에 의존하지 마십시오.
주소 지속성을 테스트하기 전에 10초 동안 전원을 완전히 끄십시오.
일반적인 경우:팬-틸트 메커니즘은 두 개의 서보를 사용합니다. 급격한 각도 변경(50ms마다)을 전송하면 서보가 느리게 움직이며 목표 위치에 도달하지 못합니다.
근본 원인:
PWM 신호의 업데이트 속도는 서보의 성능보다 낮습니다. PCA9685는 모든 채널을 동시에 업데이트하지만 I²C 버스 속도가 너무 느릴 수 있습니다.
서보 자체에는 제한된 속도(예: 0.2초/60°)가 있습니다. 그보다 빠르게 명령을 보내면 백로그가 발생합니다.
솔루션:
I²C 클록 속도를 400kHz로 높입니다(대부분의 마이크로컨트롤러와 PCA9685에서 지원). 사용Wire.setClock(400000)PCA9685를 초기화하기 전에.
서보의 전송 시간과 일치하는 간격으로 각도 변경을 보냅니다. 0.2초/60° 서보의 경우 각 60° 단계마다 최소 200ms를 기다립니다.
PCA9685의 내장 발진기(내부 25MHz)를 사용하세요. 외부 크리스털이 필요하지 않습니다. 소프트웨어 PWM 루프를 피하십시오.
일반적인 경우:서보를 90°로 설정한 후 천천히 멀어지거나 가벼운 외부 힘에 저항할 수 없습니다.
근본 원인:
PCA9685 출력 주파수는 정확히 50Hz가 아닙니다(내부 발진기 허용 오차로 인한 드리프트).
서보의 데드밴드는 넓지만 PWM 신호에는 지터가 있습니다.
솔루션:
PCA9685의 내부 발진기를 교정합니다. 대부분의 라이브러리에서는 주파수 오프셋 조정을 허용합니다.pwm.setOscillatorFrequency(25000000)– 오실로스코프로 실제 주파수를 측정하고 조정합니다.
불감대가 더 좁은 고품질 서보(예: 디지털 서보)를 사용하십시오.
20ms마다 동일한 위치를 반복적으로 전송하여 작은 유지 토크를 추가합니다(PCA9685는 이 작업을 자동으로 수행합니다.setPWM한 번만 호출됩니다. 계속 재전송하면 I²C 트래픽 지터가 발생할 수 있습니다. 대신, PWM을 한 번 설정하고 하드웨어가 이를 유지하도록 하십시오.
대부분의 PCA9685 서보 문제를 방지하려면 다음 체크리스트를 따르십시오.
전원 공급 장치:서보용 별도의 5V 공급 장치, 2-3개의 마이크로 서보당 최소 1A 정격. 전원 레일 전체에 470~1000μF 커패시터를 추가합니다.
접지:모든 구성 요소에 대한 단일 공통 접지 지점입니다.
배선:짧은 I²C 와이어(연선이 도움이 됨) 서보 전원선을 신호선에서 멀리 두십시오.
빈도:표준 서보의 경우 항상 50Hz를 설정하십시오. 가능하면 오실로스코프를 사용하여 확인하십시오.
펄스 폭 제한:보수적으로(0.9ms – 2.1ms) 시작하고 서보 데이터시트에 따라 조정하십시오.
주소:멀티미터로 솔더 브리지를 다시 확인하십시오. 코드에 주소를 명시적으로 할당합니다.
테스트:여러 개의 서보를 추가하기 전에 I²C 스캐너와 단일 서보 스윕을 실행하세요.
> 대부분의 PCA9685 서보 문제는 부적절한 전력, 공통 접지 누락 또는 잘못된 PWM 타이밍으로 인해 발생합니다.하드웨어 결함을 의심하기 전에 먼저 이 세 가지를 해결하십시오.
최종 조치 권장사항:하나의 서보, 전용 5V/2A 공급 장치, 1000μF 커패시터로 간단한 테스트 설정을 구축하고 50Hz에서 0.9ms에서 2.1ms까지 스윕을 실행합니다. 안정적인 작동을 확인하세요. 그런 다음 전력과 온도를 모니터링하면서 한 번에 하나의 서보를 추가하여 점진적으로 확장합니다. 이러한 체계적인 접근 방식은 일반적인 문제의 90%를 제거합니다.
업데이트 시간:2026-04-17