【 아두이노 센서#25】 IR 적외선 센서 다루기 ( GP2Y0A41SK )
대표적인 적외선(IR) 센서인 GP2Y0A41SK를 알아보고 거리값을 시리얼 모니터를 통해 출력해보고자 한다.
▶ IR 센서 사양 및 동작 특성
위 그래프는 목적물과의 거리에 따른 출력 신호와의 관계 그래프이다.
거리가 4Cm에서 부터 최고치의 출력을 보여주고 있으며, 거리가 멀수록 신호의 출력값은 그래프 처럼 낮아 진다. 또한 목표물의 색이 회색일(어두운색) 경우 반사율이 18%로 낮지만 흰색일수록(가까울 수록) 반사율이 90%로 높다는 것을 알 수 있다.
▶ 실습 목표 :
1. IR 센서의 작동 방식에 대해 이해할 수 있다.
2. 센서로 부터 얻어 지는 아날로그 값을 디지털값 및 전압값으로 바꾸어 거리값으로 환산할 수 있다.
3. 얻어진 거리값을 시리얼 모니터와 LED로 표시할 수 있다.
▶ 실습 회로도면 1 (기본회로):
(이미지 클릭하면 확대 가능)
▶ 실습 1 :
▶ 실습1. 프로그램 코드 및 설명 :
/* 적외선 센서 (IR sensor) 프로그램 */
/* by RASIno , http://rasino.tistory.com */
// 물체와의 거리가 30cm 이하 일 때만 시리얼 모니터로 거리값을 표시하라
#define sensor A0 // IR 센서의 입력 포트 정의
void setup( ) {
Serial.begin(9600); // 시리얼 통신 시작
}
void loop( ) {
Serial.print("1.sensor:");
Serial.println(analogRead(sensor));
// A/D 값 변환을 위한 5/1024(분해능)을 곱해준다
float volts = analogRead(sensor) * 0.0048828125;
Serial.print("2.volts:");
Serial.println(volts);
int distance = 13 * pow(volts, -1); // pow(x,y):x의 y승
Serial.print("3.distance:");
Serial.println(distance);
delay(1000); // 응답시간을 고려하여 시간지연 한다
if (distance <= 30) {
Serial.println(distance);
}
}
▶ 실습1. 실행영상 :
(전체화면 보기로 보세요)
▶ 아두이노 파일(실습1. 다운) :
▶ 실습 회로도면 2 (확장회로):
(이미지 클릭하면 확대 가능)
※ 센서의 선구분은 색깔로 구분하기 쉽다. LED는 기본적으로 저항을 달아주어야 하나, 장시간이 아닌 간단히 테스트 하는 용도로 사용할 때는 그냥 연결하여도 크게 문제가 되지 않는다.
▶ 실습 2 :
▶ 실습2. 프로그램 코드 및 설명 :
/* 적외선 센서 (IR sensor) 프로그램 */
/* by RASIno , http://rasino.tistory.com */
// 물체와의 거리가 30cm 이하 일 때만 시리얼 모니터로 거리값을 표시하라
const int sensorPin = A0;
const int ledPin = 12;
int sensor = 0;
int value = 0;
void setup( ) {
Serial.begin(9600); // 시리얼 통신 시작
pinMode(ledPin, OUTPUT);
}
void loop( ) {
sensor = analogRead(sensorPin);
if (sensor != value) {
Serial.println(sensor);
value = sensor;
if (sensor < 40) return;
if (sensor > 500) {
digitalWrite(ledPin, LOW);
} else {
sensor = map(sensor, 40, 500, 255, 0);
analogWrite(ledPin, sensor);
}
}
delay(500);
}
▶ 아두이노 파일(실습2. 다운) :
'아두이노 > 2. 아두이노센서' 카테고리의 다른 글
【 아두이노 센서#27】 터치 센서( TTP223B) Touch Sensor 다루기 #1 (0) | 2019.02.08 |
---|---|
【 아두이노 센서#26】 IR 적외선 센서 거리 LED 레벨바 만들기 (0) | 2019.02.07 |
【 아두이노 센서#24】 L298N 모터 모듈을 활용한 초음파센서 회로#1 (2) | 2019.01.22 |
【 아두이노 센서#23】 HC-SR04 초음파 센서 경보회로2 with i2c LCD (9) | 2019.01.21 |
【 아두이노 센서#22】 HC-SR04 초음파 센서 경보회로 with LCD (0) | 2019.01.18 |