2016-06-24

#3 아두이노 초음파 센서 사용해보기

#3 아두이노 초음파 센서 사용해보기 

초음파센서

왼쪽 T 에서 나간 초음파의 반사를 오른쪽 R에서 수신하여 거리를 판단합니다.
따라서 너무 초음파를 반사하기에 너무 작거나, 흡수하는 재질일 경우 오차가 발생한다.
- 스펙 -
동작전압 DC 5V
동작전류 15mA
동작 주파수 40Hz
발생 주파수 40kHz
측정 거리 2cm ~ 400cm
정밀도 0.3cm
측정 각도 15도
크기 45x20x15mm

- 핀 정보 -
Vcc : 전원 공급
Trig :  초음파 발신
Echo : 초음파 수신
Gnd : 접지 (선 연결)

- 초음파 센서의 원리 -
 Trig핀에서 특정 파형을 만들고, 일정 파형을 만들면 Echo핀이 High 상태로 변경됩니다.
이때 초음파를 감지하게되면 다시 Low상태로 변합니다. 이 사이의 시간으로 값을 측정합니다.
이 측정 값을 계산하는 식을 아두이노 코드로 만들면 원하는 단위로 센서값을 출력할 수 있습니다

기본 연결

구성도
실제

스크래치 코드


void setup()
{
 Serial.begin(9600);
 pinMode(2,OUTPUT); // 센서 Trig 핀
 pinMode(3,INPUT); // 센서 Echo 핀
}

void loop()
{
 long duration, cm;

 digitalWrite(2,HIGH); // 센서에 Trig 신호 입력
 delayMicroseconds(10); // 10us 정도 유지
 digitalWrite(2,LOW); // Trig 신호 off

 duration = pulseIn(3,HIGH); // Echo pin: HIGH->Low 간격을 측정
 cm = microsecondsToCentimeters(duration); // 거리(cm)로 변환

 Serial.print(cm);
 Serial.print("cm");
 Serial.println();
 delay(300); // 0.3초 대기 후 다시 측정
}

long microsecondsToInches(long microseconds)
{
 return microseconds / 74 / 2;
}

long microsecondsToCentimeters(long microseconds)
{
 return microseconds / 29 / 2;
}

동작결과

시리얼 모니터로 결과를 확인해 보면 다음과 같다.

잘못된 사용예


사선일 경우 오차 발생

대상이 너무 작을 경우 오차 발생

참고 

http://makeshare.org/bbs/board.php?bo_table=arduinosensor&wr_id=2


No comments:

Post a Comment