3-3. 자유낙하 운동 - 충격 감지 센서 연결하기

목표
자유낙하운동 실험을 위한 적외선 센서와 충격 감지 센서 작동 시키기
실험 목표
실험 도구
회로 만들기
코드 작성하기
코드 순서도로 이해하기
실험 진행 방법
실험 결과


실험 목표

설명
충격 감지 센서 작동을 확인하고 충격이 감지되었을 때 시간을 측정해보겠습니다.

실험 도구


회로 만들기
- 아두이노를 PC에 연결하여 포트설정이 되어 있는지 확인합니다.
- 아두이노 적외선 감지 센서 GND, VCC(5V), OUT(3번 핀)에 연결합니다.
- 아두이노 충격 감지 센서 GND, VCC(5V), D0(2번 핀)에 연결합니다.
- 아두이노 스케치에 코딩 후 업로드를 클릭해 시간 기록 기능이 작동하는지 확인합니다.


코드 작성하기
코드 에디터
#include <HuemonelabKit.h>
double start_time;
double end_time;
double elapsed_time;
IRSensor ir(3);
ShockSensor shock(2);
void setup() {
Serial.begin(9600);
shock.callibrate(false);
}
void loop() {
int irvalue = ir.read();
int shockvalue = shock.read();
if (irvalue == 1) {
start_time = millis();
}
else if (shockvalue == 1) {
end_time = millis();
elapsed_time = (end_time - start_time) / 1000;
Serial.print("감지된 시간: ");
Serial.print(elapsed_time, 3);
Serial.println(" 초");
delay(1000);
}
}
입력
실행 결과
이 곳에 결과가 표시됩니다.

설명
3~5번
적외선 감지 센서를 21번 핀에 연결합니다.
6번
3번 핀에 적외선 센서를 연결합니다.
7번
2번 핀에 충격 감지 센서를 연결합니다.
14번
적외선 감지 센서의 데이터를 변수 irvalue에 저장합니다.
15번
충격 감지 센서의 데이터를 변수 shockvalue에 저장합니다.
16번
적외선 감지 센서의 값이 1인 경우(감지가 시작된 경우)
17번
현재 시간을 감지 시작 시간으로 저장합니다.
19번
충격 감지 센서의 값이 1인 경우(감지가 종료된 경우)
20번
현재 시간을 감지 시작 시간으로 저장합니다.
21번
감지 시간(경과 시간)을 계산합니다.
23번
감지 시간의 3번째 자릿수까지 출력됩니다.

코드 순서도로 이해하기


실험 진행 방법
- 회로 구성과 소스 코드 작성을 완료합니다.
- 소스 코드를 업로드합니다.
- 적외선 센서 앞에 물체를 가져다 대고 물체 인식 LED에 불이 들어오는지 확인합니다.
- 충격 감지 센서에 충격을 줍니다. 너무 과도한 충격을 주지 않도록 주의해주세요.
- 물체가 인식된 시간을 시리얼 모니터로 확인합니다.

실험 결과


물체 인식이 안될 때!
충격 감지 LED
- 충격이 인식되었을 때 켜집니다.
가변저항
- 물체 감지 LED에 불이 들어오지 않을 때 가변저항을 왼쪽 또는 오른쪽으로 돌려 감도를 수정합니다.