МЫ СОЗДАЕМ И ПРОИЗВОДИМ
ЭЛЕКТРОННЫЕ НАБОРЫ И МОДУЛИ !
Библиотека для получения расстояния до объекта с помощью ультразвуковых датчиков семейства HC-SR04.
Библиотека отправляет стартовый импульс датчику, а время ответа преобразует в расстояние. Посылка и приём импульсов происходит через аппаратный таймер — Timer2, поэтому выполнение кода скетча не приостанавливается на время ожидания сигнала ответа от датчика, которое может достигать 38 мс.
Посылка и приём импульсов происходит через аппаратный таймер — Timer2.
3 и 11Timer2.Если ограничения данной библиотеки вас не устраивают, воспользуйтесь другими нашими библиотеками:
iarduino_HC_SR04: ожидает ответ от датчика в режиме реального времени.
iarduino_HC_SR04_int: использует внешнее прерывание и не будет ждать ответа от датчика.
Для старта скачайте и установите библиотеку iarduino_HC_SR04_tmr. Для инсталляции рекомендуем использовать нашу инструкцию по установке библиотек для Arduino.
#include <iarduino_HC_SR04_tmr.h>// Подключаем библиотеку для работы с дальномером HC-SR04 #include <iarduino_HC_SR04_tmr.h>
iarduino_HC_SR04_tmriarduino_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);
void begin(uint16_t time = 50)time: период опроса датчика от 50 до 3000 мс. Необязательный параметр и по умолчанию равен 50 мс.setup().// Инициируем работу с датчиком // Период опроса датчика оставляем по умолчанию 50 мс sensor.begin();
// Инициируем работу с датчиком // Период опроса датчика устанавливаем 1000 мс sensor.begin(1000);
void work(bool state)state:
true: включает опрос датчикаfalse: выключает опрос датчикаwork() позволяет опрашивать несколько дальномеров поочереди, предотвратив пересечение их звуковых волн.// Включаем опрос датчика sensor.work(true);
// Выключаем опрос датчика sensor.work(false);
long distance(int8_t temperature = 23)temperature: температура окружающей среды от -128 до 127 °C. Необязательный параметр и по умолчанию равен 23 °C.3 до 400 см.// Вычисляем расстояние до объекта // Температуру окружающей оставляем по умолчанию 23 °C int sensorDistance = sensor.distance();
// Вычисляем расстояние до объекта // с указанием температуры окружающей среды 70 °C int sensorDistance = sensor.distance(70);
averaging0 до 10000: бех усреднений10: минимальное усреднение100: нормальное усреднение1000: сильное усреднение200 см до препятствия, показания могут колебаться от 198 до 202. Это может быть причиной следующих факторов: геометрия отражающей поверхности, колебания температуры воздуха, колебания питания датчика, посторонние шумы и многое другое. Для устранения помех можно указать коэффициент усреднения: чем выше значение коэффициента, тем плавнее будут меняться данные возвращаемые функцией distance().// Указываем коэффициент усреднения 15 sensor.averaging = 15;
