아두이노 과제 5
서보모터
180도 회전이 가능한 모터
-잠금장치를 열고 닫을 때 잘 사용할 수 있다.
PWM
--Pulse Width Modulation의 준말임
--펄스를 변조해서 전류를 미세하게 조절하는 방법
--LED밝기를 조절하거나, 모터의 속도를 조절할 수 있음
서보모터
#include <Servo.h>
int pos = 0; //변수 선언
Servo servo; //서보
void setup()
{
servo.attach(5);
}
void loop()
{
for(pos = 0; pos <=180; pos+=1) {//pos값을 0으로 하고 각도가 180이 될때까지 1씩 증가
servo.write(pos); //value값을 각도로 회전
delay(15);
}
for(pos=0; pos>=180; pos-=1) {//pos값을 0으로 하고 각도가 180보다 작아질 때까지 1씩 감소
servo.write(pos); //value값을 각도로 회전
delay(15);
}
}
포텐쇼미터
--가변저항. 저항의 일종임
--돌리는 만큼 저항의 값이 변함
--내부에 저항체 도선이 들어있어서 도선이 지나는 길이만큼 저항값이 정해지는 원리
저항은 도선의 길이에 비례하고 단면적에 반비례한다.
void setup()
{
Serial.begin(9600); //시리얼 통신 함수 설정 9600속도로
}
void loop()
{
int poten = analogRead(A0);//A0핀
Serial.println(poten);//출력 줄바꿈
}
아나로그 입력 값을 받아서 서보를 돌려보기
#include <Servo.h>
int Servopin(5);//서보핀을 5번으로 설정
Servo servo;
void setup()
{
servo.attach(Servopin);
}
void loop()
{
int poten = analogRead(A0);//A0핀으로 설정
int servoV = map(poten,0,1023,10,170);//0부터 1023의 값을 10 170사이의 값에 적당히 매칭출력
servo.write(servoV);
}
포텐쇼미터 이용하여 led밝기 조절하기
#define LED 11
void setup(){
pinMode(LED, OUTPUT);
Serial.begin(9600);
}
void loop()
{
int a = analogRead(A0); //가변저항(0~1023) 값을 읽어옴
Serial.println(a); // 시리얼 모니터에 값을 출력
analogWrite(LED, a / 4); //0~255 범위로 LED 값을 출력
delay(10);
}