HC-SR04 : 초음파 센서에 관한 모든 것

HC-SR04 센서

때로는 필요합니다 거리 측정 이를 위해 여러 개의 센서가 있습니다.. 우리는 이미 VL52L0X와 같은 고정밀 거리 센서. 이 센서는 ToF 유형이었으며 레이저 덕분에 매우 정밀한 측정을 기반으로했습니다. 하지만 정밀도가 그다지 중요하지 않고 저렴한 가격으로 거리를 측정 할 수있는 무언가를 원한다면 손끝에있는 HC-SR04.

의 경우 HC-SR04 거리 센서, 거리는 초음파로 측정. 이 시스템은 VL52L0X의 광학 방식과 유사합니다. 즉, 방출되고 바운스가 있고 수신되지만이 경우 레이저 나 IR이 아닌 초음파입니다. 전자, 로봇 공학 또는 아마추어 제조업체에 대한 열정이 있다면 로봇의 장애물 감지 시스템, 존재 센서 등과 같은 다양한 DIY 프로젝트에 사용할 수 있습니다.

HC-SR04는 무엇입니까?

음, 이전 단락에서 이미 언급했듯이 HC-SR04는 초음파 기반의 저 정밀 거리 센서입니다.. 원칙적으로 일반적으로 사용되지는 않지만 간단하고 빠른 방법으로 거리를 측정 할 수 있습니다. 대부분의 경우 센서의 반응과 관련된 다른 메커니즘을 통해 장애물을 감지하고 장애물을 피하는 변환기로 사용됩니다.

의 외관 HC-SR04는 매우 독특하고 쉽게 알아볼 수 있습니다.. 또한 Arduino 스타터 키트에서 매우 인기있는 항목이며 여러 프로젝트에 필요합니다. 실제로이 모듈이 통합하는 초음파 장치 인 두 개의 "눈"이 있기 때문에 쉽게 식별 할 수 있습니다. 그중 하나는 초음파 방출기이고 다른 하나는 수신기입니다. 그것은 40Khz의 주파수에서 작동하므로 사람이들을 수 없습니다.

초음파 센서의 원리

원리 그것은 깊이를 측정하기 위해 돌을 우물에 던질 때 사용되는 것을 시뮬레이션하는 것을 기반으로합니다.. 당신은 돌을 던지고 바닥에 떨어지는 데 걸리는 시간을 측정합니다. 그런 다음 경과 시간에 대한 속도를 계산하고 돌이 이동 한 거리를 얻습니다. 하지만이 경우 센서는 당신입니다.

ESP8266
관련 기사 :
ESP8266 : Arduino 용 WIFI 모듈

HC-SR04에서 이미 터는 초음파를 방출하며 물체 나 장애물이 수신기에 포착되는 방식으로 튕겨 나올 때 반사됩니다. 그만큼 회로는 필요한 계산을 할 것입니다 그 에코의 거리를 결정합니다. 돌고래, 고래 또는 박쥐와 같은 일부 동물이 장애물, 먹이 등을 찾는 데 사용하는 시스템을 알고 있다면 이것은 또한 익숙 할 수 있습니다.

펄스가 전송 된 이후 응답이 수신 될 때까지의 시간을 세어 시간과 거리를 정확하게 결정할 수 있습니다. 기억 [공간 = 속도 시간] 하지만 HC-SR04의 경우 초음파가 나와서 공간을 통과하여 장애물에 부딪 히고 돌아 오는 시간을 측정했기 때문에이 양을 / 2로 나누어야합니다. 이것의 절반 ...

핀아웃 및 데이터 시트

획득 한 모델의 전체 데이터를 확인하려면 가장 좋은 방법은 데이터 시트 찾기 제조업체의 콘크리트. 예를 들어, 다음은 Sparkfun 데이터 시트, 그러나 PDF에서 더 많은 것을 사용할 수 있습니다. 그러나 다음은 HC-SR04의 가장 중요한 기술 데이터입니다.

  • 핀아웃: 전원 (Vcc), 트리거 (트리거), 수신기 (에코) 및 접지 (GND) 용 4 핀. 트리거는 센서가 활성화되어야하는시기 (초음파가 시작될 때)를 나타내므로 수신기가 신호를 수신 할 때 경과 된 시간을 알 수 있습니다.
  • 급송: 5V
  • 초음파 주파수: 40Khz, 사람의 귀는 20Hz에서 20Khz까지만들을 수 있습니다. 20Hz (초음파) 미만 및 20Khz (초음파) 이상은 모두 감지 할 수 없습니다.
  • 소비 (대기): <2mA
  • 소비 작업: 15mA
  • 유효 각도: <15º, 물체의 각도에 따라 더 좋거나 나쁠 수 있습니다.
  • 측정 된 거리: 2cm에서 400cm까지 250cm에서는 해상도가 좋지 않습니다.
  • 중간 해상도: 실제 거리와 측정 값 사이에 0.3cm 차이가 있으므로 레이저처럼 매우 정확하지는 않지만 대부분의 응용 분야에서 측정 값이 상당히 허용됩니다.
  • 가격: 약 € 0,65부터

Arduino와 통합

Arduino가있는 HC-SR04

Arduino에 연결하는 것이 더 쉬울 수는 없습니다.. GND를 Arduino 5v 전원 공급 장치가있는 Vcc와 프로젝트를 위해 선택한 입력 / 출력이있는 HC-SR04의 다른 두 핀으로 표시된 Arduino의 해당 출력에 연결하는 작업 만 담당하면됩니다. 상단 Fritzing 체계에서 간단하다는 것을 알 수 있습니다 ...

타이거가 제대로 활성화 되려면 최소 10 마이크로 초의 전기 펄스를 수신해야한다는 한 가지 고려 사항 만 있으면됩니다. 이전에는 LOW 값인지 확인해야합니다.

로로 Arduino IDE 용 코드, 다른 구성 요소와 함께 라이브러리 또는 이와 유사한 것을 사용할 필요가 없습니다. 거리를 계산하는 공식을 작성하면됩니다. 물론 프로젝트에서 HC-SR04 센서의 측정에 대한 응답으로 작업을 수행하려면 필요한 코드를 추가해야합니다. 예를 들어, 단순히 측정 값을 콘솔에 표시하는 대신, 장애물을 피하기 위해 특정 거리에 대해 서보 모터를 한 방향 또는 다른 방향으로 움직이거나 모터가 정지하거나 근접 감지시 알람이 활성화되도록 할 수 있습니다. .

 프로그래밍에 대한 추가 정보 : Arduino 매뉴얼 (무료 PDF)

예를 들어 다음을 볼 수 있습니다. 기본으로 사용할 기본 코드:

//Define las constantes para los pines donde hayas conectado el pin Echo y Trigger
const int EchoPin = 8;
const int TriggerPin = 9;
 
void setup() {
   Serial.begin(9600);
   pinMode(TriggerPin, OUTPUT);
   pinMode(EchoPin, INPUT);
}

//Aquí la muestra de las mediciones
void loop() {
   int cm = ping(TriggerPin, EchoPin);
   Serial.print("Distancia medida: ");
   Serial.println(cm);
   delay(1000);
}

//Cálculo para la distancia
int ping(int TriggerPin, int EchoPin) {
   long duration, distanceCm;
   
   digitalWrite(TriggerPin, LOW);  //para generar un pulso limpio ponemos a LOW 4us
   delayMicroseconds(4);
   digitalWrite(TriggerPin, HIGH);  //generamos Trigger (disparo) de 10us
   delayMicroseconds(10);
   digitalWrite(TriggerPin, LOW);
   
   duration = pulseIn(EchoPin, HIGH);  //medimos el tiempo entre pulsos, en microsegundos
   
   distanceCm = duration * 10 / 292/ 2;   //convertimos a distancia, en cm
   return distanceCm;
}


코멘트를 남겨주세요

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   호세

    설명이 매우 유용하고 간단하다는 것을 알았습니다.