ELECTRONICS

Датчик расстояния для Arduino: ультразвуковой, инфракрасный или лазерный

Измерить расстояние без касания можно тремя способами: послать звук, послать инфракрасный свет или послать лазерный импульс. Каждый способ имеет свои слепые зоны, и выбор зависит от того, до чего именно вы меряете.

Общий принцип у всех один: излучатель что-то посылает, приёмник ловит отражение, а расстояние вычисляется по времени или по углу возврата.

Разборы конкретных моделей

Три способа измерить расстояние

Ультразвуковой HC-SR04

Два цилиндра, похожие на глаза робота. Дальность от двух сантиметров до четырёх метров, цена копеечная. Отлично видит твёрдые ровные поверхности и почти не видит ткань, поролон и наклонные стены: звук уходит в сторону или гаснет. Угол обзора около пятнадцати градусов, то есть он меряет не точку, а конус.

Инфракрасный Sharp GP2Y0A21

Меряет не время, а угол, под которым вернулся отражённый луч. Работает от десяти до восьмидесяти сантиметров, узкий луч, реагирует быстрее ультразвука. Но зависимость выходного напряжения от расстояния нелинейна, и на ярком солнце датчик слепнет.

Лазерный VL53L0X

Считает время полёта лазерного импульса. Точность до миллиметров, дальность до двух метров, размер с ноготь, подключение по I2C. Не зависит от материала поверхности так сильно, как ультразвук. Стоит дороже остальных и не любит прозрачные и зеркальные препятствия.

Что учесть при выборе

Материал препятствия важнее характеристик. Ультразвук идеален для стены, картонной коробки, уровня воды в баке — и бесполезен для человека в пуховике. Лазер, наоборот, спокойно видит ткань, но пасует перед стеклом и зеркалом.

Второе — угол обзора. Ультразвуковой датчик меряет конус пятнадцати градусов и вернёт расстояние до ближайшего объекта в этом конусе, а не строго перед собой. Для робота, объезжающего препятствия, это плюс, для точного измерения уровня в узкой трубе — минус.

Третье — скорость. Ультразвуку нужно время, пока звук долетит и вернётся: на четырёх метрах это около двадцати пяти миллисекунд, то есть не больше сорока замеров в секунду. Лазер и инфракрасный датчик отвечают быстрее.