반돌이’s 아두이노 강좌 (9) | 반도체네트워크

죄송합니다. 더 이상 지원되지 않는 웹 브라우저입니다.

반도체네트워크의 다양한 최신 기능을 사용하려면 이를 완전히 지원하는 최신 브라우저로 업그레이드 하셔야 합니다.
아래의 링크에서 브라우저를 업그레이드 하시기 바랍니다.

Internet Explorer 다운로드 | Chrome 다운로드

반돌이’s 아두이노 강좌 (9)


PDF 다운로드



9-1. 서보모터 사용하기

안녕하세요, 여러분! 센서파트를 끝내고 처음으로 찾아 뵙는 강의는 서보모터 사용하기 입니다.
오늘 사용할 모터는 바로 국민 서보 모터, TowerPro SG90 모터인데요. 저렴한 가격에 만나볼 수 있어서 국민 서보 모터라고도 불리우는 모터입니다.
구성품은 간단합니다. 위와 같이 서보모터 + 날개3개 + 볼트3개 로 이루어져 있는데요. 오늘은 이 모터를 제어해보도록 하겠습니다.
서보모터는 모터드라이버와 회전센서, 모터, 제어회로가 함께 내장되어 있습니다. 그렇기 때문에 사용이 편리해서 RC카 제작이나 로봇을 제작할 때에도 많이 사용되는 모터입니다.
다만, 서보모터를 사용할 때 주의해야할 점은 아두이노의 5V로도 사용이 가능하지만, USB 전원을 사용하는 경우 USB 전원에 500mA 라는 제한이 있으므로, 1~2개 정도의 서보모터만 구동이 가능합니다. 우선 소스코드와, 회로도 확인하며 강좌 시작해보도록 할게요!
오늘 회로도는 아주 간단하죠? 오늘은 시리얼 통신을 사용할거기 때문에 LCD는 제외하였습니다. 우리가 사용할 서보모터는 갈색선(GND), 빨간색선(5V), 주황색선(디지털신호선)으로 이루어져 있습니다. 우선 서보모터를 구동부터 시켜볼게요 !

#include


Servo myservo;
int servoPin = 8;
int pos = 0;

void setup()
{
   myservo.attach(servoPin);
}

void loop()
{
   for(pos = 0; pos < 180; pos += 1)
{
   myservo.write(pos);
   delay(15); //delay값을 조정하여 모터의 속도를 컨트롤가능합니다.
}
   for(pos = 180; pos>=1; pos-=1)
{
  myservo.write(pos);
   delay(15);
}
}


서보모터를 구동시키기 위해서는, 우선 Servo.h 라는 라이브러리를 사용해야합니다. 그 다음, 사용하기 위한 함수들을 알아둬야 하는데, 간단히 몇가지만 소개해드리도록 할게요.
•attach(pin) : 서보모터의 핀을 설정해 줍니다.
•write(angle) : 0~180으로 도 단위입니다.
• writeMicroseconds(uS) : 마이크로초 단위의 서보 모터를 제어하기 위한 펄스폭을 설정합니다.
위 소스코드는 서보모터를 0도부터 180도까지 구동시키는 가장 기본적인 코드입니다. 위 코드를 넣고 아두이노를 동작시켜 볼게요!
간단히 서보모터를 구동시켜보았으니, 이제 시리얼모니터를 이용해서 1~9 값을 받을 때마다 각도 값이 변하는 소스코드를 넣어볼게요!

#include
Servo servo;
void setup()


{
   servo.attach(8);
   Serial.begin(9600);
}
void loop()
{
   int a;
   if(Serial.available()){
      a=Serial.read();
      switch(a){
         case ‘1’:
            servo.write(10);
            delay(15);
            break;
         case ‘2’:
            servo.write(30);
            delay(15);
            break;
         case ‘3’:
            servo.write(50);
            delay(15);
            break;
         case ‘4’:
            servo.write(70);
            delay(15);
            break;
         case ‘5’:
            servo.write(90);
            delay(15);
            break;
         case ‘6’:
            servo.write(110);
            delay(15);
            break;
         case ‘7’:
            servo.write(130);
            delay(15);
            break;
         case ‘8’:
            servo.write(150);
            delay(15);
            break;
         case ‘9’:
            servo.write(170);
            delay(15);
            break;
         default:
            break;
      }
      Serial.write(a);
   }
   delay(10);
}

...(중략)

leekh@seminet.co.kr
(끝)
<저작권자(c) 반도체네트워크, 무단 전재-재배포 금지>

X


PDF 다운로드

개인정보보호법 제15조에 의한 수집/이용 동의 규정과 관련하여 아래와 같이 PDF 다운로드를 위한 개인정보 수집 및 이용에 동의하십니까? 동의를 거부할 수 있으며, 동의 거부 시 다운로드 하실 수 없습니다.

이메일을 입력하면,
(1) 신규참여자 : 성명/전화번호/회사명/분야를 입력할 수 있는 입력란이 나타납니다.
(2) 기참여자 : 이메일 입력만으로 다운로드가 가능합니다.

×

회원 정보 수정