[아두이노 강좌] 13. PIR 모션 인식 디지털 센서 사용하기 / 디지털 신호 입력받기 (2)
개요
앞에서 배운 내용을 바탕으로 아두이노와 디지털 신호를 사용하는 센서를 연결하여 움직 임을 감지해보도록 하겠습니다.
센서란 무엇일까?
센서(Sersor)는 '감지기'라는 의미를 가지며, 움직임이나 소리, 거리, 빛 따위의 물리량을 구한 후 전기 신호로 변환하는 소자 또는 장치를 말합니다. 쉽게 말해 감지하고, 전기신호로 바꿔 알려준다는 겁니다. 여기서 말하는 전기 신호는 디지털 혹은 아날로그 신호를 말하며, 이번에 사용할 PIR 모션 인식 센서는 움직임을 감지한 후 디지털 신호로 변환해줍니다. 그림1. 여러가지 센서들
근적외선 인체 모션 센서
PIR 모션 센서는 적외선(빛)을 통해 움직임을 감지합니다. 감지 각도 내에 빛의 변화가 있을시 HIGH(1)의 신호를 출력하며, 움직임이 없을 경우 LOW(0) 신호를 출력합니다. 모듈의 내부에는 아래 그림과 같은 센서가 내장되어 있으며, 외부 렌즈는 감도 각도를 넓혀주는 역할을 합니다. 그림2. PIR 모션 인식센서
센서는 하단부에 위치한 3개의 핀과 2개의 가변부를 통해 조작할 수 있습니다. 각 핀과 가변부의 기능은 다음과 같습니다. 그림3. 센서 조작부
아두이노로 디지털 센서 사용하기
이제 본격적으로 아두이노와 PIR센서를 사용해보도록 하겠습니다. 결과물을 미리 말씀 드리자면, 움직임이 감지되면 LED가 켜지고, 그렇지 않다면 LED가 꺼지는 예제입니다. 자, 그럼 준비물을 챙겨봅시다.
준비물
회로도 연결
PIR센서는 디지털 2번핀에 연결해줍니다. (5V, GND)
프로그램 코드(3) int LED = 3; // 정수형 변수 LED를 생성하고 3을 대입한다. int PIR = 2; // 정수형 변수 PIR를 생성하고 2를 대입한다. int val = 0; // 정수형 변수 val를 생성하고 0을 대입한다. void setup() { pinMode(LED, OUTPUT); // LED(3)핀을 출력모드로 설정 pinMode(PIR, INPUT); // PIR(2)핀을 입력모드로 설정 } void loop() { val = digitalRead(PIR); // val에 PIR(2)핀의 입력 값을 저장 if (val == HIGH) { // 만약 val이 HIGH(1)이라면, digitalWrite(LED,HIGH); // LED(3)핀에 HIGH 신호를, } else { // 그게 아니라면 digitalWrite(LED, LOW); // LED(3)핀에 LOW 신호를. } }
프로그램 해석 val라는 변수에 PIR센서에서 출력되는 값을 저장하고, 그 값에 따라 LED에 변화를 주는 프로그램입니다. 결과적으로 움직임이 감지되면 LED가 켜지며, 아무것도 감지되지 않는 다면 LED는 켜지지 않습니다.
링크바로가기: https://smartstore.naver.com/mechasolution_com/products/2855891646
|