게시됨 2026-04-03
제어서보 기구Arduino 보드가 있는 모터는 전자 프로젝트에서 가장 일반적이고 유용한 작업 중 하나입니다. 이 가이드는 연결 및 프로그래밍을 위한 명확하고 실용적이며 검증된 방법을 제공합니다.서보 기구표준 Arduino를 사용하여서보 기구도서관. 실제 시나리오와 공식 문서를 기반으로 정확한 배선, 작업 코드, 일반적인 문제 해결 방법을 배우게 됩니다.
대부분의 취미용 서보 모터(예: 9g 마이크로 서보 또는 SG90, MG90S 또는 MG995와 같은 표준 크기 서보)는 모든 Arduino 보드(Uno, Nano, Mega 등)에서 작동합니다. 이 가이드에서는 다음을 가정합니다.
Arduino 보드(Uno가 가장 일반적인 예)
표준 5V 서보 1개(공통 토크 범위: 1.8kg/cm ~ 13kg/cm)
점퍼선(직접 연결용 수-암)
별도의 5V-6V 전원 공급 장치(선택 사항이지만 더 큰 서보에 권장됨 - 섹션 4에 설명됨)
특정 브랜드 이름이 필요하지 않습니다.– 지침은 50Hz PWM 신호(펄스 폭 500μs ~ 2500μs)에서 작동하는 모든 표준 아날로그 서보에 적용됩니다.
손상이나 불규칙한 동작을 방지하려면 이 정확한 배선을 따르십시오.
중요한 규칙:서보가 작동 중에 200mA 이상을 소비하는 경우 Arduino의 5V 핀에서 직접 서보에 전원을 공급하지 마십시오. 대부분의 9g 서보의 경우 직접 Arduino 5V가 테스트에 안전합니다. 더 큰 서보(예: MG995)의 경우 외부 5V-6V 전원 공급 장치를 사용하고 서보의 접지를 Arduino의 접지(공통 접지)에 연결합니다.
Arduino Servo 라이브러리는 공식 IDE에 사전 설치되어 있습니다. 이 코드는 서보를 0°에서 180°로 반복적으로 움직입니다.
#포함하다서보 myServo; // 서보 객체 생성 int ServoPin = 9; // 서보에 연결된 신호 핀 void setup() { myServo.attach(servoPin); // 9번 핀에 서보를 연결합니다. } void loop() { myServo.write(0); // 0도로 이동 Delay(1000); // 1초 동안 기다립니다. myServo.write(90); // 90도(중앙)로 이동 Delay(1000); myServo.write(180); // 180도로 이동 Delay(1000); }
서보를 특정 각도로 제어하려면(예: 45°) 간단히 사용myServo.write(45);. 유효한 범위는 0~180입니다.
원인:힘이 부족합니다. 표준 9g 서보는 움직일 때 200~300mA를 소비합니다. 대형 서보는 최대 1A를 소비합니다. Arduino의 온보드 5V 레귤레이터(최대 ~500mA)는 이를 처리할 수 없습니다.
고치다:외부 5V 전원 공급 장치(예: 4xAA 배터리 또는 5V 2A 어댑터)를 사용하십시오. 공급 장치의 양극을 서보 빨간색 와이어에 연결하고 공급 장치 접지를 Arduino GND에 연결하고 서보 접지를 동일한 GND에 연결합니다.
원인:신호 핀이 올바르게 연결되지 않았거나 핀 번호가 잘못되었습니다.
![]()
고치다:확인myServo.attach(핀)PWM 가능 핀을 사용합니다. Arduino Uno에서는 핀 3,5,6,9,10,11이 PWM을 지원합니다. 핀 9와 10을 권장합니다.
원인:서보가 기계적 정지에 강제로 걸리거나 해당 서보 모델에 대한 펄스 폭 범위가 올바르지 않습니다.
고치다:다음을 사용하여 최소/최대 펄스 폭을 조정합니다.myServo.attach(핀, 최소, 최대)여기서 최소 기본값은 544μs(0°)이고 최대 값은 2400μs(180°)입니다. 일부 서보에는 500~2500μs가 필요합니다. 서보의 데이터시트를 확인하세요.
정확한 속도 제어를 위해 PWM 신호를 수동으로 생성할 수 있습니다. 서보는 50Hz 신호(20ms 주기)를 예상합니다. 1ms 펄스 = 0°, 1.5ms = 90°, 2ms = 180°. 이 코드는 원활하게 스윕됩니다.
int 서보핀 = 9; int pulseWidth = 1500; // 마이크로초, 90°에서 시작 void setup() { pinMode(servoPin, OUTPUT); } void loop() { // 1000μs에서 2000μs(0° ~ 180°)까지 스윕 for(pulseWidth = 1000; pulseWidth = 1000; pulseWidth -= 10) { digitalWrite(servoPin, HIGH); DelayMicroseconds(pulseWidth); digitalWrite(서보핀, LOW); 지연(20 - 펄스폭/1000); } 지연(1000); }
1. 전원 점검:서보만 연결된 경우(코드 업로드 없음) 서보는 가만히 있어야 하며 따뜻해지지 않아야 합니다.
2. 신호 테스트:섹션 3의 표준 코드를 업로드합니다. 서보가 0° → 90° → 180° → 반복하는지 관찰합니다.
3. 부하 테스트:서보 혼이 움직이는 동안 부드럽게 잡으십시오. 눈에 띄는 토크가 발생하지만 실속되지는 않아야 합니다. 정지되면 전원 공급 장치 전류를 높이십시오.
올바른 배선협상 불가능: PWM 핀에 대한 신호, 적절한 공급 장치에 대한 전원, 공통 접지.
항상 서보 라이브러리를 사용하세요단순성과 신뢰성을 위해. 속도 램핑이 필요한 경우에만 수동 펄스 제어로 전환하십시오.
서보의 정격 전압을 초과하지 마십시오.(일반적으로 5V~6V). 전압이 높을수록 내부 제어 회로가 손상됩니다.
Arduino를 보호하세요서보의 5V 핀에서 200mA 이상을 끌어오지 않습니다.
1. 기본 회로 구축9g 서보와 Arduino Uno를 사용하여 브레드보드에 작성했습니다. 움직임을 확인하려면 섹션 3의 코드를 사용하세요.
2. 전위차계 추가각도 제어: 포트(핀 A0)에서 아날로그 값을 읽고 이를 0~180으로 매핑한 다음myServo.write(매핑된 값).
3. 프로젝트에 통합– 일반적인 응용 분야에는 로봇 팔, 카메라 짐벌, 조향 메커니즘 및 자동 도어 오프너가 포함됩니다.
이 가이드를 따르면 이제 Arduino를 사용하여 표준 서보를 제어할 수 있는 검증되고 반복 가능한 방법을 갖게 되었습니다. 모든 Arduino 호환 보드에는 동일한 원칙이 적용됩니다. 정확한 펄스 폭 제한과 전류 요구 사항은 항상 서보의 데이터시트를 참조하십시오.
업데이트 시간:2026-04-03