적외선 센서를 읽어 보자.
1) 적외선 센서의 기능
흰색 물체에 대한 거리에 따른 센서값의 변화를 대략적으로 나타낸 그래프이다. 적외선 센서는 발광부와 수광부가 분리되어 있기 때문에 아래 그래프에서와 같이 지나치게 가까운 곳의 물체는 적외선이 반사되어 수광부로 들어오는 각도가 맞지 않아서 오히려 센서값이 줄어드는 구간이 생기는 것을 알 수 있다. 또한 15cm 이상 떨어진 물체는 거의 감지할 수 없다.
연결된 신호선의 기능들
| - SIG1 : Low신호를 유지해야 함.
- GND
- ADC : IR 수광부에서 감지한 값을 아날로그 신호로 출력
- VCC ( 3.3V )
- SIG2 : High신호를 주면 IR LED를 켤 수 있음.
|
보드에는 4개의 포트로 구분하여 IR센서를 꽂아야한다.
보드에 연결할 때오 주의를 해야 한다. 꽂는 곳이 네 곳이 있는데 회색선이 빨간 색 LED 쪽 (USB 쪽)으로 가야 한다.
2) 적외선 센서의 스케치 예제 프로그램
아두이노 IDE | [파일]->[예제]->[OpenCM9.04]->[06. Sensors]->[OLLO_IR_Read] |
OpenCM IDE | [파일]->[예제]->[08. Sensors]->[OLLO_IR_Read] |
3) IR센서의 포트 수정 소스 코드
다음 소스코드에서 빨깐 색 숫자를 연결한 IR 센서의 ID 값과 일치 시킨다. 다운로드 해서 실행해보자.
#include <OLLO.h>
OLLO myOLLO;
void setup() { myOLLO.begin(1, IR_SENSOR); //IR Module must be connected at port 1. }
void loop() { SerialUSB.print("IR Sensor ADC = "); SerialUSB.println(myOLLO.read(1, IR_SENSOR)); //read ADC value from OLLO port 1 delay(60); } |
4) 실험 결과
센서를 물체에 멀리 했다가 가까이 했다가, 움직여 본다. 그리고 값이 어떻게 변하는지 관찰한다.
5) 2개의 IR 센서값 읽기
- 2 개의 센서를 동시에 읽어 시리얼 모니터에 출력하기
- 한줄로 출력하기
IR Sensor ADC1 = 123, IR Sensor ADC2 = 345
IR Sensor ADC1 = 123, IR Sensor ADC2 = 345
IR Sensor ADC1 = 123, IR Sensor ADC2 = 345
...
6) IR센서를 이용해서 거리측정하기
센서를 3 개를 모두 부착하여 각각 동작을 체크해 본다. 지연(delay)속도를 조절하여 숫자를 읽을 수 있도록 한다.
프로그램을 수정해서 동시에 3개의 센서 값을 읽어야 한다.
시리얼모니터 출력: IR Sensor ADC 1번 = 242, 2번 = 354, 3번 = 120
다음 실험을 측정해보자. 반사 물체와 거리에 따른 센서 값 알아보자.
반사할 물체 | 센서번호 | 1cm 3cm 6cm 9cm 12cm (거리) |
손바닥 | 1 번 |
|
책상 | 2 번 |
|
지우개 | 3 번 |
|
기타 | 4 번 |
|
7) 센서값을 이용하여 LED 깜박이는 속도를 조절하기
7) 센서값을 입력받아 거리를 출력하시오. (3번 포트와 4번 포트 2개 포트로 동시에 거리 측정하기)