Найти в Дзене

Ультразвуковой датчик HC-SR04 и Arduino Nano: полное руководство для новичков

Оглавление

От основ подключения до продвинутых проектов

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

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

Основные характеристики:

  • Рабочее напряжение: 5 В.
  • Диапазон измерения: 2 см – 400 см.
  • Точность: ±3 мм (до 200 см).
  • Угол обзора: 15–30°.
  • Частота ультразвука: 40 кГц.

2. Принцип работы

Датчик работает по принципу эхолокации:

  1. Trig-импульс: Arduino отправляет импульс длиной 10 мкс на Trig-пин.
  2. Излучение волн: Датчик генерирует 8 ультразвуковых импульсов.
  3. Прием эха: Отраженные волны фиксируются через Echo-пин.
  4. Расчет расстояния: Время между отправкой и приемом сигнала используется для вычисления дистанции

Формула расчета:

асстояние (см) = (Время импульса в мкс × 0.034) / 2

Пример: Если время импульса 580 мкс, расстояние = (580 × 0.034) / 2 ≈ 10 см

3. Подключение к Arduino Nano

HC-SR04 Arduino Nano

VCC 5V

GND GND

Trig D9

Echo D10

Важно:

  • Используйте макетную плату для удобства.
  • Для защиты от помех держите провода короткими (до 15 см)

4. Программирование

Базовый код без библиотек:

#define trigPin 9

#define echoPin 10

void setup() {

Serial.begin(9600);

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

}

void loop() {

digitalWrite(trigPin, LOW);

delayMicroseconds(2);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

long duration = pulseIn(echoPin, HIGH);

int distance = duration * 0.034 / 2;

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

Serial.print(distance);

Serial.println(" см");

delay(200);

}

Пояснение:

  • pulseIn() измеряет длительность импульса на Echo-пине.
  • Формула конвертирует время в расстояние

Использование библиотеки NewPing

Библиотека упрощает код и добавляет фильтрацию шумов:

-2

Преимущества:

  • Автоматическая коррекция ошибок.
  • Поддержка нескольких датчиков

5. Фильтрация шумов и калибровка

Устранение дребезга

  • Метод усреднения: Сделайте 5–10 измерений и вычислите среднее значение.
  • Программный фильтр: Игнорируйте выбросы (например, значения > 400 см) .

Коррекция температуры

Скорость звука зависит от температуры:

V (м/с) = 331.3 + 0.606 × T (°C)

Пример: При 25°C скорость = 331.3 + 0.606×25 ≈ 346 м/с. Это повысит точность на 2–3%

6. Частые проблемы и решения

  1. Нет данных с датчика:
    Проверьте подключение VCC и GND.
    Убедитесь, что Trig и Echo подключены к цифровым пинам .
  2. Некорректные значения:
    Уберите посторонние предметы из зоны измерения.
    Используйте фильтрацию в коде .
  3. Перегрев:
    Не используйте датчик при температуре выше 60°C

7. Пример проекта: Система оповещения о препятствиях

Компоненты:

  • Светодиод (пин D12) и зуммер (пин D11).

Код:

if (distance <= 20) {

digitalWrite(12, HIGH);

tone(11, 1000);

} else {

digitalWrite(12, LOW);

noTone(11);

}

Принцип: При приближении объекта <20 см загорается светодиод и звучит сигнал

8. Идеи для проектов

  1. Робот-уборщик: Автоматическое объезжание препятствий.
  2. Умная парковка: Измерение расстояния до стенки в гараже.
  3. Система контроля уровня воды: Определение наполненности резервуара

9. Где купить HC-SR04?

  • AliExpress: От 100 руб. за штуку.
  • Локальные магазины: ЧипДип, Амперка, RobotClass

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

Ресурсы:

Удачных экспериментов! 🚀