반응형

안녕하세요, 츄르 사려고 코딩하는 집사! 코집사입니다.

오늘은 어제 작업했던 것에 적외선 인체감지 센서(PIR 센서, Passive Infrarted Sensor)를 더해보려고 합니다.

적외선 인체감지센서는 아래와 같이 생겼습니다.





적외선 인체감지 센서란??

적외선 인체감지 센서(PIR센서, Passive Infrated Sensor)는 적외선을 이용하여 사람의 움직임을 감지해서 제어 신호를 통하여 데이터를 보냅니다. 제어 신호에서는 0과 1을 내보내서 이 0과 1을 가지고, 다른 센서들을 제어하는 용도로 많이 사용합니다. 이 센서를 일상에서도 많이 사용하는데, 아파트 복도 천장에 달려있는 조명이나 집에 있는 신발장 조명에도 사람 움직임이 감지되면 조명을 켜주는 용도로도 많이 사용합니다.




적외선 인체감지 센서의 원리

적외선은 태양에서 빛이 나오는데 무지개 색 스펙트럼의 빨간색 바깥 쪽에 있는 것입니다. 적외선은 복사열 등이 대부분을 이루고 있습니다. 사람의 몸에서는 적외선을 조금 방출을 합니다. 그래서, 아래의 사진과 같이 사람에서 나오는 적외선이 적외선 인체감지 센서의 저 렌즈를 통과하여 적외선 센서에 닿게 되어 제어신호로 0과 1을 출력을하게 됩니다.  



적외선 인체 감지 센서

  - 공급 전원 : 3~5V(설명서에 적혀 있네요.)

  - 감지 각도 : 120도

  - 감지 거리 : 대략 7M



이제 아두이노 우노(Arduino Uno)를 가지고, 적외선 인체감지 센서와 연결을 해보겠습니다.

센서 뒷면에는 VCC, OUT, GND라고 적혀 있습니다.

연결은 아래와 같이 하려고 합니다.


- VCC : 5V PIN

- OUT : Digtal 2번 PIN

- GND : GND PIN




코드는 아래와 같습니다.


#include <Servo.h> //Servo를 사용

Servo servo; //Servo를 servo로 사용

//Servo motor

int SERVO_PIN = 7; // 서보 모터의 제어 신호를 디지털 7번 핀에 꽂음

int FIRST_ANGLE = 0; // 초기 각도를 0도로 맞춤


//PIR 센서(인체감지센서)

int PIR = 2; // PIR 센서 2번핀으로 연결


//LED 

int LED = 13;


void setup() {

  //Servo motor

  servo.attach(SERVO_PIN); // 디지털 7번 핀 서보모터 초기화

  

  //PIR 센서

  pinMode(PIR, INPUT); //PIR 센서 INPUT -> 출력 값을 받아오기 위함


  //LED

  pinMode(LED, OUTPUT); //LED 핀 OUTPUT 설정

  //Serial 통신

  Serial.begin(9600); // Serial 통신 속도 설정

}


void loop() {

  //Servo motor 작동

  for(int i=0; i<180; i++)

  {

    servo.write(i);

    delay(20);

  }

  // PIR 센서

  int PIR_input = digitalRead(PIR); // PIR 센서 값 읽기

  Serial.println(PIR_input); // 센서 값 시리얼 모니터에 출력


  if(PIR_input==1) //PIR 센서 값이 1이면 LED 키고 작동 확인

  {

    digitalWrite(LED,HIGH);

  }

  else

  {

    digitalWrite(LED,LOW);

  }

}


위와 같이, 코딩을 하면 웬만한 센서들을 제어할 수 있습니다.

이상으로, 츄르 사려고 코딩하는 집사 코집사였습니다!

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기