본문 바로가기
Arduino(아두이노) 활용 강좌

Arduino Uno 로 GP2Y0A21YK0F 적외선 거리측정센서를 사용해서 거리를 측정해 보고 LED 제어해 보기

by 오마이엔지니어 2018. 3. 29.
반응형

Arduino Uno 로 GP2Y0A21YK0F 적외선 거리측정센서를 사용해서 거리를 측정해 보고
거리에 따라서 LED의 밝기를 제어해 보는 프로젝트 입니다

아두이노로 초음파 센서나 적외선 센서 등 다양한 센서를 사용해서 거리를 측정할 수 있습니다
그중에 적외선 거리 측정센서를 사용해서 거리를 측정해 보는 방법에 대해서 알아보겠습니다

적외선 거리측정 센서는 측정하려는 물체로 적외선을 송신하고 수신부에서 이를 받아서 흐르는 전류와 전압을 토대로
물체에 반사되어 돌아오는 시간을 계산하고 이를 통해 거리를 알 수 있는 센서 입니다


GP2Y0A21YK0F  적외선 거리측정센서는 PSD (position sensitive detector), IRED (infrared emitting diode) 및 신호 처리 회로의
통합 된 조합으로 구성된 적외선 거리 측정 센서 모듈입니다
삼각 측량 방법을 사용해 물체의 반사율, 화견 온도 침 작동 시간의 다양성이 거리 검출에 쉽게 영향을 미치지 않습니다
모듈은 감지 거리에 해당하는 전압을 출력합니다, 따라서 근접센서로도 사용할 수 있습니다
IR 송신기(IR LED)와 IR 수신기(트랜지스터)로 구성되어 있으며, 32KHz 범위의 펄스를 생성하며, 응답시간은 39ms 입니다

<GP2Y0A21YK0F 적외선 거리측정 센서 이미지>



사용된 부품
아두이노 우노 (Italy)
GP2Y0A21YK0F 적외선 거리측정 센서
점퍼케이블
미니 브래드 보드
막대저항 220 Ohm - 2개
5mm LED - 블루, 그린


구성 배선도-거리에 따른 출력값 변화 확인해 보기


구성 배선도-거리에 따른 LED 밝기 제어해 보기




회로도

circuit.jpg


사용된 예제파일

Distance.txt

Distance LED.txt


사용된 라이브러리

DistanceGP2Y0A21YK.zip


라이브러리 추가 방법은 Arduino IDE 설치하기 포스팅을 참조해 주세요

테스트방법
첫번째 첨부된 Distance 예제는 아주 간단한 예제이며 아두이노 IDE 시리얼 모니터로 거리측정 센서의 아날로그 출력값을 확인할 수 있습니다
장애물을 만들어서 거리를 조정해 보면 거리에 따라 출력값이 변하는것을 확인할 수 있습니다
자를 놓고 거리에 따른 출력값을 체크해 가면서 대략적인 거리를 확인할 수 있습니다

두번째 첨부된 Distance LED 예제는 거리에 따라 배선된 LED의 밝기가 변하는것을 확인할 수 있습니다
장애물이 일정간격 안으로 가까이 오면 적색 LED의 밝기가 밝아지고, 일정간격 밖으로 떨어지면 녹색 LED의 밝기가 밝아집니다

--------------------------------------------------------------------------------------------------------------------------------
#include <DistanceGP2Y0A21YK.h>

int ledGreen = 9;
int ledRed = 10;
int proximity = 0;
--------------------------------------------------------------------------------------------------------------------------------

위 첨부 된 예제코드를 확인해 보면 알수 있듯이 DistanceGP2Y0A21YK.h 라이브러리를 사용합니다

int ledGreen = 9;
int ledRed = 10;
int proximity = 0;

핀 설정은 위와 같습니다 그린이 9번, 레드가 10번 입니다 센서는 A0 입니다

-------------------------------------------------------------------------------------------------------------------------------
Serial.println(value);
int redValue = map(value,0,1023,0,255);

int greenValue = map(value,0,1023,255,0);
-------------------------------------------------------------------------------------------------------------------------------

위 첨부 된 예제코드를 확인해 보면 알수 있듯이 아날로그 1023 중 255 기준으로 LED가 설정된 것을 확인할 수 있습니다
원하는 수치로 수정후 테스트 해볼수도 있습니다

Serial.println(value);

문구가 있기 때문에 물론 시리얼 모니터로도 출력값 변화를 확인할 수 있습니다


프로젝트 동영상-거리에 따른 출력값 변화 확인해 보기


프로젝트 동영상-거리에 따른 LED 밝기 제어해 보기


테스트에서는 LED 밝기 변화가 너무 저조해서, 블루와 옐로우 LED를 사용하였습니다
아주 정밀한 거리측정센서는 아니지만 아두이노로 적외선 송수신 방법으로 거리를 측정하는 원리를 확인해 보는데 도움이 됩니다


Distance.txt
0.0MB
circuit.jpg
0.07MB
Distance LED.txt
0.0MB
DistanceGP2Y0A21YK.zip
0.02MB
반응형

댓글