관리 메뉴

Kim's Programming

아두이노 라인트레이서 발광 및 수광부 본문

Arduino/Line Tracer

아두이노 라인트레이서 발광 및 수광부

Programmer. 2015. 6. 30. 02:57

라인트레이서는 적외선 발광부에서 빛을 쏘아 선에 반사된 빛을 수광소자가 받는 원리를 이용하여  선을

 

감지합니다. 이런 원리를 할 수 있는 회로도를 보여드리겠습니다.

 

 

 

라인트레이서 발광 및 수광부입니다.

 

발광소자는 항상 전원이 입력되어 항시 켜져 있습니다.

 

발광부는 하부의 선에 반사된 빛을 받아드린 후 그에 알맞은 값을 HIGH 또는 LOW로 출력하지만

 

제가 제작하는 라인트레이서는 ADC값을 이용하여 선을 감지하게 만들 것 입니다.

 

또한 위 회로도에 나와있는 A0, A1, A2, A3은 수광부의 신호를 감지하는 선이며 각 신호선들이 할당된 포트를

 

나타냅니다.

 

이에 해당하는 소스는 다음과 같습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#define sensor_left   A0//leftmost
#define sensor_middle_left A1//left of middle
#define sensor_middle_right A2//right of middle
#define sensor_right  A3//rightmost
 
 
 
void setup()
{
 pinMode(sensor_left, INPUT);
 pinMode(sensor_middle_left, INPUT);
 pinMode(sensor_middle_right, INPUT);
 pinMode(sensor_right, INPUT);
 Serial.begin(9600);
 
}
 
 
 
void loop()
 
{
 
}
 
cs

 

위의 소스에서는 보면 제일 위의 #define 부분은 포트를 할당해 주는 부분이고 PinMode의 INPUT의 의미는 

 

수광 포트에게 "값을 받아드릴 준비를

 

하고 있으세요" 라는 의미를 주는것입니다.

 

또, 다른 라인트레이서의 경우는 적외선 포트를 켜는 것을 

 

ex)

1
2
3
4
5
6
7
8
9
10
#define Infrared_left        A0
 
setup()
 
{
 
 pinMode(Infrared_left, OUTPUT);
 
}
 
cs

와 같이 추가하여 직접 켜는 경우도 있습니다만

 

저의 경우는 전원과 직접 연결하여 사용하였기 때문에 따로 소스를 작성하지는 않았습니다.