Ультразвуковой датчик HC-SR04 и Arduino: руководство для начинающих
Ультразвуковой датчик HC-SR04 — один из самых популярных модулей для измерения расстояния в проектах на Arduino. Он недорогой, простой в подключении и отлично подходит для обучения основам работы с датчиками.
HC-SR04 широко применяется в робототехнике, системах обхода препятствий, измерении уровня жидкости и других учебных и практических проектах.
Что понадобится для проекта
- Плата Arduino (Uno, Nano и аналоги)
- Ультразвуковой датчик HC-SR04
- Макетная плата (breadboard)
- Соединительные провода
Выводы и назначение пинов HC-SR04
| Пин | Назначение |
|---|---|
| VCC | Питание +5V |
| GND | Земля |
| TRIG | Запуск ультразвукового импульса |
| ECHO | Выход сигнала отражённой волны |
Принцип работы датчика
- Arduino подаёт импульс длительностью 10 микросекунд на пин TRIG.
- Датчик излучает ультразвук с частотой 40 кГц.
- Волна отражается от объекта и возвращается обратно.
- На пине ECHO появляется импульс.
- 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);
}
отправляет импульс и замеряет время отражения.
выводит расстояние в сантиметрах в Serial каждые 200 мс.
FAQ — Ультразвуковой датчик HC-SR04
Какое расстояние может измерять HC-SR04?
Диапазон измерений составляет примерно от 2 до 400 см. Наиболее стабильные значения получаются до 300 см.
Почему датчик показывает неверные значения?
Ошибки могут быть вызваны плохим отражением ультразвука, помехами или неправильным подключением пинов.
Можно ли использовать HC-SR04 с ESP8266 или ESP32?
Можно, но обязательно требуется понижение уровня сигнала ECHO до 3.3V.
Влияет ли температура воздуха на точность измерений?
Да, скорость звука зависит от температуры, но для учебных проектов этим обычно пренебрегают.
Почему датчик не видит мягкие предметы?
Мягкие материалы поглощают ультразвук и плохо отражают сигнал.
Нужна ли библиотека для работы с HC-SR04?
Нет, датчик можно использовать без сторонних библиотек, применяя pulseIn().
Заключение
HC-SR04 — простой и надёжный датчик для изучения Arduino и создания практических проектов. Он хорошо подходит как для начинающих, так и для более сложных устройств.