이 프로젝트에서는 HC-SR04 초음파 센서를 소개합니다. 그것은 송신기에서 음파를 보내서 작동하며,그 다음 물체에서 튕겨 나온 다음 수신기로 되돌아갑니다. 음파가 센서로 돌아 오는 데 걸리는 시간만큼 무언가가 얼마나 멀리 떨어져 있는지 확인할 수 있습니다. 그것을 바로 잡자!,

연결

의 연결은 매우 간단하다:

  • VCC5V
  • GND GND
  • 삼각하 pin9
  • Echo 핀 10

할 수 있습니다 실제로 연결하는 삼각 Echo 중 핀,당신이 원하는 9 및 10 단지 그들이 나를 사용하는.

다이어그램(에 Tinkercad 가 있었 Ping)))센서 그렇게 했을 편집하는)

코드

첫 번째 정의 핀는 삼각 Echo 연결되어 있습니다.,

const int trigPin = 9; const int echoPin = 10;

그리고 선언 2float,시간과 거리에 개최되는,소리의 길이 파고다.

float duration, distance; 

다음,설정에서,우리가 선언하는 삼각 핀이 출력으로,에코 핀을 입력으로,시작 시리얼 커뮤니케이션.

void setup() { pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); Serial.begin(9600); } 

Now,루프에서,우리가 무엇을 먼저 설정 trigPin 낮은 2 마이크로초 단위로는 것을 확인하기 위해 pin 을 낮은 처음이다., 그런 다음 우리는 그것을 높이는 10 마이크로초 단위로는 보냅 8 주 소닉에서 버스트 트랜스미터는 다음 반사체의 숙 receiver(연결되어있는 에코 Pin).

때 음파 히트 수신기,그것은 회전 에코 핀 높은 그러나 긴 파도 여행했다. 이를 위해 pulseIn()이라는 편리한 Arduino 함수를 사용할 수 있습니다. 2 개의 인수,듣고있는 핀(우리의 경우 에코 핀)및 상태(높거나 낮음)가 필요합니다., What 함수는 대기 핀을 이동하는 중 상태를 넣어에서 시작 타이밍,다음을 멈춘 타이밍을 때 스위치가 다른 상태입니다. 우리의 경우 우리는 에코 핀이 높게 갈 때 타이밍을 시작하기를 원하기 때문에 높게 놓을 것입니다. 우리는 기간 변수에 시간을 저장할 것입니다. (그 시간을 반환 마이크로초 단위)

duration = pulseIn(echoPin, HIGH); 

이제 우리는 시간,우리가 사용할 수 있는 방정식의 속도=거리/시간,그러나 우리는 그것을 만들 것입니다 시간 x speed=거리를 가지고 있기 때문에 우리 속도입니다. 우리는 어떤 속도를 가지고 있습니까? 물론 소리의 속도!, 소리의 속도는 약 340meters per second,하지만 이후 pulseIn()함수는 시간을 반환 마이크로초 단위로,우리는 것이 필요하 속도에서 마이크로초 단위로 또한,는 쉽게 얻을 수 있습니다. “마이크로 초 당 센티미터에서 소리의 속도”에 대 한 빠른 구글 검색 그것은 말할 것 이다.0343c/μs. 수학을 할 수는 있지만 검색하는 것이 더 쉽습니다. 어쨌든,그 정보로,우리는 거리를 계산할 수 있습니다! 기간을 곱하기 만하면됩니다.0343 그런 다음 2 로 나눕니다(음파가 물체로 이동하고 뒤로 이동하기 때문에). 우리는 거리 변수에 저장할 것입니다.,

distance = (duration*.0343)/2; 

나머지는 결과를 직렬 모니터로 인쇄하기 만하면됩니다.

 Serial.print("Distance: "); Serial.println(distance); delay(100); } 

표지 이미지:Sparkfun