서보모터란?
서보모터(Servo Motor)의 Servo는 ‘노예, 추종하다, 따르다’를 의미하는 라틴어의 Servus에서 유래했습니다.
그래서 서보모터는 해당 기기를 시스템이 요구하는 특정 위치로 이동시키거나, 특정 속도 및 토크로 가동시킬 때 정확하게 제어할 수 있는 구조를 갖추고 있죠.
즉, 주인의 명령에 의해 통제는 모터를 '서보 모터'라고 합니다.
서보모터는 로봇팔 , 공장 자동화 등에서 사용됩니다.
실습에 사용할 서보모터
SG-90은 0~180' 까지만 돌아가는 저렴한 서보모터입니다.
Servo 모터 제어 펄스
서보모터의 펄스폭은 1ms ~ 2ms 이고 1ms일때 0', 2ms일 때 180'이다.
1.5ms일 때 90'가 되고 정확한 각도는 pulse를 조절해서 설정할 수 있다.
하지만 실제로는 함수 매개변수로 각도를 주기때문에 pwm을 몰라도 사용가능
서보모터를 사용하기 위해서는 해당 라이브러리가 필요합니다. 근데 이제 기본으로 내장된...
Servo microServo ; 서보 객체 생성
attach(pin번호) ; pin번호에 연결합니다.
write( angle) : 각도를 설정합니다.
read() : 현재 서보모터 축 위치 반환
실습 : 헷갈리니까 연결선도 색깔을 맞춰줍시다. 서보모터 회전하기
#include <Servo.h>
Servo microServo;
int servoPin=9;
void setup() {
microServo.attach(servoPin);
}
void loop() {
int angle;
for(angle=0; angle<180; angle++){
microServo.write(angle);
delay(20);
}
for(angle=180; angle>0; angle--){
microServo.write(angle);
delay(20);
}
}
문제 1: 버튼을 누를 때마다 문이 열리거나, 닫히거나 하도록 하세요.
문제 2. 박수를 칠때마다 문이 열리거나 닫히도록 하세요.
문제3 . 비가 올거 같으면 문이 닫히도록 해보세요.
그외 여러가지 센서와 같이 연결해서 여러가지를 할 수 있습니다.