일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- UNO
- Pointer
- APP
- inheritance
- Barcode
- stream
- public
- flutter
- Android
- parameter
- Read
- wpf
- length
- atmega328
- Binary
- mfc
- java
- memory
- Contour
- Unity
- digitalRead
- Class
- SERIAL
- compare
- Overloading
- aduino
- preprocessing
- Encapusulation
- sensor
- file access
- Today
- Total
폴크(FOLC)
아두이노 - 적외선 센서 본문
# 발광부에서 출력된 적외선이 물체에 반사되어 되돌아 수광부에 수신
> 발광부는 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);
}
'자유 게시판 - 마이크로 컨트롤러' 카테고리의 다른 글
아두이노 - 라인 추적 센서 (0) | 2022.03.24 |
---|---|
아두이노 - 기울기 센서 (0) | 2022.03.23 |
아두이노 - 진동 센서 (0) | 2022.03.22 |
아두이노 - 조도 센서 (0) | 2022.03.20 |
아두이노 - 화재 감지 센서 (0) | 2022.03.20 |