중급 예제

약간은 익숙하시거나 익숙해지셨나요? 그렇다면 조금더 깊이 다뤄볼까요?

라인 센서

2014-10-02 10:46:06

개요


라인 센서는 빛은 조사 후 반사되는 빛의 세기에 따라 출력 전압이 변화하는 센서입니다.
이것은 주로 로봇, 자동차 등의 많이 쓰입니다. 위 동영상 처럼 라인을 감지할 때 사용합니다.

IR LED을 빛내서 되돌아오는 빛의 양을 통해 라인을 감지할 수 있습니다.
예를 들어 검은 색 라인인 경우 되돌아 빛의 양이 적음을 통해서 옆에 있는 하얀색 바탕과 구분합니다.
이로써 움직임을 통제할 때, 원하는 경로를 지정할 때 사용할 수 있습니다.

본문에서는 qre1113 / analog을 이용하여 라인을 감지한 후 
라인인 경우 LED을 밝혀 보겠습니다.

 

 

 

 

미리보기 동영상

 

부품목록

NO 부품명 수량 상세설명
1 오렌지 보드 1  
2 브레드 보드 1  
3 라인 센서 1 QRE1113 / analog 타입을 사용하였습니다.
4 LED 2 다른 두 가지 색을 준비하세요.
5 330 ohm 저항 2  
6 점퍼 케이블 7  

 

 

부품명 오렌지 보드 브레드 보드 LED 330 ohm 저항 점퍼 케이블
사진 X1 x1 x2 x2 x7

 

 

 

 

부품명 라인 센서
사진 x1

 

 

하드웨어 Making

회로도



브레드 보드 레이아웃
 

소프트웨어 Coding

다음 스케치를 아두이노에 업로드 하세요.
 

/*
 라인 센서 투토리얼 스케치
 본 스케치는 여러 커뮤니티를 참고하여 kocoafab에서 작성하였습니다.
 누구나 무료로 사용할 수 있습니다.
*/

int qre1113 = A0;    //QRE1113 라인센서
int red = 9;         //red LED
int green = 10;      //green LED

void setup() {
  pinMode(red, OUTPUT);
  pinMode(green, OUTPUT);
  Serial.begin(9600);
}

void loop() {

  while(analogRead(qre1113) > 800 ) {   //QRE1113을 통해 읽어온 값이 800보다 큰 동안
    digitalWrite(green, HIGH);          //초록 LED를 ON
    digitalWrite(red, LOW);
    Serial.println(analogRead(qre1113));
  }
  
  while (analogRead(qre1113) < 800 ) {  //QRE1113을 통해 읽어온 값이 800보다 작은 동안
    digitalWrite(green, LOW);           
    digitalWrite(red, HIGH);            //빨간 LED를 OFF
    Serial.println(analogRead(qre1113));
  }
}

소프트웨어 및 하드웨어 설명

1. 스케치 설명

QRE1113는 반사되는 빛의 양에 따라 다른 출력 전압을 나타냅니다.
이 출력 값의 범위를 시리얼 모니터의 출력해 보는 방법 등을 이용해 범위를 알아내고 
그 값을 사용하면서 스케치를 작성해봅시다.
 

void loop() {

  while(analogRead(qre1113) > 800 ) {   //QRE1113을 통해 읽어온 값이 800보다 큰 동안
    digitalWrite(green, HIGH);          //초록 LED를 ON
    digitalWrite(red, LOW);
    Serial.println(analogRead(qre1113));
  }


스케치를 업로드 하시고 센서를 검은색 물체 위에 가져 놓으세요.
그리고 시리얼 모니터를 확인하시면 검은색 물체 위에 놓은 경우 800 이상의 값을
하얀색 물체 위에 놓은 경우 100이하의 값을 출력하시는 것을 알게 되실 것입니다.

이 값을 이용하여 800보다 큰 경우에는 초록색 LED를 켜주시고
작을 경우 빨간 LED가 켜질 수 있도록 작성하였습니다.

다른 센서를 값에 따라 작동하게 하고 싶은 신 분은 while구문 안을 수정해주세요.
 

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

라인센서, 아두이노, 오렌지보드