반돌이’s 아두이노 강좌 (9)
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);
}
...(중략)
(끝)
<저작권자(c) 반도체네트워크, 무단 전재-재배포 금지>
재생 가능 에너지를 배터리에 공급하기
조회수 39회 / Bill Schweber
자율 주행 차량의 LiDAR용 GaN FET
조회수 102회 / Kenton Williston
EU 배터리 규정(EU BATTERY REGULATION)이란?
조회수 103회 / TUV
지터가 고속 링크에 미치는 영향
조회수 105회 / Bill Schweber
패널 실장 인코더 - 기본 사항 이해
조회수 341회 / Jeff Smoot
전기 기계 계전기와 무접점 계전기 비교
조회수 289회 / Jeff Smoot
인증된 LoRaWAN 모듈을 사용하여 장거리 연결 개발 가속화
조회수 315회 / Stephen Evanczuk
다양한 응용 제품을 위한 스위치 솔루션
조회수 233회 / Ryan Smoot
독립형 능동 EMI 필터 IC가 공통 모드 필터 크기를 줄이는 방법
조회수 330회 / 티모시 헤가티
PDF 다운로드
회원 정보 수정