57
설정 방법
- 시계 방향으로 돌리면 딜레이가 길어지고 감도가 낮아져서 거리 감지가 줄어들고 반시계 반향은 딜레이가 짧아지고 감도가 높아진다.
- 회로 연결 방법
이 코드는 아두이노에서 인체 감지 센서를 제어하여, 사람이 감지되었는지 여부를 Serial Monitor에 출력하는 예제입니다. 인체 감지 센서는 PIR(Passive Infrared) 센서로, 적외선 변화를 감지해 사람이 움직일 때 HIGH 신호를 출력합니다. 이를 통해 사람이 센서 범위 내에 있는지를 감지할 수 있습니다.
코드 설명
- 변수 선언 및 초기화
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"
메시지를 출력합니다.
동작 원리
- PIR 센서 기본 동작:
- PIR 센서는 주변 적외선의 변화를 감지하여, 사람이 범위 내에 들어왔을 때 적외선이 변화함에 따라 HIGH 신호를 출력합니다. 사람이나 동물이 움직이면, 그에 따른 적외선 변화가 감지됩니다.
- PIR 센서와 아두이노:
- 아두이노의 디지털 핀을 통해 PIR 센서로부터 신호를 받습니다. 아두이노는
digitalRead()
를 사용하여 센서의 감지 상태를 읽어들입니다. - 센서가 사람을 감지하면 HIGH 신호가 아두이노로 전달되고, 사람이 감지되지 않으면 LOW 신호가 전달됩니다.
- 아두이노의 디지털 핀을 통해 PIR 센서로부터 신호를 받습니다. 아두이노는
- 시리얼 출력:
- 감지 여부에 따라 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
}
}
이 코드를 통해, 간단하게 아두이노와 인체 감지 센서를 사용하여 사람이 감지되었는지를 확인하고 시리얼 모니터에 결과를 출력할 수 있습니다.