부품설명

자주 사용하는 부품들의 사용법에 대하여 알아봅니다.

적외선 인체감지 센서 모듈 사용하기

2014-08-05 15:16:54

 

개요

 

1) 적외선 인체감지 센서란 무엇인가?

 




 적외선 인체감지 센서(PIR센서, Passive Infrated Sensor)는 적외선을 통해 사람의 움직임을 감지하는 센서입니다. 

 

 일반 건물의 복도나 현관문 천장에 있는 조명 등에 설치되어 사람의 움직임이 감지되면 자동으로 조명을 켜주는데 이용되는 센서입니다.

 

 일정한 양의 적외선을 방출하는 물체가 움직이면 감지하기 때문에 움직임이 없을 경우 감지하지 못합니다.

 

 

 

2) 적외선 인체감지 센서 원리
 

pir sensor에 대한 이미지 검색결과

 

사람의 몸에서는 적은 양의 적외선을 방출합니다.

 

이 사람에 몸에서 나온 적외선이 적외선 인체감지센서의 집광렌즈 부분인 F-Lens(Fresnel Lends)를 통과하여 적외선 센서 부분에 닿게 됩니다. 적외선 센서에 닿은 적외선이 전압으로 출력되어 최종적으로 센서가 인체를 인식하게 됩니다.

 

proximity_pirlens.jpg

 

 

 

부품 목록

 

 

NO 부품명 수량 상세설명
1 오렌지 보드 (BLE) 1  
2 적외선 인체감지 센서  1  
3 케이블 7  
4 LED 1  
5 330Ω 저항 1  
부품명
  오렌지 보드 (BLE)
적외선 인체감지 센서
점퍼 케이블
LED 330Ω 저항
부품사진




적외선 인체 감지 센서

 

  • 유효 감지 거리 : 7m
  • 감지 각도 : 120도
  • 작동 전압 : 5V - 20V
  • PCB Dimension : 32mm*24mm

 

 

 

 

 

하드웨어 making

 

브레드 보드

1. 인체감지센서의 GND을 오렌지보드의 GND핀에 연결합니다.

2. 인체감지센서의 VCC핀을 오렌지보드의 5V핀에 연결합니다.

3. 인체감지센서의 OUT핀을 오렌지보드의 2번핀에 연결합니다.

4. LED를 브레드보드에 꽂습니다.

5. LED의 +극330Ω 저항의 한쪽 핀을 연결합니다. 

6. 330Ω 저항의 반대편 핀을 오렌지보드의 13번핀에 연결 합니다. 

7. LED의 -극을 오렌지보드의 GND핀에 연결합니다. 

 

 

 

 

 

소프트웨어 coding

 

/*
  제목  : 인체감지센서 사용하기
  내용  : 인체감지센서를 오렌지보드에 연결하여 사람의 움직임이 인식되면 내장LED를 켜고, 아니면 내장 LED를 꺼지도록 만들어봅시다.
*/

// 인체감지센서를 2번핀으로 설정합니다.
int motion = 2;
// 사용할 LED를 13번 핀으로 설정합니다.
int light = 13;

// 실행시 가장 먼저 호출되는 함수이며, 최초 1회만 실행됩니다.
// 변수를 선언하거나 초기화를 위한 코드를 포함합니다.
void setup() {
  // 인체감지센서의 핀을 INPUT으로 설정합니다.
  pinMode(motion, INPUT);
  // LED의 핀을 OUTPUT으로 설정합니다.
  pinMode(light, OUTPUT);
  // 시리얼 통신 속도 설정
  Serial.begin(9600);
}

// setup() 함수가 호출된 이후, loop() 함수가 호출되며,
// 블록 안의 코드를 무한히 반복 실행됩니다.
void loop() {
  // 적외선 인체감지 센서에서 값을 읽는다
  int sensor = digitalRead(motion);
  // 센서값을 시리얼 모니터에 출력
  Serial.println(sensor);

  // 센서값이 HIGH(1)일 경우 13번 LED를 한번 깜빡인다
  if (sensor == HIGH) {
    // 내장된 LED가 연결된 핀의 로직레벨을 HIGH (5V)로 설정하여, LED가 켜지도록 합니다.
    digitalWrite(light, HIGH);
    // 0.5초 동안 대기합니다.
    delay(500);

    // 내장된 LED가 연결된 핀의 로직레벨을 LOW (0V)로 설정하여, LED가 꺼지도록 합니다.
    digitalWrite(light, LOW);
    // 0.5초 동안 대기합니다.
    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문을 반복하게 된다. 

 

 

 

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

적외선 센서, 아두이노, 오렌지보드