kz ru
Каталог

Проект 5: Ультразвуковой датчик

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

Здесь мы предоставляем простой метод измерения расстояния с использованием Arduino и ультразвукового датчика, а также описываем, как использовать ультразвуковой датчик с Arduino.

Технические характеристики:

Рабочее напряжение: +5 В постоянного тока
Покойный ток: <2 мА
Рабочий ток: 15 мА
Угол обзора: <15°
Диапазон измерения: 2 см - 300 см
Точность: 0,3 см
Угол измерения: 30 градусов
Длительность входного импульса триггера: 10 мкс

Принцип работы:

Как показано на рисунке выше, у датчика есть две части - одна является передающей, а другая - приемной. Ультразвуковой модуль выдаст ультразвуковые волны после срабатывания сигнала. Когда ультразвуковые волны сталкиваются с объектом и отражаются, модуль выдает сигнал "эхо", по которому можно определить расстояние до объекта на основе временной разницы между сигналом триггера и сигналом "эхо". Время t - это время, в течение которого сигнал отправляется к препятствию и возвращается. Скорость распространения звука в воздухе составляет около 343 м/с, и расстояние = скорость * время. Однако ультразвуковая волна излучается и возвращается, что составляет 2 раза расстояния. Поэтому его нужно разделить на 2, расстояние, измеренное ультразвуковой волной = (скорость * время) / 2.

Схема подключения:

Подключите VCC, Trig, Echo и Gnd ультразвукового датчика к 5V (V), D12, D13 и Gnd (G).

Тестовый код:

//****************************************************************************
/*
 4wd BT Car
lesson 5.1
Ultrasonic sensor
https://alash-electronics.kz/blogs/wiki
*/
int trigPin = 12; // Пин триггера
int echoPin = 13; // Пин эхо
long duration, cm, inches;

void setup() {
  // Начинаем порт Serial
  Serial.begin (9600);
  // Определяем входы и выходы
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() {
  // Датчик срабатывает при высоком уровне сигнала длительностью 10 мкс или больше.
  // Для обеспечения чистого высокого уровня сигнала сначала даем короткий LOW-импульс:
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  // Считываем сигнал с датчика: HIGH-импульс, длительность которого - время (в микросекундах) от отправки пинга до получения его эхо от объекта.
  duration = pulseIn(echoPin, HIGH);
  
  // Преобразуем время в расстояние
  cm = (duration / 2) / 29.1; // Делим на 29.1 или умножаем на 0.0343
  inches = (duration / 2) / 74; // Делим на 74 или умножаем на 0.0135
  
  Serial.print(inches);
  Serial.print("in, ");
  Serial.print(cm);
  Serial.print("cm");
  Serial.println();
  
  delay(250);
}
//****************************************************************************

Результат теста:

После успешной загрузки кода на плату подключите компоненты согласно схеме подключения, затем подключите плату к компьютеру с помощью USB-кабеля для питания. После включения откройте последовательный монитор и установите скорость передачи данных на 9600. Определенное расстояние будет отображаться в сантиметрах и дюймах. Если закрыть ультразвуковой датчик рукой (расстояние составляет от 2 до 10 см), то значение расстояния будет уменьшаться.

Объяснение кода:

int trigPin - этот пин определен для передачи ультразвуковых волн, как правило, это выход.
int echoPin - это определено как пин приема, как правило, это вход.
cm = (duration/2) / 29.1 - мы можем рассчитать расстояние, используя следующую формулу: расстояние = (время в пути / 2) x скорость звука. Скорость звука равна: 343 м/с = 0,0343 см/мкс = 1/29,1 см/мкс.
inches = (duration/2) / 74 - это же формула, но в дюймах: 13503,9 дюймов/с = 0,0135 дюйма/мкс = 1/74 дюйма/мкс.
Нам нужно разделить время в пути на 2, так как мы должны учесть, что волна была отправлена, попала в объект и вернулась обратно к датчику.

Практическое расширение:

Мы только что измерили расстояние, отображаемое ультразвуковым датчиком. Как насчет управления светодиодом с учетом измеренного расстояния? Давайте попробуем это и подключим модуль светодиода к пину D9.

//*****************************************************************
/*
4wd BT Car
lesson 5.2
Ultrasonic LED
https://alash-electronics.kz/blogs/wiki
*/
int trigPin = 12; // Пин триггера
int echoPin = 13; // Пин эхо
long duration, cm, inches;

void setup() {
  Serial.begin (9600); // Начинаем порт Serial
  pinMode(trigPin, OUTPUT); // Определяем входы и выходы
  pinMode(echoPin, INPUT);
}

void loop() {
  // Датчик срабатывает при высоком уровне сигнала длительностью 10 мкс или больше.
  // Для обеспечения чистого высокого уровня сигнала сначала даем короткий LOW-импульс:
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  // Считываем сигнал с датчика: HIGH-импульс, длительность которого - время (в микросекундах) от отправки пинга до получения его эхо от объекта.
  duration = pulseIn(echoPin, HIGH);
  
  // Преобразуем время в расстояние
  cm = (duration / 2) / 29.1; // Делим на 29.1 или умножаем на 0.0343
  inches = (duration / 2) / 74; // Делим на 74 или умножаем на 0.0135
  
  Serial.print(inches);
  Serial.print("in, ");
  Serial.print(cm);
  Serial.print("cm");
  Serial.println();
  delay(250);
  
  if (cm >= 2 && cm <= 10) {
    Serial.println("HIGH");
    digitalWrite(9, HIGH);
  } else {
    Serial.println("LOW");
    digitalWrite(9, LOW);
  }
}
//*****************************************************************

После успешной загрузки кода на плату подключите компоненты согласно схеме подключения, затем подключите плату к компьютеру с помощью USB-кабеля для питания. После включения закройте ультразвуковой датчик рукой (расстояние составляет от 2 до 10 см), затем проверьте, включен ли светодиод.

Комментарии
Отзывов еще никто не оставлял
Товары упомянутые в статье
В наличии
Предзаказ
арт. 6-20
Ультразвуковой модуль измерения расстояния HC-SR04 может служить прекрасным датчиком для...
600 тг
В наличии
Предзаказ
арт. 59
Кронштейн (подставка, крепление или держатель) для крепления ультразвукового датчика расстояния...
200 тг
В наличии
Предзаказ
арт. 000067
Данный кронштейн весьма удобен для крепления ультразвукового датчика расстояния HC-SR04...
170 тг 150 тг
Предзаказ
Предзаказ успешно отправлен!
Имя *
Телефон *
Добавить в корзину
Название товара
100 тг
1 шт.
Перейти в корзину
Обратный звонок
Запрос успешно отправлен!
Имя *
Телефон *
Заказ в один клик
С помощью уведомлений о заказе можно не только получать актуальную информацию по заказу, но и иметь быстрый канал связи с магазином