2018-08-30

Arduino | 초음파 센서로 거리 측정하기 (2)


아두이노에서 초음파 거리 측정 센서 사용하기


초음파 센서 거리 측정 원리와 공식

다음은 아두이노에서 실습용으로 가장 많이 사용하고 있는 초음파 거리측정 센서이다.





거리측정 방법은 다음 그림과 같이 송신기에서 짧은 펄스를 출력한 다음, 반사되어 오는 펄스를 수신기로 감지한다.



거리를 계산하는 공식은 다음과 같다.



여기에서 t는 펄스 출력 후 감지하기까지 걸린시간이고 c는 소리의 속도이다. 음속 c는 다음과 같다.

c=331.5+0.6*온도

하지만 이 식보다는 근사적으로 온도 15도 일 때를 기준으로 340 m/s 또는 0.034 cm/μs를 사용할 예정이다.

공식에서 θ는 송신기와 수신기가 이루는 각도인데 송신기와 수신기의 거리가 가까우면 거의 0도에 가깝기 때문에 cosθ는 거의 1이 된다. 따라서 거리 계산하는 공식은 다음과 같이 간단하게 쓸 수 있다.

d=t*0.017

단, 이 식은 시간 t는 μs 단위로 입력해야 하고, 거리 d는 cm단위로 출력된다는 것을 주의해서 사용해야 한다.

초음파 센서 연결

초음파 센서와 아두이노의 연결은 다음 회로도와 같이 하였다.




센서의 2번 핀 TRIG는 초음파를 출력하는데 사용하는데 아두이노 디지펄 핀 4번 (D4)에 연결하였다. 3번 핀 ECHO는 초음파를 감지하는데 사용되며 D2에 연결하였다. 

연결된 모습은 다음과 같다.




프로그램은 다음과 같다.

#define TRIG_PIN 2
#define ECHO_PIN 4

void setup() {
  Serial.begin(9600);
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
}

void loop() {
  long echotime;
  float distance;
  // 10us pulse를 TRIG_PIN으로 출력한다.
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);

  // ECHO_PIN으로 반사된 펄스를 입력받고
  // 경과된 시간을 us단위로 echotime 변수에 저장한다.
  echotime = pulseIn(ECHO_PIN, HIGH);
  // 거리를 cm 단위로 출력
  distance = echotime * 0.017;

  // 시리얼 모니터 출력
  Serial.print("Echo time (us): ");
  Serial.print(echotime);
  Serial.print(" Distance (cm): ");
  Serial.println(distance);

  // 1초에 1번씩 반복
  delay(1000);
}


위의 프로그램을 실행한 예는 다음과 같다. 




Arduino | 초음파 센서로 거리 측정하기 (1)

초음파 센서로 거리 측정하기

초음파란?

소리란 공기의 진동을 귀가 감지해서 뇌가 인식하는 것이다. 
인간의 귀는 20 Hz ~ 20,000 Hz 주파수의 공기 진동을 감지할 수 있는데, 
초음파 (ultrasound)란 20,000 Hz 이상 주파수의 공기 진동을 의미한다.
따라서 초음파는 인간이 귀로 들을 수 없는 소리이다.

초음파 활용

초음파는 직진성이 좋고 반사가 잘 되기 때문에 다음과 같은 다양한 용도로 사용되고 있다. 

속도 측정
  • 초음파 유속계, 초음파 유량계, 초음파 도플러 혈류계
거리 측정, 물체 감지 
  • 초음파 거리계, 초음파 근접각 센서, 초음파 레벨 센서, 초음파 수위계, 초음파 적설계, 초음파 파고계 
농도, 점성도 측정
  • 초음파 점성도계, 초음파 탁도계
기타
  • 초음파 탐상자, 초음파 두께계, 초음파 현미경, 초음파 진단장치, 초음파 CT스캐너

초음파를 발생하는 압전 소자

초음파를 발생하는데는 압전 소자가 사용된다. 
압전현상(piezoelectricity)이란 수정이나 산화바륨 결정에 힘을 가하면 전압이 발생하고 반대로 전압을 인가하면 물체가 진동하는 현상이다.
압전 진동자는 이러한 압전현상을 이용한 소자이며, 높은 주파수의 진동을 만들거나 초음파 생성에 사용한다.

초음파 센서의 신호 검출 방식

초음파 센서는 다음과 같이 초음파를 발생하는 송신기와 이를 감지하는 수신기가 쌍으로 구성되는 것이 많다. 검출 구조에는 다음과 같이 3가지가 있다.