norr@manorshi.com         +86-519-89185720
1
뉴스 센터

Arduino에서 초음파 센서를 사용하는 방법은 무엇입니까?

조회수: 164     저자: Grace 게시 시간: 2021-07-26 출처: 대지

페이스북 공유 버튼
트위터 공유 버튼
회선 공유 버튼
위챗 공유 버튼
링크드인 공유 버튼
핀터레스트 공유 버튼
WhatsApp 공유 버튼
카카오 공유 버튼
스냅챗 공유 버튼
텔레그램 공유 버튼
공유이 공유 버튼

Arduino에서 초음파 센서를 사용하는 방법: HC-SR04 가이드

그만큼 HC-SR04 초음파 센서는 Arduino 프로젝트에서 가장 널리 사용되는 거리 측정 모듈 중 하나입니다. 장애물 회피 로봇, 주차 센서, 레벨 감지, 스마트 쓰레기통, 거리 측정기 및 기타 비접촉 감지 애플리케이션에 널리 사용됩니다.

모듈은 송신기를 통해 40kHz 초음파를 방출합니다. 음파가 물체와 만나면 반사되어 수신기로 돌아옵니다. Arduino는 에코 시간을 측정하고 소리의 속도를 사용하여 센서와 물체 사이의 거리를 계산할 수 있습니다.

Arduino 거리 측정용 초음파 센서 모듈 HC-SR04

HC-SR04 주요 기술 매개변수

매개변수
일반적인 작동 전압 5V DC
정적 작동 전류 일부 모듈 버전에서는 5mA 미만
작동 주파수 40kHz 초음파
감지 거리 일반적인 범위: 2cm ~ 400cm; 일부 게인 조정 버전은 더 긴 범위를 지원할 수 있습니다.
감지 각도 보통 15도 이내; 게인이 더 높은 일부 버전은 약 30도에 도달할 수 있습니다.
정도 적절한 테스트 조건에서 최대 약 0.3cm
사각지대 최소 측정 거리 약 2cm

HC-SR04 핀 설명

HC-SR04 초음파 모듈에는 VCC, TRIG, ECHO 및 GND의 4개 핀이 있습니다. Arduino는 짧은 트리거 펄스를 TRIG 핀으로 보낸 다음 ECHO 핀에서 반환 펄스를 읽습니다.

HC-SR04 핀 아두이노 연결 기능
VCC 5V 초음파 모듈용 전원 공급 장치입니다.
삼각 디지털 핀 9 트리거 입력. Arduino는 범위 지정을 시작하기 위해 10us 펄스를 적용합니다.
에코 디지털 핀 10 에코 출력. Arduino는 펄스 폭을 읽어 거리를 계산합니다.
접지 접지 접지 연결.

HC-SR04 초음파 센서 핀아웃 VCC TRIG ECHO GND

HC-SR04 초음파 센서의 작동 원리

HC-SR04는 비행 시간 측정으로 작동합니다. Arduino는 TRIG 핀에 최소 10마이크로초의 높은 수준의 트리거 신호를 보냅니다. 그런 다음 모듈은 자동으로 8개의 40kHz 초음파 펄스를 보내고 반사된 에코를 기다립니다.

반사된 초음파 신호가 감지되면 ECHO 핀은 하이 레벨 펄스를 출력합니다. 이 펄스의 지속 시간은 초음파의 왕복 이동 시간입니다.

거리 = 에코 고레벨 시간 × 소리의 속도 / 2

Arduino 코드에서 일반적인 단순화된 공식은 다음과 같습니다.

거리(cm) = 지속 시간 × 0.0343 / 2

HC-SR04 초음파 모듈 비행 시간 작동 원리

HC-SR04 초음파 모듈 타이밍 다이어그램

타이밍 프로세스는 간단합니다. Arduino는 TRIG를 잠시 낮게 유지하고 10us의 높은 펄스를 보낸 다음 TRIG를 낮게 반환합니다. HC-SR04는 초음파 버스트를 전송하고 반사된 신호가 반환되거나 측정 시간이 초과될 때까지 ECHO를 높게 설정합니다.

불안정한 판독값을 방지하려면 측정 사이에 짧은 지연을 두십시오. 약 60ms의 측정주기가 일반적으로 사용되므로 다음 트리거 전에 이전 초음파 에코가 사라질 시간이 있습니다.

Arduino 프로그래밍 기본 사항: pulseIn 함수

Arduino pulseIn() 함수는 디지털 핀이 HIGH 또는 LOW를 유지하는 시간을 측정하는 데 사용됩니다. HC-SR04의 경우 Arduino는 pulseIn(echoPin, HIGH)을 사용하여 ECHO 핀에서 높은 수준의 펄스 폭을 읽습니다.

통사론 의미
pulseIn(핀, 값) HIGH 또는 LOW 펄스의 지속 시간을 읽습니다.
pulseIn(핀, 값, 시간 초과) 마이크로초 단위의 시간 제한 값을 사용하여 펄스를 읽습니다.

시간 초과를 사용하는 것이 좋습니다. 에코가 반환되지 않으면 함수는 대기를 중지하고 프로그램을 너무 오랫동안 차단하는 대신 0을 반환할 수 있습니다.

HC-SR04 초음파 거리 센서와 함께 사용되는 Arduino 보드

HC-SR04 초음파 센서를 Arduino에 연결하는 방법

배선은 간단합니다. VCC를 5V에, GND를 GND에, TRIG를 Arduino 디지털 출력 핀에, ECHO를 Arduino 디지털 입력 핀에 연결합니다. 다음 예에서는 Arduino Uno, 핀 9의 TRIG, 핀 10의 ECHO를 사용합니다.

HC-SR04 초음파 센서용 Arduino Uno 브레드보드 배선 다이어그램

HC-SR04 초음파 센서 Arduino 코드

다음의 일반적인 Arduino 프로그램은 10us 트리거 펄스를 보내고, ECHO 펄스 폭을 읽고, 거리를 센티미터 단위로 계산하고, 결과를 직렬 모니터에 인쇄합니다.

const int trigPin = 9; const int echoPin = 10; 장기간; 플로트 거리Cm; 무효 설정() { pinMode(trigPin, OUTPUT);   pinMode(echoPin, INPUT);   Serial.begin(9600); } void loop() { digitalWrite(trigPin, LOW);   지연마이크로초(2);   digitalWrite(trigPin, HIGH);   지연마이크로초(10);   digitalWrite(trigPin, LOW);   기간 = pulseIn(echoPin, HIGH, 30000);   if (duration == 0) { Serial.println('Out of range');   } else { distanceCm = 기간 * 0.0343 / 2;     Serial.print('거리: ');     Serial.print(거리Cm);     Serial.println('cm');   } 지연(60); }

직렬 모니터에 거리 값이 표시되면 HC-SR04 초음파 센서와 Arduino 배선이 올바르게 작동하는 것입니다. 그런 다음 장애물 감지, 로봇 이동 제어, 자동문, 주차 알림 또는 액체 레벨 프로젝트에 거리 데이터를 사용할 수 있습니다.

Arduino HC-SR04 초음파 센서 거리 측정 프로그램

HC-SR04 측정 정확도를 향상시키는 방법

  • 측정 대상을 권장 거리 범위 내와 2cm 사각지대 밖에 두십시오.

  • 더 나은 초음파 반사를 위해 평평하고 견고한 대상 표면을 사용하십시오.

  • 부드럽거나 각진 물질, 다공성 물질 또는 흡음 물질을 측정하지 마십시오.

  • 안정적인 5V 전원 공급 장치를 사용하고 배선을 짧고 안전하게 유지하십시오.

  • 에코가 반환되지 않을 때 긴 차단을 방지하려면 pulseIn()에 시간 제한을 추가하세요.

  • 노이즈를 줄이기 위해 여러 판독값의 평균 또는 중앙값 필터링을 수행합니다.

  • 더 높은 정확도를 얻으려면 공기 온도에 따라 음속이 변하므로 온도를 보상하십시오.

Arduino 초음파 센서 프로젝트의 일반적인 응용 분야

애플리케이션 HC-SR04의 사용 방법
장애물 회피 로봇 근처의 물체를 감지하여 로봇의 방향 전환을 도와줍니다.
주차거리센서 차량과 장애물 사이의 거리를 측정합니다.
액체 레벨 감지 접촉 없이 센서에서 액체 표면까지의 거리를 측정합니다.
스마트 쓰레기통 가까이 있는 손이나 물체를 감지하여 자동으로 뚜껑이 열립니다.

요약

Arduino에서 HC-SR04 초음파 센서를 사용하려면 VCC를 5V에, GND를 GND에, TRIG를 디지털 출력 핀에, ECHO를 디지털 입력 핀에 연결하십시오. 10us 트리거 펄스를 보내고, pulseIn()으로 에코 지속 시간을 읽고, 비행 시간 공식으로 거리를 계산합니다.

HC-SR04는 저렴하고 사용하기 쉬우며 많은 Arduino 거리 측정 프로젝트에 적합합니다. 최상의 결과를 얻으려면 대상 표면, 측정 각도, 사각 지대, 안정적인 전력, 시간 초과 처리 및 온도 영향에 주의하십시오.

HC-SR04 Arduino 초음파 센서에 대해 자주 묻는 질문

HC-SR04 초음파 센서는 Arduino와 어떻게 작동합니까?

Arduino는 TRIG 핀에 10us 펄스를 보냅니다. HC-SR04는 8개의 40kHz 초음파 펄스를 방출하고 반사된 소리가 돌아올 때까지 ECHO 핀을 높게 설정합니다. Arduino는 이 펄스 시간을 측정하고 거리를 계산합니다.

HC-SR04 Arduino 프로젝트의 거리 공식은 무엇입니까?

공식은 거리 = 지속 시간 × 소리 속도 / 2입니다. 센티미터 단위의 일반적인 Arduino 공식은 distanceCm = 지속 시간 × 0.0343 / 2입니다. 여기서 지속 시간은 마이크로초 단위로 측정됩니다.

초음파 센서 결과를 2로 나누는 이유는 무엇입니까?

측정된 에코 시간은 센서에서 물체까지, 다시 센서까지 왕복 시간입니다. 2로 나누면 센서와 물체 사이의 단방향 거리가 제공됩니다.

TRIG 및 ECHO에는 어떤 Arduino 핀을 사용해야 합니까?

대부분의 Arduino 디지털 핀을 사용할 수 있습니다. 많은 예에서 TRIG는 디지털 핀 9에 연결되고 ECHO는 디지털 핀 10에 연결됩니다. 코드는 배선에 사용된 핀과 일치해야 합니다.

HC-SR04 초음파 센서가 0 또는 임의의 값을 반환하는 이유는 무엇입니까?

일반적인 원인으로는 느슨한 배선, 불안정한 5V 전원, 잘못된 TRIG 또는 ECHO 핀 번호, 범위 내에 물체 없음, 기울어진 대상 표면, 부드러운 재료, 막힌 센서 헤드 또는 pulseIn() 함수의 시간 초과 없음 등이 있습니다.

HC-SR04 초음파 센서의 사각지대는 무엇인가요?

사각지대는 모듈이 안정적으로 측정할 수 없는 최소 거리입니다. HC-SR04의 경우 사각지대는 보통 2cm 정도입니다. 이보다 가까운 물체는 불안정한 판독값을 생성할 수 있습니다.

HC-SR04는 Arduino로 수위를 측정할 수 있나요?

예, 센서가 습기로부터 보호되고 액체 표면 위에 장착된 경우 간단한 비접촉 수위 프로젝트에 HC-SR04를 사용할 수 있습니다. 습기가 많은, 실외 또는 산업용 탱크의 경우 방수형 초음파 센서를 권장합니다.

Arduino 초음파 센서 판독값을 보다 안정적으로 만들려면 어떻게 해야 합니까?

안정적인 전원 공급 장치를 사용하고, 센서를 대상과 수직으로 유지하고, 부드럽거나 각진 표면을 피하고, pulseIn 시간 초과를 추가하고, 여러 판독값을 취하고, 중앙값 필터링을 사용하고, 측정 사이에 약 60ms를 허용하십시오.

목차