> 업계 통찰 >BLDC
기술 지원

Arduino 서보 PWM 제어 튜토리얼: 펄스 폭 각도 조정에 대한 간단한 가이드

게시됨 2026-05-06

부제: 펄스 폭 변조에 대한 전문가 가이드

펄스부터 각도까지 모든 각도에서 자신감을 느낄 수 있습니다.

조향장치를 제어하고 관리하는 근본적인 본질은 '시간'의 존재를 분석하는 것이다.PWM 신호 범위에는 샤프트의 상태를 결정하는 하이 레벨의 폭이 있습니다.. Arduino 개발자에게 이 기술 콘텐츠를 마스터할 수 있다는 것은 기계 관절에 대한 명령 능력을 얻는 것과 같습니다. 이 문서에서는 지터 및 편차 상황을 제거할 수 있도록 원칙 시작부터 디버깅 단계까지 전체 경로 프로세스를 안내합니다.

01PWM의 기본 언어: "가시적 펄스"란 무엇입니까?

초당 50번, 서보에 "편지"를 전달한다는 신화를 상상해보세요. 문자의 무게로 보면 High 레벨이 1.5ms 동안 지속되면 서보는 90°에 머무르고 0.5ms는 0°, 2.5ms는 180°에 해당합니다. 이것이 PWM의 호흡리듬이다.

고정주기: 20ms(50Hz)

가변 펄스 폭: 0.5ms~2.5ms

각도 매핑 : 선형 대응이지만 개인차가 있음

요점은 신호 안정성을 무시하면 서보에서 "파킨슨병"과 같은 지터가 발생한다는 것입니다. 반대로 Arduino를 사용하여 고전력 서보를 직접 구동하는 경우 온보드 5V 레귤레이터가 과열되어 다시 시작되므로 외부 4.8~6V 전원 공급 장치를 연결해야 합니다.

독자를 위한 시나리오는 다음과 같습니다. 다리가 6개인 로봇을 만들고 있는데 다리 중 하나가 갑자기 경련을 겪습니다. 측정을 해보면 그라운드 루프에 전압차가 발생하고, PWM 파형이 왜곡되는 것을 확인할 수 있습니다. 교정 후에는 보행이 우아한 상태로 돌아옵니다.

02하드웨어 전장: 세 가지 스레드의 공간 미학

Arduino 보드(지역화된 관점)에서 시작하여 공간 순서로 정렬합니다.

1. 신호선(주황색/흰색) → PWM 핀 연결(예: D9)

控制舵机的pwm频率_舵机pwm控制arduino_控制舵机正弦运动代码

2. 양극선(빨간색) → 외부 BEC 또는 배터리 양극

3. 네거티브 와이어(갈색/검은색) → 공통 접지(절대 빼놓을 수 없는

예를 들어, 짐을 내릴 때는 서보가 정상이지만 무거운 물체를 들어올릴 때는 무작위로 회전하는 로봇 팔 프로젝트가 있습니다. 그 이유는 접지선의 루프 길이가 너무 길어서 노이즈가 유입되어 이러한 현상이 발생하기 때문입니다. 해결책은 서보 옆에 100μF 커패시터를 추가하고 공통 접지선의 길이를 줄이는 것입니다.

참고로 사용하시면kpower고정밀 서보인 Servo는 응답 속도가 매우 빠르고 리딩 엣지 지터에 더욱 민감합니다. 링잉을 억제하려면 330Ω 저항을 신호 라인에 연결하는 것이 좋습니다.

03코드 연금술: From쓰다()마이크로초 수준으로 제어

Arduino 환경에서는 Servo 라이브러리를 제공하는데, 실제로 이해하고 계시나요?

#포함하다서보 myServo; 무효 설정() { myServo.attach(9, 500, 2500); // 핀을 바인딩하고 펄스 폭 범위를 맞춤 설정합니다. } void loop() { myServo.writeMicroseconds(1500); // 마이크로초 직접 쓰기 → 90° 지연(500); }

생략된 문장이 있습니다. Attach()의 기본 매개변수는 544~2400μs입니다. 그러나 실제로 서보는 일반적으로 500~2500μs 사이입니다. 교정을 수행하지 않으면 각도가 벗어나게 됩니다.

신호를 교정하고 이를 첫 번째 키워드로 추출한 후 0°는 520μs, 90°는 1480μs, 180°는 2460μs인 3개의 실제 측정 지점을 가져옵니다. 선형 보간을 통해 매핑 테이블을 구하고 EEPROM에 매핑 테이블을 저장한 후 전원을 켤 때마다 읽어옵니다. 이 단계는 전문가 수준의 프로젝트에 대해 수행되어야 합니다.

독자가 경험한 것은 write(90)을 입력하면 출력이 87°라는 것입니다. 오류가 있는 것이 아니라 교정을 하지 않은 것입니다. Calibration 기능을 실행해야 각도가 사용자가 설정한 위치를 정확하게 가리킬 수 있습니다.

04다중 채널 서보 및 동적 응답

12개의 서보를 제어하시겠습니까? PWM 핀 수는 제한되어 있습니다. I2C를 16채널 PWM으로 변환하는 PCA9685 모듈을 권장합니다. 타이머 리소스를 확보하고 출력 주파수는 독립적입니다.

귀납적 추론: 단일 서보에서 다중 서보까지, 일반적인 실패 모드:

控制舵机正弦运动代码_控制舵机的pwm频率_舵机pwm控制arduino

전류 부족 → 전류에 따라 각 서보가 차단됩니다.계산된 총 전력 공급량의 1.5배

프레임 속도 충돌 → 모든 서보는 동일한 주기(20ms)를 공유해야 합니다.

업데이트 차단 → 비차단 지연 또는 타이머 인터럽트 사용

속도 변화 리듬: 저속에서 펄스 폭은 점차적으로 변화하고 매끄러워집니다. 고속에서는 부하를 예측해야 합니다. 두 번째 키워드인 동적 응답은 서보가 명령을 실시간으로 따르는 능력을 나타냅니다. 최적화 방법은 라이브러리에서 각도를 펄스 폭으로 변환하여 발생하는 오버헤드를 피하기 위해 writeMicroseconds()를 사용하여 값을 직접 쓰는 것입니다.

05일반적인 문제 진단(Q/A 형식)

Q: 전원을 켠 후 서보가 아래로 격렬하게 회전하며 진동합니까?

신호 라인이 플로팅 상태이거나 핀이 출력용으로 구성되지 않았습니다. 기본 하이 레벨은 실수로 한계 펄스 폭으로 읽혀집니다. 즉시 연결 구성을 확인하세요.

Q: 회전 도중에 '지글지글' 소리가 나며 회전이 멈추나요?

사례 A의 경우 전압 강하 또는 드라이브 과부하가 있습니다. 측정된 작동 전압이 4.5V보다 낮으면 전원 공급 장치를 교체해야 합니다. 또한 기계적 고착 지점을 제거하십시오.

Q: 동일한 코드를 사용하면 일부 서보는 정상이고 일부는 반전되어 있습니까?

A: 서로 다른 브랜드의 펄스 폭과 각도 매핑의 극성은 반대입니다. 0°에 해당하는 펄스 폭 값과 180°에 해당하는 펄스 폭 값을 교환하여 매핑을 다시 작성합니다.

Q: 뜨거워지지 않고 오랫동안 가만히 있을 수 있는 방법은 무엇입니까?

틀리네요. PWM 전송을 중단한 것은 옳지 않습니다. 펄스 폭을 유지하려면 지속적으로 전송해야 합니다. 새로 고침 빈도를 20Hz로 줄이면 냉각 효과를 얻을 수 있습니다.

Q: Arduino가 재설정되면 서보가 무작위로 점프합니까?

A: 재설정 기간 동안 핀은 고임피던스 상태로 전환됩니다.접지에 10k 풀다운 저항을 추가하거나 대신 전용 PWM 키퍼를 사용하십시오.

06요약 및 조치 제안

핵심을 살펴보면, PWM의 정확도는 전력 품질의 영향, 펄스 폭 교정 결과, 타이밍의 안정적인 상태 및 3단계의 곱으로 결정됩니다. 이 중 어느 하나라도 빠지면 완전히 불만족스러운 것으로 간주될 수 있습니다.

역사적으로 아날로그 서보는 피드백을 위해 전위차계를 사용하고, 디지털 서보는 분석을 위해 MCU를 사용했습니다. 그러나 하단 레이어는 여전히 PWM입니다.. 미래의 추세는 반이중 UART와 같은 직렬 버스 서보를 가리키지만, PWM은 단순성으로 인해 여전히 교육 및 소규모 프로젝트에서 최고의 표준입니다.

다음 단계:

오실로스코프나 로직 분석기를 사용하여 실제로 파형을 측정합니다(저렴한 모듈이라도 블라인드 추측보다 낫습니다).

각 서보에 대한 독립적인 교정 곡선 생성

프로젝트에 현재 마진(최소 50%)을 남겨두세요.

인식의 반전: 조타 장치는 블랙박스가 아니라 시간 예술의 실천자이다. 당신이 보내는 모든 펄스는 모두 각도를 조각하는 것입니다.

이 순간 Arduino를 들고 서보를 연결하고 첫 번째 마이크로초 쓰기 작업을 시작하십시오. 그 정확한 회전은 당신의 모든 노력에 상응하는 피드백을 줄 것입니다.

각도는 정보이고 펄스 폭은 전력입니다. 그것을 통제하십시오. *

업데이트 시간:2026-05-06

미래에 힘을 실어주다

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

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