Ультразвуковой датчик HC-SR04 расстояния используется для определения расстояния до объекта, определения препятствий для робота. Часто используется при прохождении лабиринта.
Характеристики:
Напряжение питания 5В
Расстояние измерения от 20мм до 4000мм
Угол измерения: 15 градусов
Точность: ~1 мм при грамотной фильтрации
Принцип работы датчика:
На пин Trig подается управляющий импульс длительностью 10 микросекунд.
В ответ на этот импульс модуль излучает ультразвуковой импульс.
Этот импульс отражается от препятствия и возвращается к датчику.
Модуль генерирует на пине Echo импульс, длительность которого в точности равна времени, затраченному звуковой волной на путь "датчик -> препятствие -> датчик".
Задача Arduino — измерить длительность этого импульса на пине Echo.
Для работы с датчиком можно использовать готовые библиотеки, или написать код самостоятельно:
// пины
#define TRIG 2
#define ECHO 4
void setup() {
Serial.begin(115200); // для связи
pinMode(TRIG, OUTPUT); // trig выход
pinMode(ECHO, INPUT); // echo вход
}
void loop() {
// подаем импульс 10 мкс
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
// измеряем время ответного импульса
uint32_t us = pulseIn(ECHO, HIGH);
float dist = us / 58.2; // получаем расстояние
Serial.println(dist); // выводим
delay(50);
}