0
КОРЗИНА
0 ТОВАРА

Библиотека «iarduino_HC_SR04_tmr»

tremaru / iarduino_HC_SR04_tmr

★ Обновлено: 16:20 10.03.2021 ☆ Создан: 14:12 16.10.2020

Релизы

Версия 1.0.0
22.09.2021
Cкачать

Библиотека для получения расстояния до объекта с помощью ультразвуковых датчиков семейства HC-SR04.

Поддерживаемые модели

Подробности

Библиотека отправляет стартовый импульс датчику, а время ответа преобразует в расстояние. Посылка и приём импульсов происходит через аппаратный таймер — Timer2, поэтому выполнение кода скетча не приостанавливается на время ожидания сигнала ответа от датчика, которое может достигать 38 мс.

Посылка и приём импульсов происходит через аппаратный таймер — Timer2.

  • Преимущество:
    • Библиотека не ждёт ответа от датчика, который может длиться до 38 мс.
  • Недостатки:
    • Совместимость только с платами Arduino с ядром AVR: Uno, Leonardo, Mega, Nano и их аналоги.
    • Нельзя использовать ШИМ на контактах: 3 и 11
    • Нельзя подключить более четырёх дальномеров.
    • Нельзя работать с библиотеками которые так же используют аппаратный таймер — Timer2.

Если ограничения данной библиотеки вас не устраивают, воспользуйтесь другими нашими библиотеками:

Установка

Для старта скачайте и установите библиотеку iarduino_HC_SR04_tmr. Для инсталляции рекомендуем использовать нашу инструкцию по установке библиотек для Arduino.

Использование в коде

Подключение

  • Назначение: подключение библиотеки.
  • Синтаксис: #include <iarduino_HC_SR04_tmr.h>
  • Примечания:
    • Библиотека подключается в самом начале программы.
    • Подключение библиотеки обязательное действие, иначе функции работать не будут.
  • Примеры:
// Подключаем библиотеку для работы с дальномером HC-SR04
#include <iarduino_HC_SR04_tmr.h>

Конструктор

  • Назначение: создание объекта для работы с функциями библиотеки iarduino_HC_SR04_tmr
  • Синтаксис: iarduino_HC_SR04_tmr sensor(uint8_t pinTRIG, uint8_t pinECHO)
  • Параметры:
    • pinTRIG: пин отправки сигнала с дальномера на внешний контроллер.
    • pinECHO: пин приёма сигнала с внешнего контроллера на дальномер.
  • Возвращаемое значение: нет
  • Примечания:
    • Конструктор вызывается в самом начале программы.
    • Вызов конструктор обязателен, иначе функции работать не будут.
    • Можно использовать любые пины ввода-вывода.
  • Пример:
// Создаём объект sensor для работы с функциями библиотеки iarduino_HC_SR04_tmr
// В параметре конструктора передаём пины TRIG и ECHO
iarduino_HC_SR04_tmr sensor(12, 11);

Функция begin()

  • Назначение: инициирует работу с датчиком.
  • Синтаксис: void begin(uint16_t time = 50)
  • Параметры:
    • time: период опроса датчика от 50 до 3000 мс. Необязательный параметр и по умолчанию равен 50 мс.
  • Возвращаемое значение: нет
  • Примечания: метод достаточно вызывать один раз в функции setup().
  • Примеры:
  // Инициируем работу с датчиком
  // Период опроса датчика оставляем по умолчанию 50 мс
  sensor.begin();
  // Инициируем работу с датчиком
  // Период опроса датчика устанавливаем 1000 мс
  sensor.begin(1000);

Функция work()

  • Назначение: выключает и включает опрос датчика таймером.
  • Синтаксис: void work(bool state)
  • Параметры:
    • state:
      • true: включает опрос датчика
      • false: выключает опрос датчика
  • Возвращаемое значение: нет
  • Примечания:
    • По умолчанию опрос датчика включён.
    • Если установить несколько дальномеров рядом, звуковая волна отправленная одним датчиком может быть принята другим датчиком, что в итоге может исказить показания. Функция work() позволяет опрашивать несколько дальномеров поочереди, предотвратив пересечение их звуковых волн.
  • Примеры:
  // Включаем опрос датчика
  sensor.work(true);
  // Выключаем опрос датчика
  sensor.work(false);

Функция 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;

Сопровождающие товары

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