서보모터(Servo motor, SG90): 두 판 사이의 차이
편집 요약 없음 |
편집 요약 없음 |
||
| 106번째 줄: | 106번째 줄: | ||
[[아두이노 사용 방법]] 문서에서 엔트리파이선을 활용 방법을 참고하세요. | [[아두이노 사용 방법]] 문서에서 엔트리파이선을 활용 방법을 참고하세요. | ||
[[파일:씨마스 p217 예제.png]] | [[파일:씨마스 p217 예제.png|가운데|class=coders100]] | ||
==== 연결 ==== | ==== 연결 ==== | ||
[[파일:씨마스 p217 예제회로1.png| | [[파일:씨마스 p217 예제회로1.png|가운데|class=coders100]] | ||
==== 예제 코드 ==== | ==== 예제 코드 ==== | ||
<syntax | <syntax | ||
2023년 12월 12일 (화) 20:39 판

신호에 따라 회전각도를 조절할 수 있는 제품입니다.
정확한 위치제어가 가능하여 로봇 관절 등에 사용됩니다.
회전각 범위는 0도 이상 180도 이하 입니다.
사양
- 동작전압 : 5V
- 소비전류 : 0.2A ~ 0.7A
- 각도범위 : 0° ~ 180°
필요 하드웨어
연결
| Servor motor | Arduino |
| S | D7 |
| + | 5V |
| - | GND |

라이브러리
- Servo (기본 라이브러리)
예제 코드
// servo 라이브러리 사용
#include <Servo.h>
// 7번핀 사용
#define pin 7
//sevo 객체 지정
Servo servo;
//각도 변수 지정
int pos = 60;
void setup() {
Serial.begin(9600);
//서보모터 사용 핀번호 설정
servo.attach(pin);
//서보모터 초기 각도 설정
servo.write(pos);
Serial.println("Serial start");
Serial.print("default degree : ");
Serial.println(pos);
}
void loop() {
if (Serial.available()) {
char contrl = Serial.read();
if (contrl == 'a') { //시리얼 모니터에 a 입력시 60도 증가
if (pos == 180)
Serial.println("max angle");
else {
pos = pos + 60;
Serial.print("degree : ");
Serial.println(pos);
servo.write(pos);
}
} else if (contrl == 'b') { //시리얼 모니터에 b 입력시 60도 감소
if (pos == 0)
Serial.println("min angle");
else {
pos = pos - 60;
Serial.print("degree : ");
Serial.println(pos);
servo.write(pos);
}
}
}
}
실행 결과
- 작동영상
- 시리얼모니터

고등학교 정보교과서(씨마스) 예제
P. 215 스스로 해결하기④ (서보 모터, 부저, LED)
본 예제는 교과서 내용에 따라 엔트리파이선을 사용합니다.
아두이노 사용 방법 문서에서 엔트리파이선을 활용 방법을 참고하세요.
연결

예제 코드
<syntax