코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2014-10-29 14:12:08
원거리 적외선 거리 센서의 사용법을 알아보고 다양한 환경 및 분야에서 활용해 봅시다.
현재 내 위치에서부터 다른 곳까지의 거리를 측정하는 일은 상황에 따라 유용한 값으로 쓰일 수 있다.
자동차에 붙여 주차나 사각지대의 사람이나 자동차로부터 위험한 상황을 방지할 수 있고
인공지능 로봇에 장착하여 앞의 장애물이 있으면 인지하고 이를 피할 수 있게 도와줄 수도 있다.
또 각종 스마트기기에 장착하여 거리에 따라 바뀌는 값을 하나의 기기 제어 신호로 사용할 수도 있다.
이번에 사용할 적외선 센서는 평범한 적외선 센서보다 더 먼거리까지 측정 가능한 원거리형 적외선 거리 측정 센서이다.
(원거리형이기 때문에 실질적으로 자동차 쪽에 쓰이는게 유용하다.)
간단하게 적외선 거리 센서를 연결해보고 사용해 보자.
NO | 부품명 | 수량 | 상세설명 |
1 | 아두이노 | 1 | 오렌지 보드 |
2 | 적외선 센서(원거리 형) | 1 | Sharp사 GP2Y0D21YK0F |
3 | 3선 커넥터 | 1 |
부품명 | 아두이노 | 적외선 센서(원거리 형) | 3선 커넥터 |
부품 사진 |
적외선 거리 센서는 적외선을 방출하는 Light emitter부분과 쏘아 올린 적외선이 다시 되돌아올 때 그 빛을 다시 감지하는 Light ditector부분으로 구성되어 있다.
출처 - Sharp Datasheet
아날로그 상태일때 전압값은 거리가 10cm이하로 떨어질 경우 오히려 전압값이 감소하고
10cm부근에서 최대의 전압값을 갖다가 거리가 멀어질수록 다시 전압이 감소하는 형태를 띄고 있다.
그렇기 때문에 10cm이하의 거리측정을 할때에는 오히려 값이 증가하기 때문에 이 센서는 근거리 거리 측정에는 부적합하다.
데이터 시트에는 10cm~80cm까지의 거리 측정이 가능하다고 나와있지만 주변 환경에 따른 변수가 많기 때문에
실질적으로 신뢰가 가능한 거리는 10cm부터 30-40cm까지 거리정도만 신뢰가 가능하다.
//아날로그 0번핀 사용
int pinNum = A0;
//거리값 변수 생성
int distance = 0;
void setup() {
//시리얼 통신 초기화
Serial.begin(9600);
//A0번핀을 INPUT으로 설정
pinMode (pinNum, INPUT);
}
void loop() {
//적외선 거리 센서로 부터 측정값을 읽어온다
int data = analogRead(pinNum);
//측정한 volt값을 0에서 5000사이의 값으로 변환
int volt = map(data, 0, 1023, 0, 5000);
//측정값을 통해 거리를 계산
distance = (21.61/(volt-0.1696))*1000;
//거리 출력
Serial.println(distance);
//지연시간을 500ms로 설정
delay(500);
}
적외선 거리 센서로 부터 아두이노는 적외선 신호 값을 아날로그 데이터 형태로 입력받는다.
입력받은 적외선 신호값을 물리적인 값 변환을 통해 거리값으로 변환시킨다.
kocoafabeditor
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!