게시됨 2026-05-09
"이론은 장교이고 실천은 군인이다." - 레오나르도 다 빈치
마이크로 컨트롤러는 스티어링 기어를 제어합니다. 실제로는 "몇 도를 회전해야 하는지"와 같은 지시를 보내는 것이 아니라, 일련의 정밀한 펄스 신호를 출력하는 것입니다. 이 일련의 펄스 폭은 스티어링 암의 정지 위치를 직접적으로 결정합니다.
일반적인 의심: 5V 전압이 가해질 때 서보가 회전하지 않는 이유는 무엇입니까? 그 이유는 스티어링 기어 내부에 컨트롤 칩이 있기 때문이다. 기다리고 있는 것은 20ms의 주기와 0.5ms에서 2.5ms 사이의 높은 레벨을 갖는 구형파입니다. 그 중 0.5ms는 0°, 1.5ms는 90°, 2.5ms는 180°에 해당합니다.
스티어링 기어와 마이크로 컨트롤러를 손이라고 생각하세요. 사람의 말을 듣고 한 번에 종이 한 장만 건네주는 작업자로 상상할 수 있습니다.
종이의 높은 레벨이 1.5ms 동안 지속됨 → 작업자가 90° 회전함
종이의 높은 레벨이 2.0ms 동안 지속됨 → 작업자가 135° 회전함
핵심 데이터 포인트: 표준 서보의 경우 제어 주기는 20ms(즉, 50Hz)로 고정되어 있습니다. 하이 레벨 시간이 2.5ms를 초과하면 내부 회로가 파손되어 소손될 수 있습니다. 초보자의 경우 흔히 저지르는 실수는 주기 설정을 잊어버리는 것입니다. 대신 듀티 사이클만 변경됩니다.
한 가지 예에서 학생 팀은 마이크로컨트롤러를 사용하여 두 개의 서보에 직접 전원을 공급했습니다. 그러나 서보가 시작되면 즉시 재설정이 발생했습니다. 그 이유는 서보가 시작될 때 전류가 1A까지 높았지만 USB를 통해 마이크로 컨트롤러에서 제공하는 전원 공급 장치는 500mA에 불과했기 때문입니다.
올바른 연결:
신호선→ 마이크로컨트롤러 PWM 핀(직렬 저항 불필요)
전원 코드→ 독립된 5V 전원 공급 장치(또는 배터리 + 전압 안정화 모듈)

접지선→ 마이크로컨트롤러 GND와의 공통 접지(연결되어 있어야 합니다.)
프로그래밍 팁은 타이머를 초기화하기 전에 핀의 대체 기능을 확인하는 것입니다. 대부분의 32비트 마이크로 컨트롤러의 경우 PWM 출력 핀은 일반 GPIO와 동일한 물리적 핀에 속하지만 "다중 푸시-풀" 모드로 구성해야 합니다.
예를 들어 서보를 제어하여 0°에서 180°까지 천천히 회전하도록 합니다. 코드 논리는 세 부분으로 나뉩니다.
1. 타이머 기간을 20ms(예: 20,000마이크로초)로 설정합니다.
2. 비교 값을 1.5ms(90° 중간점)로 설정합니다.
3. 메인 루프의 비교 값을 점차적으로 늘립니다.
의사코드 아이디어:
초기화 PWM 주파수 = 50Hz, 주기 = 20000us 듀티 사이클 설정 = 1500us(90°) 1초 대기 듀티 사이클 = 500us(0°) 1초 대기 듀티 사이클 = 2500us(180°)
실제 측정으로 확인해보세요. 신호 핀과 접지 사이에 오실로스코프를 고정하여 프로그램에 따라 높은 레벨의 폭이 변하는지 확인하십시오.. 오실로스코프가 없으면 LED와 저항기를 직렬로 연결할 수 있습니다. 이때 LED의 양극은 신호에 연결되고 음극은 접지에 연결됩니다. LED 밝기의 변화는 펄스가 변화하고 있음을 나타냅니다.
동일한 모델의 서로 다른 서보의 경우 0°에서 해당 펄스 폭은 ±100us의 편차를 가질 수 있습니다. 교정 방법은 자동 스캐닝 프로그램을 작성하는 것입니다.
500us부터 시작하여 10us씩, 각 단계에서 0.5초 동안 유지

기계적 한계가 막 정지할 때 펄스 폭 값을 기록합니다.
전체 각도 범위를 이 간격에 선형적으로 매핑합니다.
일반적인 상황은 많은 저렴한 플라스틱 기어 서보의 데드존 폭이 5us라는 것입니다. 이는 펄스 폭을 변경하고 변경된 펄스 폭이 5us 미만일 때 서보가 움직이지 않는다는 것을 의미합니다. 이는 정상적인 상황이므로 프로그램에 대해 어떠한 의심도 가질 필요가 없습니다.
디버깅 시 제안 사항은 서보가 "지글지글" 소리를 내지만 회전하지 않는 경우 현재 펄스 폭에 해당하는 각도가 한계 상태에 더 가깝다는 것을 의미합니다. 단계 값을 줄이거나 기계 구조가 고착되었는지 확인하십시오.
채널 수가 충분하다면 타이머는 여러 개의 PWM 신호를 출력할 수 있습니다. 예를 들어, 32비트 마이크로 컨트롤러의 범용 타이머는 일반적으로 4개의 채널을 가지며 4개의 서보를 독립적으로 제어할 수 있습니다.
함정 방지를 위한 가이드:
서보가 회전할 때까지 기다리기 위해 지연 기능을 사용하지 마십시오. 서보 자체가 회전하는데 소요되는 시간은 약 0.2초/60°입니다.
여러 개의 서보가 동시에 시작되면 총 전류가 중첩됩니다. 각 서보의 전원선에 1000uF 커패시터를 병렬로 연결하는 것이 좋습니다.
혼선을 피하기 위해 신호선 사이에 최소 2mm 간격을 유지하십시오.
Q: 서보가 진동하는 원인은 무엇입니까?
전원 공급이 부족합니다. 서보 전원 단자의 전압을 측정합니다. 정전이 4.5V 미만인 경우 독립 배터리를 교체하고 220uF 커패시터를 추가하십시오.
Q: 전체 각도 차이 5°를 수정하는 방법은 무엇입니까?
A: 펄스 폭과 각도 사이에는 선형 관계가 없습니다. 측정된 두 지점, 즉 펄스 폭 0°와 펄스 폭 180°를 사용하여 교정을 위한 선형 보간을 수행하면 됩니다.
Q: 서보가 연결되자마자 마이크로컨트롤러가 다시 시작됩니까?
A: 공통 접지가 부족하거나 시동 전류가 너무 큽니다. 먼저 GND를 연결한 후 일방적으로 서보에 전원을 공급하고 마지막으로 신호선을 연결합니다.
Q: 일반 IO 포트에서 PWM을 시뮬레이션할 수 있나요?
A: 작동하지만 CPU 사용량이 높습니다. 단일 서보에 적합하며 다른 작업을 수행하지 않습니다. 그렇지 않으면 하드웨어 PWM을 사용해야 합니다.
핵심 사항을 다시 말하면: 서보를 제어하는 것은 펄스 폭을 제어하는 것이며 주기는 20ms로 고정되고 높은 수준의 조건에 따라 각도가 결정됩니다.。
3단계 인증:
1. 독립된 전원 공급 장치를 사용하여 서보에 전원을 공급하고 1.5ms 펄스를 손으로 고정한 후 90° 위치에 유지되는지 확인합니다.。
2. 루프 출력 500us → 2500us를 사용하여 전체 회전이 원활한지 관찰합니다.
3. 실제 부하(예: 로봇 관절)를 연결하고 오프셋 교정을 반복합니다.
사용을 옹호합니다.kpowerServo와 같은 제품은 1차 테스트를 거치며 매개변수 보정이 정확하고 조사 변수를 줄일 수 있습니다. 단일 조인트부터 다중 자유도까지 모든 단계에서 전원 공급 마진을 확인해야 합니다. 기억하십시오: 디버깅할 때 먼저 펄스를 측정한 다음 서보에 대해 의심하십시오.
업데이트 시간:2026-05-09