적외선 인체감지 센서
적외선 인체 감지 센서
유효 감지 거리 : 7m 감지 각도 : 120도 작동 전압 : 5V - 20V PCB Dimension : 32mm*24mm
부품명 | 수량 |
---|---|
아두이노 우노 R3 | 1 |
적외선 인체감지 센서 | 1 |
점퍼케이블 | 5 |
회로도
브레드보드 레이아웃
coding
int motion = 2; //적외선 센서 핀번호 선언
int light = 13; //13번 고정 LED 핀번호 선언
void setup() {
pinMode(motion,INPUT); //적외선센서의 핀을 INPUT모드로 선언
pinMode(light, OUTPUT); //13번LED센서의 핀을 OUTPUT모드로 선언
Serial.begin(9600); //시리얼 통신 속도 설정
}
void loop() {
digitalWrite(light,LOW); // 13번 LED off
delay(1000);
int sensor = digitalRead(motion); //적외선 인체감지 센서에서 값을 읽는다
Serial.println(sensor); //센서값을 시리얼 모니터에 출력
if(sensor == HIGH) { //센서값이 HIGH(1)일 경우 13번 LED를 한번 깜빡인다
digitalWrite(light, HIGH);
delay(500);
digitalWrite(light,LOW);
delay(500);
}
}
- 스케치 설명
loop위에서는 핀번호의 선언과 setup()에서는 각각의 핀에 대한 Mode를 설정한다.
13번핀에서는 LED를 출력하기에 OUTPUT모드로 설정하고 적외선 센서가 연결된 2번핀에서는 센서값을 읽어야 하기 때문에 INPUT모드로 설정한다. 통신 속도는 기본9600으로 설정해준다.
void loop() {
digitalWrite(light,LOW); // 13번 LED off
delay(1000);
int sensor = digitalRead(motion); //적외선 인체감지 센서에서 값을 읽는다
Serial.println(sensor); //센서값을 시리얼 모니터에 출력
if(sensor == HIGH) { //센서값이 HIGH(1)일 경우 13번 LED를 한번 깜빡인다
digitalWrite(light, HIGH);
delay(500);
digitalWrite(light,LOW);
delay(500);
}
}
loop에서는 센서값에 따라 13번 LED를 깜빡이게 되는데 센서값을 읽어 1이 출력될 경우에는 if문을 통해 13번 LED를 한번 깜빡이게 되고 센서값이 0일 경우에는 if문을 무시한채 loop문을 반복하게 된다
시리얼 모니터에서 해당 값을 확인 할 수 있다 -