Описание
Библиотека для получения расстояния до объекта с помощью ультразвуковых датчиков семейства HC-SR04.
Поддерживаемые модели
- Ультразвуковой датчик расстояния HC-SR04 / Документация
- Ультразвуковой датчик расстояния Roborace HC-SR04 / Документация
Подробности
Библиотека отправляет стартовый импульс датчику, ждёт сигнал ответа и преобразует время ответа в расстояние. Выполнение кода скетча приостанавливается на время ожидания сигнала ответа от датчика, которое может достигать 38 мс.
-
Преимущества:
- Совместимость со всеми платами Arduino.
- Дальномер можно подключать к любым выводам Arduino.
-
Недостатки:
- Библиотека ждёт ответа от датчика, который может длиться до 38 мс.
Если ваш код критичен к задержкам, воспользуйтесь другими нашими библиотеками:
-
Библиотека
iarduino_HC_SR04_tmr: использует аппаратный таймер и не будет ждать ответа от датчика. -
Библиотека
iarduino_HC_SR04_int: использует внешнее прерывание и не будет ждать ответа от датчика.
Установка
Для старта скачайте и установите библиотеку iarduino_HC_SR04. Для инсталляции рекомендуем использовать нашу инструкцию по установке библиотек для Arduino.
Использование в коде
Подключение
- Назначение: подключение библиотеки.
- Синтаксис:
#include <iarduino_HC_SR04.h> -
Примечания:
- Библиотека подключается в самом начале программы.
- Подключение библиотеки обязательное действие, иначе функции работать не будут.
- Примеры:
// Подключаем библиотеку для работы с дальномером HC-SR04 #include <iarduino_HC_SR04.h>
Конструктор
- Назначение: создание объекта для работы с функциями библиотеки
iarduino_HC_SR04 - Синтаксис:
iarduino_HC_SR04 sensor(uint8_t pinTRIG, uint8_t pinECHO) -
Параметры:
pinTRIG: пин отправки сигнала с дальномера на внешний контроллер.pinECHO: пин приёма сигнала с внешнего контроллера на дальномер.
- Возвращаемое значение: нет
-
Примечания:
- Конструктор вызывается в самом начале программы.
- Вызов конструктор обязателен, иначе функции работать не будут.
- Можно использовать любые пины ввода-вывода.
- Пример:
// Создаём объект sensor для работы с функциями библиотеки iarduino_HC_SR04 // В параметре конструктора передаём пины TRIG и ECHO iarduino_HC_SR04 sensor(12, 11);
Функция distance()
- Назначение: Возвращает расстояние до препятствия в см.
- Синтаксис:
long distance(int8_t temperature = 23) - Параметры:
temperature: температура окружающей среды от-128до127°C. Необязательный параметр и по умолчанию равен23°C.- Возвращаемое значение: измеренное расстояние до препятствия от
3до400см. - Примечания: функция ждёт ответа от датчика, что может занять до 38 мс.
- Примеры:
// Вычисляем расстояние до объекта // Температуру окружающей оставляем по умолчанию 23 °C int sensorDistance = sensor.distance();
// Вычисляем расстояние до объекта // с указанием температуры окружающей среды 70 °C int sensorDistance = sensor.distance(70);
Переменная averaging
- Назначение: Усредняет выводимые показания.
- Синтаксис:
averaging - Значение: уровень коэффициента усреднение от
0до1000 0: бех усреднений10: минимальное усреднение100: нормальное усреднение1000: сильное усреднение- Возвращаемое значение: нет
- Примечания: при снятии показаний без усреднений мы можем получать «прыгающие» значения. Например, на дистанции в
200см до препятствия, показания могут колебаться от198до202. Это может быть причиной следующих факторов: геометрия отражающей поверхности, колебания температуры воздуха, колебания питания датчика, посторонние шумы и многое другое. Для устранения помех можно указать коэффициент усреднения: чем выше значение коэффициента, тем плавнее будут меняться данные возвращаемые функциейdistance(). - Примеры:
// Указываем коэффициент усреднения 15 sensor.averaging = 15;