Для чего нужен ОрбиКрафт
Подсистемы конструктора
Инструкции по работе с ОрбиКрафт
Уроки
Лабораторная оснастка
Знакомство с Arduino
Полезная нагрузка на базе Arduino
Обратная связь
Новости
Для чего нужен ОрбиКрафт
Подсистемы конструктора
Инструкции по работе с ОрбиКрафт
Уроки
Лабораторная оснастка
Знакомство с Arduino
Полезная нагрузка на базе Arduino
Обратная связь
Новости
Это старая версия документа!
Ультразвуковой дальномер HC-SR04 определяет расстояние до объектов с использованием ультразвука частотой 40 кГц. Таким же способом это делают летучие мыши и дельфины. Он излучает звук на частоте 40 кГц и слушает отраженное эхо. По времени движения звуковой волны туда и обратно рассчитывается расстояние до предмета.
На показания ультразвукового дальномера не влияет засветка от солнца и цвет предмета. Он позволяет обнаружить даже прозрачную поверхность предмета. Испытывает сложности с измерением расстояний до пушистых предметов.
Конфигурация выводов дальномера HC-SR04
Параметры HC-SR04
Для работы с ультразвуковым дальномером необходимо установить библиотеку Ultrasonic от разработчика Erick Simões. Откройте меню Инструменты и выберите раздел Управления библиотеками.
Введите в строку поиска слово «ultrasonic».
Прокрутите перечень библиотек и найдите библиотеку Ultrasonic by Erick Simões
Нажмите на кнопку Установки.
Теперь можно открыть тестовый скетч в разделе меню Файл – Примеры – Ultrasonic и протестировать работу датчика.
#include <OrbicraftBus.h> #include <Ultrasonic.h> * Module HR-SC04 (four pins) * --------------------- * | HC-SC04 | Arduino | * --------------------- * | Vcc | 5V | * | Trig | 6 | * | Echo | 7 | * | Gnd | GND | * --------------------- Message msg; OrbicraftBus bus; Ultrasonic ultrasonic(6, 7); // подключаем HC-SR04 к пинам 6 (Trig) и 7 (Echo) int distance; int16_t msgSize = 0; void setup() { Serial1.begin(9600); // задаем скорость обмена информацией по Serial1 !!! } void loop() { distance = ultrasonic.read(); // считываем расстояние msgSize = bus.takeMessage(msg); // пробуем прочитать сообщение с помощью метода takeMessage if (msgSize > 0){ //если сообщение есть switch (msg.id){//в зависимости от идентификатора сообщения выполняем те или иные действия // Рассмотрим случай с идентификатором 2 case 0x02:{ String data = String(distance); // записываем показания датчика расстояния в переменную data bus.sendMessage(bus.obcAddress, 0, data); // передаем содержимое переменной data на БКУ break; } } } } // Следующий блок кода необходимо всегда добавлять в конец программы // Функция вызывается автоматически и необходима для обработки сообщения void serialEvent2() { bus.serialEventProcess(); }