Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Array
- html
- map
- queue
- 자료구조
- vector
- 수광 소자
- directx
- stl
- set
- 운영체제
- Algorithm
- 라인트레이서
- 아두이노
- arduino compiler
- 아두이노 컴파일러
- 아두이노 소스
- Stack
- c++
- Visual Micro
- 시스템프로그래밍
- list
- priority_queue
- 통계학
- Arduino
- WinAPI
- LineTracer
- Deque
- C언어
- 컴퓨터 그래픽스
Archives
- Today
- Total
Kim's Programming
아두이노 servo 모터 본문
음 이번엔 서보 모터에 대해서 알아보겠습니다.
우선 작동원리입니다.
서보모터는 펄스의 길이에 따라서 움직이는 방향이 정해집니다.
음... 뭐 펄스가 감이 안온다면 직접 보면 되겠죠?
먼져 회로를 구성합니다
서보모터는 3가닥의 선으로 이루어 져 있습니다. Gnd Vcc 그리고 신호선 입니다.
위의 그림에서는 서보모터를 보드에 직접 연결을 하였으나.
사실 저렇게 연결을 해도 잘 움직이지 않습니다.
이유는 USB로 연결된 아두이노 보드의 전력이 서보 모터를 돌리기 어렵습니다.
그래서 중간에 전원을 따로 입력해 주어야 합니다
그렇게 저도 구성을 해보았습니다.
(오른쪽에 가려진 부분은 전원입니다)
서보모터를 전원에 연결해주고 GND 레벨을 맞추기 위하여 CPU에도 전원을 연결하였습니다.
자 이제 코드를 입력해서 업로드를 해봅니다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 |
/* Sweep
by BARRAGAN <http://barraganstudio.com>
This example code is in the public domain.
modified 8 Nov 2013
by Scott Fitzgerald
http://www.arduino.cc/en/Tutorial/Sweep
*/
#include <Servo.h>
Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
int pos = 0; // variable to store the servo position
void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop()
{
for(pos = 0; pos <= 180; pos += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for(pos = 180; pos>=0; pos-=1) // goes from 180 degrees to 0 degrees
{
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
|
cs |
180도 회전후 180 재 회전 시키는 코드인데요
서보모터에는 가변 저항이 달려 있습니다. 회전을 하면서 기어작용으로 가변 저항이 조절 되는데 이에 따라 방향과 펄스등이 조정이 되고
그 덕에 사용자 입장에서는 각도만 입력을 해주면 됩니다(디지털 기준)
업로드를 마치고 실행을 해봤습니다
반대로 촬영이 되었네요
하지만 180도 ~ 0도 사이로 왔다 갔다 하는것을 볼 수 있습니다.
PS. 아날로그를 이용하는 경우는 원하는 각도 *6을 해주시면 원하는 ADC값을 얻으실 수 있습니다.
'Arduino > 부품 이야기' 카테고리의 다른 글
아두이노 Servo 모터 무한회전 개조 (0) | 2015.07.18 |
---|---|
아두이노 부트로더 단독 보드 복구 (18) | 2015.07.06 |
아두이노 초음파 센서의 이용 (0) | 2015.07.01 |
LB1630 드라이버 IC와 작동 (0) | 2015.06.30 |
적외선 센서와 ADC (0) | 2015.06.30 |