Ультразвуковой датчик HC-SR04 и Arduino: руководство для начинающих

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

Ультразвуковой датчик HC-SR04

HC-SR04 широко применяется в робототехнике, системах обхода препятствий, измерении уровня жидкости и других учебных и практических проектах.

Что понадобится для проекта

  • Плата Arduino (Uno, Nano и аналоги)
  • Ультразвуковой датчик HC-SR04
  • Макетная плата (breadboard)
  • Соединительные провода
Ультразвуковой датчик HC-SR04

Выводы и назначение пинов HC-SR04

Пин Назначение
VCC Питание +5V
GND Земля
TRIG Запуск ультразвукового импульса
ECHO Выход сигнала отражённой волны

Принцип работы датчика

  1. Arduino подаёт импульс длительностью 10 микросекунд на пин TRIG.
  2. Датчик излучает ультразвук с частотой 40 кГц.
  3. Волна отражается от объекта и возвращается обратно.
  4. На пине ECHO появляется импульс.
  5. Arduino измеряет длительность сигнала.

Формула расчёта расстояния:

Расстояние (см) = (время × 0.034) / 2

Подключение HC-SR04 к Arduino

HC-SR04 Arduino
VCC 5V
GND GND
TRIG Digital 9
ECHO Digital 10

Пример скетча Arduino

const int trigPin = 9;
const int echoPin = 10;

long duration;
float distance;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  duration = pulseIn(echoPin, HIGH);

  distance = (duration * 0.034) / 2;

  Serial.print("Расстояние: ");
  Serial.print(distance);
  Serial.println(" см");

  delay(200);
}
измеряет расстояние до объекта ультразвуковым датчиком HC-SR04.
отправляет импульс и замеряет время отражения.
выводит расстояние в сантиметрах в Serial каждые 200 мс.

FAQ — Ультразвуковой датчик HC-SR04

Какое расстояние может измерять HC-SR04?

Диапазон измерений составляет примерно от 2 до 400 см. Наиболее стабильные значения получаются до 300 см.

Почему датчик показывает неверные значения?

Ошибки могут быть вызваны плохим отражением ультразвука, помехами или неправильным подключением пинов.

Можно ли использовать HC-SR04 с ESP8266 или ESP32?

Можно, но обязательно требуется понижение уровня сигнала ECHO до 3.3V.

Влияет ли температура воздуха на точность измерений?

Да, скорость звука зависит от температуры, но для учебных проектов этим обычно пренебрегают.

Почему датчик не видит мягкие предметы?

Мягкие материалы поглощают ультразвук и плохо отражают сигнал.

Нужна ли библиотека для работы с HC-SR04?

Нет, датчик можно использовать без сторонних библиотек, применяя pulseIn().

Заключение

HC-SR04 — простой и надёжный датчик для изучения Arduino и создания практических проектов. Он хорошо подходит как для начинающих, так и для более сложных устройств.