때로는 필요합니다 거리 측정 이를 위해 여러 개의 센서가 있습니다.. 우리는 이미 VL52L0X와 같은 고정밀 거리 센서. 이 센서는 ToF 유형이었으며 레이저 덕분에 매우 정밀한 측정을 기반으로했습니다. 하지만 정밀도가 그다지 중요하지 않고 저렴한 가격으로 거리를 측정 할 수있는 무언가를 원한다면 손끝에있는 HC-SR04.
의 경우 HC-SR04 거리 센서, 거리는 초음파로 측정. 이 시스템은 VL52L0X의 광학 방식과 유사합니다. 즉, 방출되고 바운스가 있고 수신되지만이 경우 레이저 나 IR이 아닌 초음파입니다. 전자, 로봇 공학 또는 아마추어 제조업체에 대한 열정이 있다면 로봇의 장애물 감지 시스템, 존재 센서 등과 같은 다양한 DIY 프로젝트에 사용할 수 있습니다.
HC-SR04는 무엇입니까?
음, 이전 단락에서 이미 언급했듯이 HC-SR04는 초음파 기반의 저 정밀 거리 센서입니다.. 원칙적으로 일반적으로 사용되지는 않지만 간단하고 빠른 방법으로 거리를 측정 할 수 있습니다. 대부분의 경우 센서의 반응과 관련된 다른 메커니즘을 통해 장애물을 감지하고 장애물을 피하는 변환기로 사용됩니다.
의 외관 HC-SR04는 매우 독특하고 쉽게 알아볼 수 있습니다.. 또한 Arduino 스타터 키트에서 매우 인기있는 항목이며 여러 프로젝트에 필요합니다. 실제로이 모듈이 통합하는 초음파 장치 인 두 개의 "눈"이 있기 때문에 쉽게 식별 할 수 있습니다. 그중 하나는 초음파 방출기이고 다른 하나는 수신기입니다. 그것은 40Khz의 주파수에서 작동하므로 사람이들을 수 없습니다.
초음파 센서의 원리
원리 그것은 깊이를 측정하기 위해 돌을 우물에 던질 때 사용되는 것을 시뮬레이션하는 것을 기반으로합니다.. 당신은 돌을 던지고 바닥에 떨어지는 데 걸리는 시간을 측정합니다. 그런 다음 경과 시간에 대한 속도를 계산하고 돌이 이동 한 거리를 얻습니다. 하지만이 경우 센서는 당신입니다.
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에 연결하는 것이 더 쉬울 수는 없습니다.. 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; }
설명이 매우 유용하고 간단하다는 것을 알았습니다.