일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- preprocessing
- inheritance
- Binary
- mfc
- sensor
- Encapusulation
- length
- Overloading
- Class
- public
- wpf
- APP
- UNO
- atmega328
- parameter
- file access
- digitalRead
- Android
- compare
- Pointer
- Unity
- java
- Read
- flutter
- SERIAL
- Barcode
- memory
- Contour
- aduino
- stream
- Today
- Total
폴크(FOLC)
아두이노 - 초음파 센서 본문
# 측정 범위
> 범위 거리: 2cm – 500cm ( 해상도: 0.3cm )
> 전원 공급 장치: 5V DC
> 대기 전류: <2mA
> 유효 각도: <15°
# 측정 방식
> Pulse 로 제어
- 최초 LOW 상태에서 초기화 펄스를 HIGH 상태로 2us 이상 보내고
- LOW 상태로 10us 이상 보낸 후, HIGH 상태로 ECHO back 을 기다린다.
- Duration 값을 획득하면 특별한 수식에 의해 Distance 를 계산한다.
# 연결 방법
> 총 4개 핀이 있으며 2개는 전원부 ( VCC, GND ), 1개는 ECHO, 1개는 TRIG
> VCC-5V, GND 그리고 SIGNAL-DIGITAL PWM 쪽에 8번 ECHO, 9번 TRIG와 접점
# 소스 코드
#define TRIG 9 // 초음파 송신 핀
#define ECHO 8 // 초음파 수신 핀
void setup()
{
Serial.begin(9600);
// 핀 모드 설정
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
}
void loop()
{
// 시작
digitalWrite(TRIG, LOW);
// 초기 상태 설정
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
// 대기 상태
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
// ECHO back - 수신된 초음파의 시간
duration = pulseIn (ECHO, HIGH);
// 거리 계산을 위해서 단위를 맞춘다.
// 소리의 속도 m/s , pulse 의 분해능이 us, 왕복이므로 거리는 2배
float unit_mm = 340.0 / 1000000.0 / 2.0;
//float unit_cm = 3400.0 / 1000000.0 / 2.0;
distance_mm = duration * unit_mm / 1000;
//distance_cm = duration * unit_cm / 100;
Serial.print("Distance (mm) : ");
Serial.print(distance_mm);
delay(1000);
}
'자유 게시판 - 마이크로 컨트롤러' 카테고리의 다른 글
아두이노 - 모션 감지 센서 (0) | 2022.03.16 |
---|---|
아두이노 - 가스 센서 (0) | 2022.03.16 |
아두이노 개발 환경 구성 (0) | 2022.03.16 |
아두이노란? (0) | 2022.03.15 |
아두이노 - DHT11 센서 (0) | 2022.03.15 |