728x90
반응형
Servo
Servo 모터는 움직임을 만들어 내는데 아주 중요한 부품이다. 이러한 서보 모터는 Servo 라이브러리를 이용하여 제어한다.
서보 함수
servo.attach(pin); | servo: 서보 모터에 사용할 객체 변수. 서보 라이브러리를 할당한 변수라고 생각하면 쉽다. pin: 서보 모터를 사용할 핀 번호. |
servo.write(angle); | angle: 서보 모터에 쓸 각도값(0~180도) |
서보 모터의 파형 이해하기
서보 모터의 파형의 주기는 일반적으로 20ms이며, 주파수는 50Hz이다. 입력 파형의 HIGH값은 1~2ms 사이의 값을 갖는다.
서보 모터는 이러한 입력 파형의 값에 따라 움직이는 각도가 다르다.
서보 모터 사용하기
서보 모터 사용 코드
#include<Servo.h>
Servo ms;
void setup(){
Serial.begin(9600);
ms.attach(9);
ms.write(0);
}
void loop(){
if(Serial.available()>0){
char u = Serial.read();
if(u!= '\n'){
if(u == '1') ms.write(0);
else if(u == '2') ms.write(30);
else if(u == '3') ms.write(60);
else if(u == '4') ms.write(90);
else if(u == '5') ms.write(120);
else if(u == '6') ms.write(180);
delay(100);
}
}
}
코드 해석
#include<Servo.h>
Servo ms;
- #include 함수를 통해 서보 라이브러리를 가져옴.
- Servo ms: 서보 모터의 객체 변수 ms를 선언함.
void setup(){
Serial.begin(9600);//출력 속도 설정
ms.attach(9);//서보 모터의 핀 설정
ms.write(0);//서보 모터의 각 설정
}
- 시리얼 모니터의 통신 속도를 9600으로 설정한다.
- 서보 모터의 핀을 9로 설정한다.
- 서보 모터의 각도를 0으로 초기화한다.
void loop(){
if(Serial.available()>0){
char u = Serial.read();
if(u!= '\n'){
if(u == '1') ms.write(0);
else if(u == '2') ms.write(30);
else if(u == '3') ms.write(60);
else if(u == '4') ms.write(90);
else if(u == '5') ms.write(120);
else if(u == '6') ms.write(180);
delay(100);
}
}
}
만약 시리얼 모니터에 입력이 있다면, 문자형 변수 u에 입력된 값을 저장한다.
이후 입력값에 따라 모터의 각을 변경하고 0.1초 기다린다.
입력값 | 모터의 각 제어 |
1 | 0 |
2 | 30 |
3 | 60 |
4 | 90 |
5 | 120 |
6 | 180 |
728x90
반응형
'Arduino > [2] Arduino Module' 카테고리의 다른 글
[Arduino Module] #6. 도트 매트릭스 (0) | 2022.03.05 |
---|---|
[Arduino Module] #5.세그먼트 제어하기 (0) | 2022.03.04 |
[Arduino Module] #3. 아두이노 부저 (0) | 2022.03.04 |
[Arduino Module] #2. LED구성과 저항 (0) | 2022.03.04 |
[Arduino Module] #1. 초음파 센서 (0) | 2022.03.04 |