시계 방향으로 돌리면 딜레이가 길어지고 감도가 낮아져서 거리 감지가 줄어들고 반시계 반향은 딜레이가 짧아지고 감도가 높아진다.
회로 연결 방법
이 코드는 아두이노에서 인체 감지 센서를 제어하여, 사람이 감지되었는지 여부를 Serial Monitor에 출력하는 예제입니다. 인체 감지 센서는 PIR(Passive Infrared) 센서로, 적외선 변화를 감지해 사람이 움직일 때 HIGH 신호를 출력합니다. 이를 통해 사람이 센서 범위 내에 있는지를 감지할 수 있습니다.
코드 설명
변수 선언 및 초기화
int sensor =7;int value =0;
sensor: 디지털 핀 번호로, 핀 7에 인체 감지 센서를 연결합니다.
value: 감지된 값을 저장하는 변수로, 이후 loop() 함수 내에서 센서 상태를 저장하고 확인하는 데 사용됩니다.
pinMode(sensor, INPUT);: 핀 7을 입력 모드로 설정하여, 센서의 감지 신호를 읽어올 수 있게 합니다.
Serial.begin(9600);: 아두이노와 컴퓨터 간 시리얼 통신을 시작하여 초당 9600bps의 속도로 데이터를 Serial Monitor에 출력할 수 있게 합니다.
loop() 함수
voidloop() { 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 신호가 전달됩니다.
시리얼 출력:
감지 여부에 따라 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 7int value =0; // Set value variable to be used in loopvoidsetup() {pinMode(sensor, INPUT); // Set pin mode for sensor input value Serial.begin(9600); // Start serial communication at 9600 bps}voidloop() { value =digitalRead(sensor); // Store digital sensor value in variable valueif (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 }}
이 코드를 통해, 간단하게 아두이노와 인체 감지 센서를 사용하여 사람이 감지되었는지를 확인하고 시리얼 모니터에 결과를 출력할 수 있습니다.