От основ подключения до продвинутых проектов
1. Что такое HC-SR04?
HC-SR04 — ультразвуковой датчик расстояния, который использует звуковые волны частотой 40 кГц для определения дистанции до объектов. Он идеален для проектов робототехники, систем безопасности и автоматизации благодаря простоте использования и доступной цене.
Основные характеристики:
- Рабочее напряжение: 5 В.
- Диапазон измерения: 2 см – 400 см.
- Точность: ±3 мм (до 200 см).
- Угол обзора: 15–30°.
- Частота ультразвука: 40 кГц.
2. Принцип работы
Датчик работает по принципу эхолокации:
- Trig-импульс: Arduino отправляет импульс длиной 10 мкс на Trig-пин.
- Излучение волн: Датчик генерирует 8 ультразвуковых импульсов.
- Прием эха: Отраженные волны фиксируются через Echo-пин.
- Расчет расстояния: Время между отправкой и приемом сигнала используется для вычисления дистанции
Формула расчета:
асстояние (см) = (Время импульса в мкс × 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
Библиотека упрощает код и добавляет фильтрацию шумов:
Преимущества:
- Автоматическая коррекция ошибок.
- Поддержка нескольких датчиков
5. Фильтрация шумов и калибровка
Устранение дребезга
- Метод усреднения: Сделайте 5–10 измерений и вычислите среднее значение.
- Программный фильтр: Игнорируйте выбросы (например, значения > 400 см) .
Коррекция температуры
Скорость звука зависит от температуры:
V (м/с) = 331.3 + 0.606 × T (°C)
Пример: При 25°C скорость = 331.3 + 0.606×25 ≈ 346 м/с. Это повысит точность на 2–3%
6. Частые проблемы и решения
- Нет данных с датчика:
Проверьте подключение VCC и GND.
Убедитесь, что Trig и Echo подключены к цифровым пинам . - Некорректные значения:
Уберите посторонние предметы из зоны измерения.
Используйте фильтрацию в коде . - Перегрев:
Не используйте датчик при температуре выше 60°C
7. Пример проекта: Система оповещения о препятствиях
Компоненты:
- Светодиод (пин D12) и зуммер (пин D11).
Код:
if (distance <= 20) {
digitalWrite(12, HIGH);
tone(11, 1000);
} else {
digitalWrite(12, LOW);
noTone(11);
}
Принцип: При приближении объекта <20 см загорается светодиод и звучит сигнал
8. Идеи для проектов
- Робот-уборщик: Автоматическое объезжание препятствий.
- Умная парковка: Измерение расстояния до стенки в гараже.
- Система контроля уровня воды: Определение наполненности резервуара
9. Где купить HC-SR04?
- AliExpress: От 100 руб. за штуку.
- Локальные магазины: ЧипДип, Амперка, RobotClass
Заключение
HC-SR04 — идеальный выбор для новичков, изучающих взаимодействие Arduino с внешними датчиками. Освоив базовое подключение и программирование, вы сможете создавать умные устройства, реагирующие на окружающую среду. Экспериментируйте, учитывайте температурные поправки и делитесь своими проектами!
Ресурсы:
- Симулятор Tinkercad для тестирования схем
Удачных экспериментов! 🚀