++실습예제 #9 서보모터 (라이브러리 활용하기)
CODE
#include <Servo.h> //서보 라이브러리를 불러옵니다. Servo myservo; // 서보를 제어할 서보 오브젝트를 만듭니다. int pos = 0; // 서보 위치를 저장할 변수를 선언합니다. void setup() { myservo.attach(9); // 핀 9의 서보를 서보 오브젝트에 연결합니다. }
void loop() { for(pos = 0; pos < 180; pos += 1) // 0도에서 180도로 이동합니다. {
// 이동할때 각도는 1도씩 이동합니다. myservo.write(pos); // 'pos'변수의 위치로 서보를 이동시킵니다. delay(15); // 서보 명령 간에 20ms를 기다립니다. } for(pos = 180; pos>=1; pos-=1) // 180도에서 0도로 이동합니다. { myservo.write(pos); // 서보를 반대방향으로 이동합니다. delay(15); // 서보 명령 간에 20ms를 기다립니다. } }
++라이브러리란++자료메모 라이브러리를 인터넷에서 찾아보면 '컴퓨터 프로그램에서 자주 사용되는 부분 프로그램들을 모아 놓은 것.
언제든지 자유롭게 이용할 수 있도록 구성되어 있다.'라고 설명되어 있다. 이렇게 라이브러리란 특정 목적을 위해 사용되는 파일들을 모아놓은 집합이라고 보면 된다. C++에서는 데이터의 입출력을 사용할 경우에는 처음에 #include <iostream>을 추가하고 문자열(String)을 사용하고 싶을 경우에는#include<String>을 추가시켜야지 문자열을 데이터처럼 사용할 수 있다. 아두이노를 쓰다보면 새로운 센서를 쓸 때 가장 많이 찾게 되는것이 라이브러리이다. 아두이노에서는 기본 함수들과 클래스정도는 직접 헤더파일을 추가해주지 않아도 컴파일 과정에서 자동으로 라이브러리가 추가되기 때문에 별다른 작업없이 사용할 수 있다. 기본적인 LED제어나 간단한 센서 정도는 라이브러리 없이 간단하게 아날로그 값이나 디지털 값의 입출력을 통해 값을 읽어오고 전송할 수 있으나, 좀 더 나아가 여러 기능을 가진 모듈들을 사용하기 위해서는 제조사나 인터넷 각종 사이트에서 제공하는 라이브러리가 있어야지만 제어가 가능하다. 라이브러리가 없다고 완전히 제어가 불가능한 것은 아니지만 그만큼 사용자가 여러 기능을 직접 만들어서 구현해야 하기 때문에 코딩이 상당히 번거로운 작업으로 변하게 된다.
위와 같은 경우에는 서보모터를 사용하기 때문에 #include <Servo.h>를 상단에 입력하였다.