사진 출처 : https://makernambo.com/63
사진 출처 : https://www.icbanq.com
서보모터는 정해진 각도만큼 정확하게 회전할 수 있는 모터이다.
보통 0도에서 180도 사이의 범위 내에서 각도를 제어할 수 있고, 아두이노 같은 마이크로컨트롤러와 함께 많이 사용된다.
| 항목 | 설명 |
|---|---|
| 정확한 각도 제어 | 0°부터 180°까지 원하는 위치로 회전 가능 |
| 자기 위치 유지 | 지정한 각도에 도달하면 그 위치를 유지함 |
| 기어 내장 | 내부에 기어가 있어 힘이 강하고 제어가 정밀 |
| 3핀 구성 | VCC(전원), GND(접지), PWM(제어신호) |
| PWM 신호로 제어 | servo.write(90)처럼 각도를 지정 |
서보 모터의 제어 방식은 PWM(Pulse Width Modulation, 펄스 폭 변조) 신호를 통해 각도를 정밀하게 조절하는 방식이다.
| 펄스폭 | 각도 |
|---|---|
| 1.0ms | 0° |
| 1.5ms | 90° |
| 2.0ms | 180° |
이건 표준 서보(SG90 등) 기준이며, 모터 모델에 따라 다를 수 있음.
서보 모터는 아두이노에 내장된 Servo 라이브러리를 사용하여 객체를 생성한 뒤 제어한다.
| 함수명 | 기능 |
|---|---|
| void attach(pin) | 서보모터의 신호선이 연결된 핀을 지정한다. |
| void attach(pin, min_us, max_us) | 펄스 폭(high)의 최소, 최대값까지 지정한다. |
| void write(angle) | 각도를 지정한다.(angle : 0~180) |
| void writeMicroseconds(us) | 펄스 폭(high)을 us단위로 지정한다. |
| int read() | 현재 각도를 읽는다. 반환 값은 0~180의 정수 |
| boolean attached() | 서보 모터 핀이 지정되어 있는지 검사한다. |
| void detach() | 서보 모터의 지정된 핀을 내부적으로 제거한다. |
오늘은 서보 모터에 대해 학습했다.
서보 모터를 공부하면서 가장 크게 느낀 점은, 다른 센서들보다도 활용도가 훨씬 높고 무궁무진하다는 것이었다.
예를 들어, 문 경첩처럼 활용하여 PIR 센서와 결합하면 사람이 문 앞에 감지되었을 때 자동문처럼 열리게 만들 수 있고,
초음파 센서와 결합하면 서보 모터를 0도에서 180도 까지 회전시켜 레이더처럼 주변을 탐지하는 장치도 구현 가능하다.
거기에 적외선 센서까지 함께 활용하면, 일정 범위 내에서 움직임이 감지될 경우 비상 상황을 알리는 시스템도 제작할 수 있을 것 같다.
오늘 학습을 통해 서보 모터가 단순히 회전하는 장치를 넘어,
아이디어에 따라 다양하게 확장 가능한 부품이라는 것을 깨닫게 되었고,
앞으로 진행할 프로젝트에도 꼭 활용해 보고 싶다는 생각이 들었다.