HC-SR04: все об ультразвуковом датчике

Датчик HC-SR04

Иногда это необходимо Измерьте расстояния и для этого в вашем распоряжении несколько датчиков. Мы уже посвятили статью, чтобы рассказать о датчик расстояния высокой точности, такой как VL52L0X. Этот датчик был типа ToF и основывался на очень точных измерениях благодаря лазеру. Но если точность не так важна для вас, и вы хотите что-то, что позволяет измерять расстояния по низкой цене, еще одна возможность, которая у вас под рукой HC-SR04.

В случае Датчик расстояния HC-SR04, расстояние измеряется ультразвуком. Система аналогична оптическому методу VL52L0X. То есть он излучается, есть дребезг и он принимается, но в данном случае это не лазер или ИК, а ультразвук. Если вы увлечены электроникой, робототехникой или любителями, вы можете использовать его для множества проектов DIY, таких как системы обнаружения препятствий для роботов, датчики присутствия и т. Д.

Что такое HC-SR04?

Что ж, это очевидно, как я уже отмечал в предыдущих абзацах, HC-SR04 - датчик расстояния с низкой точностью, основанный на ультразвуке.. С его помощью он позволяет просто и быстро измерять расстояния, хотя в принципе обычно для этого не используется. Чаще всего он используется в качестве преобразователя для обнаружения препятствий и обхода их с помощью других механизмов, связанных с реакцией датчика.

Появление HC-SR04 очень отличительный и легко узнаваемый. Кроме того, это очень популярный элемент в стартовых наборах Arduino, необходимый для множества проектов. Его легко идентифицировать, потому что у него есть два «глаза», которые на самом деле являются ультразвуковыми устройствами, которые объединяет этот модуль. Один из них - излучатель ультразвука, другой - приемник. Он работает на частоте 40 кГц, поэтому не слышен для человека.

Принципы работы ультразвукового датчика

Принцип, в котором Он основан на моделировании того, что используется, когда вы бросаете камень в колодец, чтобы измерить его глубину.. Вы бросаете камень и определяете время, за которое он упадет на дно. Затем вы вычисляете скорость за прошедшее время и получаете расстояние, которое прошел камень. Но в этом случае датчик - это вы.

ESP8266
Теме статьи:
ESP8266: модуль WIFI для Arduino

В HC-SR04 излучатель излучает ультразвук, и когда они отражаются от объекта или препятствия, они будут захвачены приемником. В схема сделает необходимые расчеты этого эха, чтобы определить расстояние. Это также может быть вам знакомо, если вы знаете систему, которую используют некоторые животные, такие как дельфины, киты или летучие мыши, для обнаружения препятствий, добычи и т. Д.

Подсчитывая время с момента отправки импульса до получения ответа, можно точно определить время и, следовательно, расстояние. Помните, что [Пространство = скорость время] но в случае HC-SR04 вы должны разделить это количество на / 2, так как время отсчитывается от момента выхода ультразвука и его прохождения через пространство до столкновения с препятствием и обратного пути, так что это будет приблизительно половина этого ...

Распиновка и спецификации

Вы уже знаете, что для просмотра полных данных о приобретенной вами модели лучше всего найти таблицу заводской бетон. Например, вот такой Таблица данных Sparkfun, но в формате PDF доступно гораздо больше. Однако вот самые важные технические данные HC-SR04:

  • Распиновка: 4 контакта для питания (Vcc), триггера (Trigger), приемника (Echo) и земли (GND). Триггер указывает, когда датчик должен быть активирован (когда запускается ультразвук), и, таким образом, можно будет узнать время, прошедшее, когда приемник получит сигнал.
  • продукты: 5v
  • Частота ультразвука: 40 кГц, человеческое ухо может слышать только от 20 Гц до 20 кГц. Все, что ниже 20 Гц (инфразвук) и выше 20 кГц (ультразвук), будет незаметным.
  • Потребление (в режиме ожидания): <2 мА
  • Расход рабочий: 15 мА
  • Эффективный угол: <15º, в зависимости от угла наклона объектов у вас могут быть лучшие или худшие результаты.
  • Измеренное расстояние: от 2см до 400см, хотя с 250см разрешение будет не очень.
  • Среднее разрешение: Разница в 0.3 см между фактическим расстоянием и измерением, поэтому, несмотря на то, что измерения не считаются очень точными, как лазер, измерения вполне приемлемы для большинства приложений.
  • Цена : примерно от 0,65 €

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

HC-SR04 с Arduino

к подключить его к Arduino не может быть проще. Вам просто нужно нести ответственность за подключение GND к соответствующему выходу вашего Arduino, обозначенному как таковой, Vcc с источником питания Arduino 5 В и двумя другими контактами HC-SR04 с входами / выходами, выбранными для вашего проекта. Вы можете видеть, что в верхней схеме Fritzing все просто ...

У вас просто должно быть одно соображение: тигр должен получить электрический импульс длительностью не менее 10 микросекунд, чтобы он мог правильно активироваться. Предварительно вы должны убедиться, что это НИЗКОЕ значение.

Относительно код для 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.   Хосе сказал

    Я нашел объяснение очень полезным и простым.