아두이노로 적외선 센서 이용하기

적외선 센서란

적외선 감지 센서에 대한 이미지 검색결과

적외선 센서는 크게 두가지 모듈이 상호작용한다. 바로 적외선LED(IR-LED)와 포토트랜지스터(Phototransistor)이다. 먼저 IR-LED(적외선 LED)는 적외선을 방출하는 모듈이다. 적외선을 방출하는 곳이 발광부, 인식하는 곳이 수광부라고 보면 된다.

포토트랜지스터는 IR-LED가 방출한 적외선이 물체에 반사되어 되돌아오는 양을 감지하는 역할을 담당한다. 예를 들어 물체가 적외선 센서로 부터 멀리 떨어져있다면 반사되어 돌아오는 양이 적을 것이고, 물체가 바로 앞에 가까이 있다면 상당량의 적외선이 반사되어 흡수될 것이기 때문이다. 따라서 흡수되는 적외선의 양이 많다는 것은 물체가 점점더 가까워 지고 있다는 것을 의미한다. 이러한 메커니즘을 통하여 적외선 센서는 물체를 감지한다.

이번 시간에는 적외선 센서로 아두이노에서 센서 값을 받아 테스트를 해보자.

준비물

NO부품명수량
1아두이노 UNO R31
2적외선 장애물 감지 센서1
3LED1
4330Ω 저항1
5브레드 보드1
6점퍼 케이블7

회로도

코드

코드 보기

int infrared  = 3;
int led = 6;

void setup() 
{
  pinMode(infrared, INPUT);
  pinMode(led, OUTPUT);

  Serial.begin(9600);
}

void loop() 
{
  // 장애물 감지되면 0, 감지되지 않으면 1 출력
  int state = digitalRead(infrared);

  // 측정된 센서값을 시리얼 모니터에 출력
  Serial.print("Infrared = ");
  Serial.println(state);

  // 측정된 센서값이 0(감지)면 아래 코드 실행
  if(state == 0)
  {
    // LED ON
    digitalWrite(led, HIGH);
    // 경고 메세지를 시리얼 모니터에 출력
    Serial.println("Warning");
  }

  // 측정된 센서값이 0이 아니면 아래 코드 실행
  else
  {
    // LED OFF
    digitalWrite(led, LOW);
    // 안전 메세지를 시리얼 모니터에 출력
    Serial.println("Safe");
  }
}