Ультразвуковой датчик расстояния

В этом уроке

  • Как работает ультразвуковой датчик расстояния
  • Установка и настройка датчика расстояния
  • Определение расстояния до объектов
  • Движение и остановка машинки при обнаружении препятствия

Видео версия урока

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

Датчик позволяет определять расстояние до препятствий, находящихся в радиусе 4 м.

Принцип работы ультразвукового датчика расстояния

Датчик отправляет ультразвуковую (не слышимую человеком) волну и начинает отсчёт времени. После того, как волна дошла до препятствия и отразилась, она фиксируется в приёмнике датчика, а время останавливается. Зная время с момента отправки до получения волны, а также скорость звука, можно определить расстояние до препятствия. Датчик проделывает эти действия самостоятельно и возвращает значение расстояния. 

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

Для работы с данным датчиком существует несколько библиотек. В первой главе мы будем использовать библиотеку iarduino_HC_SR04, а во второй — iarduino_HC_SR04_tmr.

Установка датчика расстояния на машинку

Установите датчик расстояния на плату-основу при помощи адаптера. 

Получение данных с датчика

Давайте определим расстояние от датчика до ближайшего препятствия. Можете поставить перед ним какой-нибудь объект и сверить показания с линейкой.

#include <iarduino_HC_SR04.h>                       // Подключаем библиотеку
uint8_t pinSens_TRIG = 12;                          // Вывод, к которому подключен вывод TRIG датчика HC-SR04
uint8_t pinSens_ECHO = 11;                          // Вывод, к которому подключен вывод ECHO датчика HC-SR04
iarduino_HC_SR04 hcsr(pinSens_TRIG, pinSens_ECHO);  // Создаём объект hcsr для работы с библиотекой iarduino_HC_SR04, указывая выводы датчика
void setup() {
    Serial.begin(9600);                             // Инициируем передачу данных на скорости 9600 бит/сек
}
void loop() {
   delay(500);                                      // Задержка 0,5 сек
   Serial.println(hcsr.distance());                 // Вывод расстояния (см) при t ~ +23 °C (по умолчанию)
   Serial.println(hcsr.distance(-20));              // Вывод расстояния (см) при t ~ -20 °C
   Serial.println("==================");
}

Загрузите вышеуказанный скетч в плату и откройте «Монитор порта». В нём Вы можете наблюдать вывод двух разных значений. Мы сделали так для того, чтобы показать разницу в измерении расстояний при различной температуре. 

Скорость распространения звука зависит от температуры среды, в которой он распространяется. Эту температуру Вы можете указать в функции hcsr.distance(ТЕМПЕРАТУРА).

 При отсутствии параметра температуры датчик устанавливает значение, равное 23°C (по умолчанию).

При работе с ультразвуковым датчиком в помещении температуру можно не указывать  — погрешность будет минимальна. Но вот если Вы будете измерять расстояние зимой, температуру лучше заказать, т.к. погрешность будет уже значительной. 

Дополнительное (обязательное) задание.

Реализуйте движение машинки прямо. В случае обнаружения препятствия, машинка должна останавливаться и возобновлять движение после того, как путь будет свободен. 

Поздравляю с изучением данного урока!
Следующий урок:
№12. Поиск препятствий на пути.
приступить к изучению

Продукт в магазине

«ROBORACE» — Образовательный набор на базе Arduino

В магазин

Обсуждение

Гарантии и возврат. Используя сайт, Вы соглашаетесь с условиями.