» [아두이노] 인체 감지 센서 제어

[아두이노] 인체 감지 센서 제어

by DUBUKIMCH

설정 방법

  • 시계 방향으로 돌리면 딜레이가 길어지고 감도가 낮아져서 거리 감지가 줄어들고 반시계 반향은 딜레이가 짧아지고 감도가 높아진다.
  • 회로 연결 방법

이 코드는 아두이노에서 인체 감지 센서를 제어하여, 사람이 감지되었는지 여부를 Serial Monitor에 출력하는 예제입니다. 인체 감지 센서는 PIR(Passive Infrared) 센서로, 적외선 변화를 감지해 사람이 움직일 때 HIGH 신호를 출력합니다. 이를 통해 사람이 센서 범위 내에 있는지를 감지할 수 있습니다.

코드 설명

  1. 변수 선언 및 초기화
int sensor = 7;
int value = 0;

  • sensor: 디지털 핀 번호로, 핀 7에 인체 감지 센서를 연결합니다.
  • value: 감지된 값을 저장하는 변수로, 이후 loop() 함수 내에서 센서 상태를 저장하고 확인하는 데 사용됩니다.

setup() 함수

void setup() 
{
    pinMode(sensor, INPUT);
    Serial.begin(9600);
}

  • pinMode(sensor, INPUT);: 핀 7을 입력 모드로 설정하여, 센서의 감지 신호를 읽어올 수 있게 합니다.
  • Serial.begin(9600);: 아두이노와 컴퓨터 간 시리얼 통신을 시작하여 초당 9600bps의 속도로 데이터를 Serial Monitor에 출력할 수 있게 합니다.

loop() 함수

void loop() 
{
    value = digitalRead(sensor);

    if (value == HIGH) 
    {
        Serial.println("There is a person");
    }
    else 
    {
        Serial.println("There is no person");
    }
}

    • value = digitalRead(sensor);: sensor 핀에서 디지털 값을 읽어옵니다. 이 값은 HIGH(1) 또는 LOW(0)일 수 있으며, 사람이 감지된 경우 HIGH, 감지되지 않은 경우 LOW로 설정됩니다.
    • if (value == HIGH): 센서 값이 HIGH일 때, 사람이 감지된 것으로 간주하고 "There is a person" 메시지를 Serial Monitor에 출력합니다.
    • else: 센서 값이 LOW일 경우, 사람이 감지되지 않았음을 의미하며 "There is no person" 메시지를 출력합니다.

동작 원리

  1. PIR 센서 기본 동작:
    • PIR 센서는 주변 적외선의 변화를 감지하여, 사람이 범위 내에 들어왔을 때 적외선이 변화함에 따라 HIGH 신호를 출력합니다. 사람이나 동물이 움직이면, 그에 따른 적외선 변화가 감지됩니다.
  2. PIR 센서와 아두이노:
    • 아두이노의 디지털 핀을 통해 PIR 센서로부터 신호를 받습니다. 아두이노는 digitalRead()를 사용하여 센서의 감지 상태를 읽어들입니다.
    • 센서가 사람을 감지하면 HIGH 신호가 아두이노로 전달되고, 사람이 감지되지 않으면 LOW 신호가 전달됩니다.
  3. 시리얼 출력:
    • 감지 여부에 따라 Serial Monitor에 “There is a person” 또는 “There is no person” 메시지를 출력하여, 사람이 감지되었는지 실시간으로 확인할 수 있습니다.

동작 예시

  • 사람이 센서의 감지 범위에 들어오면, value가 HIGH로 설정되고 “There is a person”이라는 메시지가 출력됩니다.
  • 감지 범위를 벗어나면, value가 LOW로 바뀌며 “There is no person”이라는 메시지가 출력됩니다.
int sensor = 7;                                 // Sensor input value pin 7
int value = 0;                                  // Set value variable to be used in loop

void setup() 
{
    pinMode(sensor, INPUT);                     // Set pin mode for sensor input value
    Serial.begin(9600);                         // Start serial communication at 9600 bps
}

void loop() 
{
    value = digitalRead(sensor);                // Store digital sensor value in variable value

    if (value == HIGH) // if value is high
    {
        Serial.println("There is a person");    // Display message on Serial Monitor
    }
    else // if not
    {
        Serial.println("There is no person");   // Display message on Serial Monitor
    }

}

이 코드를 통해, 간단하게 아두이노와 인체 감지 센서를 사용하여 사람이 감지되었는지를 확인하고 시리얼 모니터에 결과를 출력할 수 있습니다.

You may also like

Leave a Comment

error: Content is protected !!