안녕하세요! 😊 아두이노로 내장 LED를 깜빡이며 큰 성취감을 맛본 IoT 초보 개발자입니다.
아두이노 키트에 함께 들어있었던 서보모터를 제어하며 아두이노에 대한 이해를 더욱 높여보고자 합니다.
서보모터는 각도를 정밀하게 조정할 수 있는 모터로, 드론의 방향 제어나 카메라 움직임에 활용될 수 있습니다.
0. 준비물
- 아두이노 보드
- 점프선
- USB 케이블
- 서보모터
- 노란색 선: 동작 제어 (신호선)
- 빨간색 선: 전원 + (5V)
- 갈색 선: 전원 - (GND)
1. 서보모터와 아두이노 연결
우선 서보모터에 돌아가는 게 잘 보이게끔 같이 담겨있던 하얀 플라스틱을 끼워주고
서보모터의 색에 맞게 점프선을 연결해 줬습니다. (갈색 점프선은 없어서 주황색으로 대체했습니다)
이제 서보모터와 연결된 점프선을 아두이노 보드와 연결해 줬습니다.
전체적인 순서는 다음과 같습니다.
- 서보모터 빨간 선 - 빨간 점프선 - 아두이노 5V
- 서보모터 갈색 선 - 주황 점프선 - 아두이노 GND
- 서보모터 노란 선 - 노란 점프선 - 아두이노 ~3 (디지털 핀 3)
노란선은 동작 제어선으로 ~ 표시가 된 아무 데나 가능합니다.
2. 아두이노 IDE 준비
- Servo.h 라이브러리 추가
- 상단 메뉴 Sketch - Include Library - Manage Libraries...
- "servo" 검색 - 첫 번째 Servo 라이브러리 설치
- 상단 메뉴 Sketch - Include Library - servo 클릭
- 코드 상단 #include <Servo.h> 확인
서보 라이브러리 검색 / 설치 서보 라이브러리 추가 / 확인
- 서보모터 핀 3번으로 설정 ( 제어선을 ~3으로 연결했기 때문 )
- int servo Pin = 3;
3. 코드 작성
이제 서보모터를 0도에서 180도까지 움직였다가 다시 0도로 돌아오게 하는 코드를 작성해 보겠습니다.
#include <Servo.h> // 서보모터 라이브러리 불러오기
int servoPin = 3; // 서보모터 제어 핀
Servo sun; // 서보모터 객체 선언
int angle = 0; // 각도 초기화
void setup() {
sun.attach(servoPin); // 서보모터 전원 공급
}
void loop() {
// 0도에서 180도까지 회전
for (angle = 0; angle <= 180; angle++) {
sun.write(angle); // 각도 명령
delay(10); // 10ms 대기
}
// 180도에서 0도까지 회전
for (angle = 180; angle >= 0; angle--) {
sun.write(angle); // 각도 명령
delay(10); // 10ms 대기
}
}
4. 동작 확인 👀
코드를 업로드한 후, 서보모터가 0도에서 180도까지 천천히 회전했다가 다시 0도로 돌아오는 모습을 볼 수 있었습니다.
5. 느낀 점
저번 포스팅에선 아두이노 자체에 내장돼 있는 LED를 깜빡였지만 오늘은 점프선을 이용해 한 단계 더 나아간 느낌입니다.
서보모터의 각도와 속도를 마음대로 저장할 수 있다는 사실이 너무 신기했고, 드론 프로펠러의 움직임이나 카메라 제어에 한 발짝 더 가까워진 것 같아 설렙니다 ㅎㅎ
6. 다음 목표
다음에는 이번에 받은 초보자 키드에 함께 들어있던 LED 핀을 사용해 컴퓨터의 시리얼번호로 LED를 on off 할 수 있는 기능을 만들어 보도록 하겠습니다.
'IoT > 드론' 카테고리의 다른 글
[IoT/드론] 초보자 아두이노 드론 만들기: 3일차 시리얼 통신 (0) | 2025.01.12 |
---|---|
[IoT/드론] 초보자 아두이노 드론 만들기: 1일차 Blink (0) | 2025.01.08 |