본문 바로가기

IoT/드론

[IoT/드론] 초보자 아두이노 드론 만들기: 2일차 서보모터 제어

안녕하세요! 😊 아두이노로 내장 LED를 깜빡이며 큰 성취감을 맛본 IoT 초보 개발자입니다.

아두이노 키트에 함께 들어있었던 서보모터를 제어하며 아두이노에 대한 이해를 더욱 높여보고자 합니다.

서보모터는 각도를 정밀하게 조정할 수 있는 모터로, 드론의 방향 제어나 카메라 움직임에 활용될 수 있습니다.

0. 준비물

  • 아두이노 보드
  • 점프선
  • USB 케이블
  •  서보모터
    • 노란색 선: 동작 제어 (신호선)
    • 빨간색 선: 전원 + (5V)
    • 갈색 선: 전원 - (GND)

1. 서보모터와 아두이노 연결

우선 서보모터에 돌아가는 게 잘 보이게끔 같이 담겨있던 하얀 플라스틱을 끼워주고

서보모터의 색에 맞게 점프선을 연결해 줬습니다. (갈색 점프선은 없어서 주황색으로 대체했습니다)

 

서보 모터 연결

 

이제 서보모터와 연결된 점프선을 아두이노 보드와 연결해 줬습니다.

전체적인 순서는 다음과 같습니다.

  1. 서보모터 빨간 선 - 빨간 점프선 - 아두이노 5V
  2. 서보모터 갈색 선 - 주황 점프선 - 아두이노 GND
  3. 서보모터 노란 선 - 노란 점프선 - 아두이노 ~3 (디지털 핀 3)

노란선은 동작 제어선으로 ~ 표시가 된 아무 데나 가능합니다.

서브모터와 아두이노 보드 연결 이미지

2. 아두이노 IDE 준비

  • Servo.h 라이브러리 추가
    1. 상단 메뉴 Sketch - Include Library - Manage Libraries...
    2. "servo" 검색 - 첫 번째 Servo 라이브러리 설치
    3. 상단 메뉴 Sketch - Include Library - servo 클릭
    4. 코드 상단 #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 할 수 있는 기능을 만들어 보도록 하겠습니다.

728x90