Как работает ультразвуковой датчик?
Ультразвуковые датчики работают, испуская звуковые волны на частоте (40 кГц), слишком высокой для человеческого слуха. Эти волны распространяются в воздухе и отражаются, когда попадают на объект. Датчик вычисляет расстояние, измеряя, сколько времени звуковым волнам нужно, чтобы вернуться.
- Передатчик: испускает ультразвуковые звуковые волны.
- Приёмник: регистрирует звуковые волны, которые отразились от объекта.
Формула для расчёта расстояния:
Distance = (Time x Speed of Sound) / 2
Скорость звука примерно равна 0,0343 см/мкс (или 343 м/с) при нормальном атмосферном давлении и температуре 20 °C.
Пример расчёта:
Допустим, ультразвуковой датчик зафиксировал, что звуковой волне понадобилось 2000 мкс, чтобы вернуться после попадания в объект.
Шаг 1: вычисляем общее расстояние, которое прошла звуковая волна:
Total distance = Time x Speed of Sound
Total distance = 2000 µs x 0343 cm/µs = 68.6 cm
Шаг 2: поскольку звуковая волна прошла до объекта и обратно, расстояние до объекта равно половине общего расстояния:
Distance to object = 68.6 cm / 2 = 34.3 cm
Таким образом, объект находится на расстоянии 34,3 см от датчика.
Распиновка HC-SR04
У модуля четыре вывода: VCC, Trig, Echo и GND.
| Вывод | Функция |
|---|---|
| VCC | Питание |
| Trig | Сигнал запуска (Trigger) |
| Echo | Эхо-сигнал (Echo) |
| GND | Земля |
Измерение расстояния с помощью модуля HC-SR04
Модуль HC-SR04 содержит передатчик и приёмник, которые отвечают за отправку ультразвуковых волн и регистрацию отражённых волн. Мы будем использовать вывод Trig, чтобы отправлять звуковые волны, и читать вывод Echo, чтобы измерять расстояние.
Как видно на схеме, мы подключаем выводы Trig и Echo к выводам GPIO микроконтроллера (VCC и GND тоже подключаются, но на схеме их не показали, чтобы не усложнять иллюстрацию). Чтобы отправить ультразвуковые волны, мы переводим вывод Trig в High на 10 микросекунд, а затем обратно в Low. Это заставляет модуль отправить 8 последовательных ультразвуковых импульсов на частоте 40 кГц. Рекомендуется делать паузу не менее 50 мс между запусками.
Когда волны датчика попадают в объект, они отражаются обратно к модулю. Как видно на схеме, вывод Echo меняет сигнал, который передаётся микроконтроллеру: длительность, в течение которой сигнал остаётся в высоком состоянии (ширина импульса), соответствует расстоянию. Микроконтроллер измеряет, сколько времени вывод Echo остаётся в High; затем по этому времени вычисляется расстояние до объекта.
Ширина импульса и расстояние:
Ширина импульса (время, в течение которого сигнал остаётся в высоком состоянии) на выводе Echo составляет примерно от 150 мкс до 25 000 мкс (25 мс), но только если сигнал попал в объект. Если объекта нет, ширина импульса будет около 38 мс.