반응형
250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
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 26 27 28 29 30
Archives
Today
Total
관리 메뉴

폴크(FOLC)

아두이노 - 적외선 센서 본문

자유 게시판 - 마이크로 컨트롤러

아두이노 - 적외선 센서

folcjin 2022. 3. 22. 10:31
728x90
반응형

# 발광부에서 출력된 적외선이 물체에 반사되어 되돌아 수광부에 수신
   > 발광부는 LED, 수광부는 트랜지스터
   > 수광부에 적외선이 수신되면 트랜지스터가 전류가 흐를 수 있는 상태로 전환
      - 수신된 적외선 량에 따라서 전류량이 달라져서 출력되는 전압값의 변화로 거리 계산 

# 측정 범위
   > 범위 : 20mm ~ 300mm
   > 각도 : 35°
   > 감도 : 가변 저항으로 조절 가능

   > 전원 : DC 3.3V ~ 5V
   > 크기 : 48mm * 14mm
   > 무게 : 18~65g

# 측정 방식
   > 아날로그 방식 : 아날로그 신호 출력 제어 ( voltage 값으로 표현 )
   > 디지털 방식 : 디지털 신호 출력 제어 ( 0, 1로 표현 )

# 연결 방법
   > 총 4개 핀이 있으며 2개는 전원부 ( VCC, GND ), 1개는 A0(아날로그), 1개는 2(디지털)
   > VCC-5V, GND 그리고 SIGNAL-ANALOG IN 쪽에 0번

# 거리 계산
   > datasheet 에 나와있는 센서의 반응에 대한 전압 관련식을 구해야 한다.

센서에서 출력되는 대략적인 전압/거리 상관곡선

상기 전압 대비 거리의 상관곡선을 ( 1 / cm ) 형태로 변경하면 오른쪽 그래프와 같이 변경된다. 대략적으로 직선의 방정식을 만들어 그 수식을 통해서 거리를 예측하도록 한다. ( 정확할 수는 없다. )
   > MIN Voltage - 0.4V : 0.01 (100cm)
   > MAX Voltage -
3.0V : 0.14 (7.14cm)
   > 측정 전압값을 0 ~ 5V 로 스케일 조정하고 Gain 과 Offset 을 적용한다.
      - Gain : (0.14cm-0.01cm) / ( 3.0V - 0.4V)
      - Offset : 0.01cm

# 소스 코드
#define  DATAPIN   A0

void setup()
{
   pinMode(DATAPIN, INPUT);
   Serial.begin(9600);
}

void loop()
{
   int result = analogRead(DATAPIN, 0, 1023, 0, 5000); // 0mV~5000mV (0V~5V) 사이 값으로 변환
   int distance = ((result * 0.05) + 0.01) * 10; // 읽어들인 Voltage 값을 거리값(단위: mm)로 변환
   Serial.print(distance);
   Serial.print(" mm");
   delay(1000);
}

728x90
반응형
사업자 정보 표시
사업자 등록번호 : -- | TEL : --