아두이노 - 초음파 센서
# 측정 범위
> 범위 거리: 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);
}