Здесь показаны различия между двумя версиями данной страницы.
arduino_01 [2019/06/26 14:58] golikov |
arduino_01 [2020/03/25 16:28] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Сканирование объекта с помощью УЗ дальномера. ====== | ||
- | ===== Знакомство с ультразвуковым дальномером HC-SR04. ===== | ||
- | |||
- | Ультразвуковой дальномер HC-SR04 определяет расстояние до объектов с использованием ультразвука частотой 40 кГц. Таким же способом это делают летучие мыши и дельфины. Он излучает звук на частоте 40 кГц и слушает отраженное эхо. По времени движения звуковой волны туда и обратно рассчитывается расстояние до предмета. | ||
- | |||
- | На показания ультразвукового дальномера не влияет засветка от солнца и цвет предмета. Он позволяет обнаружить даже прозрачную поверхность предмета. Испытывает сложности с измерением расстояний до пушистых предметов. | ||
- | |||
- | {{:ultrasonic-sensor-pinout.png?400|}} | ||
- | |||
- | Конфигурация выводов дальномера HC-SR04 | ||
- | |||
- | {{:image_5.png?600|}} | ||
- | |||
- | Параметры HC-SR04 | ||
- | * Напряжение питания: 5 В | ||
- | * Потребление в режиме тишины: 2 мА | ||
- | * Потребление при работе: 15 мА | ||
- | * Диапазон измерения расстояний: от 5 до 400 см | ||
- | * Угол наблюдения: 30° | ||
- | |||
- | Для работы с ультразвуковым дальномером необходимо установить библиотеку Ultrasonic от разработчика Erick Simões. | ||
- | Откройте меню Инструменты и выберите раздел Управления библиотеками. | ||
- | |||
- | {{:image_1.png?500|}} | ||
- | |||
- | Введите в строку поиска слово «ultrasonic». | ||
- | |||
- | {{:image_2.png?400|}} | ||
- | |||
- | |||
- | Прокрутите перечень библиотек и найдите библиотеку Ultrasonic by Erick Simões | ||
- | |||
- | {{:image_3.png?300|}} | ||
- | |||
- | |||
- | Нажмите на кнопку Установки. | ||
- | |||
- | {{:image_4.png?100|}} | ||
- | |||
- | |||
- | Теперь можно открыть тестовый скетч в разделе меню Файл – Примеры – Ultrasonic и протестировать работу датчика. | ||
- | |||
- | |||
- | |||
- | |||
- | ===== Пример кода программы для Arduino ===== | ||
- | |||
- | |||
- | <file c Ultrasonic.ino> | ||
- | |||
- | #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(); | ||
- | } | ||
- | </file> |