Главная chevron_right Уроки chevron_right Встроенные примеры chevron_right Датчики chevron_right Ping — ультразвуковой дальномер

Ping — ультразвуковой дальномер

Подключаем ультразвуковой датчик расстояния Ping к Arduino и измеряем дистанцию до объектов от 3 до 400 см с помощью функции pulseIn().

Ультразвуковой дальномер SEN136B5B от Seeedstudio — простой и надёжный способ измерять расстояние до ближайшего объекта. Диапазон измерений — от 3 до 400 см. Принцип работы похож на эхолокацию летучей мыши: датчик посылает короткий импульс ультразвука и ждёт, пока он отразится от препятствия и вернётся обратно. Отсюда и название — «Ping».

Arduino отправляет короткий триггерный импульс на датчик, а затем с помощью функции pulseIn() измеряет длительность ответного импульса на том же пине. Это время равно промежутку, за который ультразвук прошёл путь до объекта и обратно. Зная скорость звука, несложно пересчитать время в расстояние.

Как это работает

Алгоритм работы с датчиком Ping выглядит так:

  1. Подать на сигнальный пин короткий импульс HIGH длительностью около 5 мкс — это запускает измерение.
  2. Перевести пин в режим INPUT и вызвать pulseIn() — функция вернёт длительность ответного импульса в микросекундах.
  3. Разделить полученное время на 2 (путь туда и обратно), затем пересчитать в сантиметры или дюймы, используя скорость звука (~29 мкс/см в воздухе).

Необходимые компоненты

Схема подключения

Подключение датчика очень простое: вывод +5V модуля SEN136B5B идёт к пину 5V на плате, вывод GND — к пину GND, а сигнальный вывод SIG — к цифровому пину 7.

Обратите внимание: один и тот же пин (7) используется и для отправки триггерного импульса, и для приёма ответа. Это особенность датчика Ping — у него единственный сигнальный провод.

Схема подключения ультразвукового датчика расстояния Ping к Arduino UNO на макетной плате

Принципиальная схема

Принципиальная схема: ультразвуковой модуль измерения расстояния подключён к Arduino UNO. Вывод SIG датчика — к пину 7, +5V — к питанию платы, GND — к общей земле.

Код

Практические замечания

  • Минимальное расстояние — около 3 см. Если объект ближе, датчик может не успеть переключиться с передачи на приём и вернёт некорректное значение.
  • Поглощающие поверхности (ткань, поролон, вата) плохо отражают ультразвук — дальномер может «не видеть» такие объекты или занижать расстояние.
  • Угол обзора датчика Ping составляет примерно 15°. Объекты за пределами этого конуса не будут обнаружены.
  • Не направляйте датчик на очень маленькие или тонкие предметы — отражённый сигнал может быть слишком слабым.
  • Если в скетче используется Serial.println() для вывода значений, откройте монитор порта (скорость 9600) и понаблюдайте за показаниями в реальном времени — это самый быстрый способ проверить работу датчика.

Типичные ошибки

  • Нет показаний или всегда 0 — проверьте, правильно ли подключён пин SIG. Перепутать GND и SIG очень легко, если смотреть на датчик под неудобным углом.
  • Показания «прыгают» — возможна нестабильность питания. Добавьте конденсатор 100 мкФ между 5V и GND рядом с датчиком.
  • Значения не меняются — убедитесь, что пин переключается между OUTPUT (для триггера) и INPUT (для чтения) в нужный момент.

Дополнительные материалы

Больше базовых уроков вы найдёте в разделе built-in examples.

Подробное описание всех функций языка Arduino доступно в language reference.

Последнее обновление: 29.07.2015, SM