HC-SR04: всичко за ултразвуковия сензор

HC-SR04 сензор

Понякога е необходимо Измерете разстоянията и за това имате на разположение няколко сензора. Вече посветихме статия, за да говорим за a високопрецизен датчик за разстояние като VL52L0X. Този сензор е от тип ToF и се основава на много прецизни измервания благодарение на своя лазер. Но ако точността не е толкова важна за вас и искате нещо, което ви позволява да измервате разстоянията на ниска цена, друга възможност, която имате на една ръка разстояние HC-SR04.

В случай на HC-SR04 сензор за разстояние, разстоянието се измерва с ултразвук. Системата е подобна на оптичния метод на VL52L0X. Тоест излъчва се, има отскачане и се получава, но в този случай, вместо да е лазер или IR, това е ултразвук. Ако сте запален по електрониката, роботиката или аматьорския производител, можете да го използвате за множество проекти „направи си сам“ като системи за откриване на препятствия за роботи, сензори за присъствие и т.н.

Какво представлява HC-SR04?

Е, очевидно е, както вече коментирах в предишните параграфи, HC-SR04 е нископрецизен датчик за разстояние, базиран на ултразвук. С него той позволява да се измерват разстоянията по прост и бърз начин, въпреки че по принцип обикновено не се използва за това. Най-често се използва като преобразувател за откриване на препятствия и избягването им чрез други механизми, свързани с реакцията на сензора.

Появата на HC-SR04 е много отличителен и лесно разпознаваем. В допълнение, това е много популярен артикул в стартовите комплекти Arduino и е необходим за множество проекти. Лесно се идентифицира, тъй като има две „очи“, които всъщност са ултразвуковите устройства, които този модул интегрира. Единият от тях е ултразвуков излъчвател, а другият приемник. Той работи с честота 40 Khz, следователно е нечуваем за хората.

Принципи на ултразвуковия сензор

Принципът, в който Той се основава на симулиране на използвания, когато хвърляте камък в кладенец, за да измерите дълбочината му. Хвърляш камъка и измерваш колко време отнема да паднеш на дъното. След това правите изчисления на скоростта по изминалото време и получавате разстоянието, което камъкът е изминал. Но в този случай сензорът сте вие.

ESP8266
Свързана статия:
ESP8266: WIFI модулът за Arduino

В HC-SR04 излъчвателят ще излъчва ултразвук и когато те се отблъснат от обект или препятствие, което е по начина, по който ще бъдат уловени от приемника. The верига ще направи необходимите изчисления от това ехо за определяне на разстоянието. Това може да ви е познато и ако познавате системата, която някои животни като делфини, китове или прилепи използват за локализиране на препятствия, плячка и т.н.

Чрез преброяване на времето от момента на изпращане на импулса до получаването на отговора, времето и следователно разстоянието могат да бъдат точно определени. Не забравяйте, че [Пространство = време за скорост] но в случая с HC-SR04, трябва да разделите това количество на / 2, тъй като времето е измерено от момента, в който ултразвукът излиза и пътува през пространството, докато удари препятствието и обратния път, така че ще бъде приблизително половината от това ...

Pinout и таблици с данни

Вече знаете, че за да видите пълните данни на модела, който сте придобили, най-доброто нещо е намерете листа с данни бетон на производителя. Например, тук е Лист с данни на Sparkfun, но има много повече налични в PDF. Ето обаче най-важните технически данни за HC-SR04:

  • pinout: 4 щифта за захранване (Vcc), спусък (Trigger), приемник (Echo) и земя (GND). Спусъкът показва кога датчикът трябва да бъде активиран (когато е пуснат ултразвукът) и по този начин ще бъде възможно да се знае времето, изминало, когато приемникът получи сигнала.
  • хранене: 5 V
  • Ултразвукова честота: 40 Khz, човешкото ухо може да чува само от 20Hz до 20Khz. Всичко под 20Hz (инфразвук) и над 20Khz (ултразвук) няма да бъде забележимо.
  • Консумация (в режим на готовност): <2mA
  • Консумацията работи: 15 mA
  • Ефективен ъгъл: <15º, в зависимост от ъглите на обектите може да имате по-добри или по-лоши резултати.
  • Измерено разстояние: от 2 см до 400 см, въпреки че от 250 см разделителната способност няма да е много добра.
  • Средна разделителна способност: 0.3 cm вариация между действителното разстояние и измерването, така че въпреки че не се счита за много точна като лазер, измерванията са напълно приемливи за повечето приложения.
  • цена: от около 0,65 €

Интеграция с Arduino

HC-SR04 с Arduino

за свързването му с Arduino не може да бъде по-лесно. Просто трябва да отговаряте за свързването на GND към съответния изход на вашия Arduino, маркиран като такъв, Vcc с захранването Arduino 5v и другите два щифта на HC-SR04 с входовете / изходите, избрани за вашия проект. Можете да видите, че е просто в горната схема на Fritzing ...

Трябва само да имате едно мнение, че тигърът трябва да получи електрически импулс от поне 10 микросекунди, за да се активира правилно. Преди това трябва да се уверите, че е в НИСКА стойност.

В cuanto др код за 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. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   Хосе каза той

    Намерих обяснението много полезно и просто.