안녕하세요 대짜이찐입니다.
이번시간에는 아두이노로 초음파센서(Ultra Sonic Sensor)를
사용해보는 시간을 가져보겠습니다.
초음파란 사람이 들을 수 있는 가청 범위를 넘어서는 주파수를 가진 소리입니다.
건강한 성인의 경우 20kHz까지의 소리를 들을 수 있으므로,
사람이 들을 수 없는 20kHz이상의 주파수를 가진 소리를 초음파라고 합니다.
HC-SR04 초음파 센서는 수신부와 송신부로 이루어져 있습니다.
송신부에서 초음파를 쏘아 올리고 벽 혹은 물체에 반사되어 오는
초음파를 수신부에서 인식합니다. 이 때 보낸 시간과 반사되어 돌아온 시간을
측정하여 거리를 계산할 수 있습니다.
위의 이미지는 데이터시트에서 HC-SR04의 스펙 부분입니다.
+5V를 사용하고 2~400cm까지 측정이 가능하네요
스펙에 적혀있는대로 측정 각도가 30도 정도 입니다.
15도 이하에서 효과적인 각도인걸 확인 가능합니다.
다만 직선이 아닌관계로 측정범위에 오차가 발생 할 수는 있습니다.
이 경우 여러번 측정하여 평균값을 내면 오차를 줄일 수 있습니다.
아두이노
|
HC-SR04
|
비고
|
5V
|
Vcc
|
Power
|
GND
|
GND
|
Ground
|
D8
|
Trig
|
Trigger
|
D9
|
Echo
|
Echo
|
-dealyMicroseconds()함수는 매개변수에 지정된시간(마이크로 초)동안 프로그램을 멈추는 함수입니다. delayMicroseconds(멈출 마이크로 초)로 사용가능합니다.
-pulseIn()함수는 지정된 핀에서 펄스(HIGH 또는 LOW)를 읽습니다.
예를 들어 value가 HIGH이면, pulseIn()은 핀이 HIGH가 될 때까지 기다리고,
타이머를 시작하며 핀이 LOW가 될 때 까지 기다리고 타이머를 멈춥니다.
펄스의 길이를 마이크로초 단위로 반환합니다.
정해진 timeout 안에 펄스가 시작되지 않으면 0을 반환합니다.
10마이크로 초부터 3분까지 길이의 펄스에 대해 동작합니다.
문법은 pulseIn(pin,value) 혹은 pulseIn(pin,value,timeout)으로 동작합니다.
예를 들어 value가 HIGH이면, pulseIn()은 핀이 HIGH가 될 때까지 기다리고,
타이머를 시작하며 핀이 LOW가 될 때 까지 기다리고 타이머를 멈춥니다.
펄스의 길이를 마이크로초 단위로 반환합니다.
정해진 timeout 안에 펄스가 시작되지 않으면 0을 반환합니다.
10마이크로 초부터 3분까지 길이의 펄스에 대해 동작합니다.
문법은 pulseIn(pin,value) 혹은 pulseIn(pin,value,timeout)으로 동작합니다.
0 댓글