Ультразвуковой дальномер HC-SR04 подключение к Arduino
ФОРУМ МОЛОДЫХ УЧЕНЫХ 1(29)
УДК 004.021 Шишкин Г.Г., студент магистратуры кафедры «Приборостроение» Донского Государственного Технического Университета, Россия, г. Ростов-на-Дону Кобелев М.С., студент магистратуры кафедры «Приборостроение»
ПодробнееТема 5. Управление двигателями
Тема 5. Управление двигателями Урок 5.1. Двигатель постоянного тока 5.1.1. Устройство двигателя Перед тем, как раскрыть устройство двигателя, вкратце опишем еще одно робототехническое понятие актуатор.
ПодробнееIskra Mini. Подключение и настройка
Iskra Mini Iskra Mini это миниатюрная платформа на базе микроконтроллера ATmega328 для разработки и программирования электронных устройств, где важен каждый миллиметр свободного пространства.
Эксперименты с программированием. 1.Введение и подготовка к работе. Arduino — это контроллер (управляющий модуль). На плате контроллера размещены процессор, микросхема конвертора USB и выводы для подключения
ПодробнееИнформационное табло на основе LED матриц
Кафедра «Автопласт» при ФГБОУ ВПО «Госуниверситет-УНПК» Научно-образовательная лаборатория «Управление в технических системах» Информационное табло на основе LED матриц Подготовили студенты: группы 21-АП
ПодробнееГромкость (на заданном расстоянии)
Практическая работа 6 Проект Терменвокс В этом эксперименте мы имитируем действие музыкального инструмента терменвокс: изменяем высоту звучания бесконтактным путем, больше или меньше закрывая от света
ПодробнееНабор СкАРТ УМНЫЙ ДОМ
Набор СкАРТ УМНЫЙ ДОМ Представляем Вашему вниманию второй продукт серии Скарт- ЛАБ «Умный дом» Набор СкАРТ ЛАБ УМНЫЙ ДОМ предназначен для тех, кто уже прошел первый этап ознакомления с аппаратными и програмными
ПодробнееРобот-манипулятор механическая рука
Робот-манипулятор механическая рука Робот-манипулятор MeArm карманная версия промышленного манипулятора. MeArm — простой в сборке и управлении робот, механическая рука. Манипулятор имеет четыре степени
ПодробнееШИМ. Регулировка скорости движения.
ШИМ. Регулировка скорости движения. Метод широтно импульсной модуляции (ШИМ, англ. pulse-width modulation (PWM)) широко применяется для управления мощностью, подводимой к нагрузке, путём изменения скважности
Датчик тока (Troyka-модуль)
Датчик тока (Troyka-модуль) Используйте датчик тока (Troyka-модуль) для контроля потребления тока, фиксируйте блокировку моторов или аварийное обесточивание системы. Работа с высоким напряжением опасна
ПодробнееДрайвер шагового двигателя (Troykaмодуль)
Драйвер шагового двигателя (Troykaмодуль) Для управления шаговым двигателем при помощи микроконтроллера нужно не только управлять большой нагрузкой, но и обеспечить необходимую последовательность управляющих
ПодробнееUNO STARTER KIT ИНСТРУКЦИЯ
Версия 1.03 от 26.12.2017 UNO STARTER KIT ИНСТРУКЦИЯ НА РУССКОМ Содержание 1. Состав набора 2. Основная плата arduino uno 3. Среда программирования Arduino IDE 4. Первая программа: мигание светодиодом
Подробнее3 повсеместное проникновение Wi-Fi;
Умный дом 9-11 1. Задача 1 Определите один правильный ответ Что понимается под термином «интернет всего»? 1 рост объёмов информации в интернете; 2 появление универсального провайдера, обеспечивающего связью
ПодробнееТема 2. Работа с цифровыми сигналами
Тема 2. Работа с цифровыми сигналами Урок 2.1. Выводы общего назначения (GPIO) 2.1.1. Схема выводов Arduino Uno (редакция 3) Отрицательный вывод питания (земля, ground) Положительный вывод питания (+3.3В
ПодробнееЦифровая обработка сигналов
13 Цифровая обработка сигналов Плата Arduino способна выполнять простую обработку сигналов. В этой главе обсуждаются разные способы такой обработки, от фильтрации сигнала, поступающего на аналоговый вход,
Тестовые задания Макс. балл
ЗАДАНИЯ МОСКОВСКОЙ ОЛИМПИАДЫ ШКОЛЬНИКОВ ПО ТЕХНОЛОГИИ НОМИНАЦИЯ «УМНЫЙ ДОМ» 2017 2018 г. (9 11 классы) Методика оценивания выполнения тестовых олимпиадных заданий теоретического тура Тестовые задания Макс.
ПодробнееДвижение робота по черной линии.
Движение робота по черной линии. Движение робота по линии — самый популярный эксперимент начинающего роботостроителя. Для того, что бы наш робот мог двигаться по полю с черной линией нам необходимы уже
Подробнее1.1 Ответ: Ом. 1.2 Ответ: В
Олимпиадные задания первого (заочного) тура Межрегиональной многопрофильной олимпиады «Менделеев» ФГАОУ ВО «Тюменский государственный университет» Профиль: робототехника Предметы: физика, схемотехника,
ПодробнееGPRS Shield. Подключение и настройка
GPRS Shield GPRS Shield это плата расширения, позволяющая Arduino работать в сетях сотовой связи по технологиям GSM/GPRS для приёма и передачи данных, SMS и голосовой связи. С ней вы сможете управлять
ПодробнееУльтразвуковые дальномерные датчики
Ультразвуковые дальномерные датчики Используемые в роботах ультразвуковые датчики применяются, как правило, для обнаружения препятствий. Они могут использоваться и в дальномерных системах (измеряющих расстояние
ПодробнееТема 4. Работа с аналоговыми сигналами
Тема 4. Работа с аналоговыми сигналами Урок 4.1. Потенциометр 4.1.1. Аналоговый сигнал и АЦП Не секрет, что все величины в физическом мире носят аналоговый характер. Для измерения этих величин, люди придумали
Подключение I2C датчика к LabView
Dr. Bob Davidov Подключение I2C датчика к LabView Цель работы: Изучить технологии приема и отображения данных I2C устройства в LabView Задача работы: Построение канала связи LabView I2C датчик. Приборы
ПодробнееОглавление Предисловие… 3
1 Robo-Муравей Оглавление Предисловие… 3 Введение… 3 Оборудование… 4 Создание платформы… 5 Проверка и позиционирование сервоприводов… 5 Стенд проверки сервоприводов… 5 Проверка… 6 Сборка…
ПодробнееЭлементы платы. Питание
Motor Shield Микроконтроллер, установленный на Arduino не может непосредственно управлять большой нагрузкой на своих цифровых выходах. Максимально возможный выходной ток с ножки микроконтроллера — 40мА.
ПодробнееТема 2. Работа с цифровыми сигналами
Тема 2. Работа с цифровыми сигналами Урок 2.1. Выводы общего назначения (GPIO) У контроллера Arduino Uno есть множество выводов, обозначенных цифрами от 0 до 13 и от A0 до A5. Каждым из этих выводом мы
ПодробнееРис. Схема подъема пролета башенного крана
осковская предпрофессиональная олимпиада школьников 2019 Инженерно-конструкторское направление Первый тур Вариант 1 Задача 1 При сборке башенного крана по одной отвесной боковой стороне уже собранных пролетов
Подробнееwww processing org Случайные числа
Язык Arduino основан на ранней версии библиотеки, известной под названием Wiring, дополняющей другую библиотеку Processing. Библиотека Processing очень похожа на Wiring, но написана на языке Java, а не
CREATE — dht11_humidity — lm35_temp
Связка Arduino + Ethernet shield позволяет создавать устройства, реализующие концепция Internet of things («Интернет вещей»), согласно которой доступ к данным датчиков или управление испонительными устройствами
ПодробнееАрдуино 2 Первые шаги.
Ардуино 2 Первые шаги. 1. Установка драйвера Arduino. Проверка установки и определение номера виртуального СОМ порта для Arduino. Итак, надеюсь, что Вы приобрели «Arduino» и Вам не терпится начать с ней
ПодробнееКонструктор электронный На основе Arduino
Федеральное государственное автономное образовательное учреждение высшего образования «Национальный исследовательский Томский политехнический университет» ЮТИ ТПУ Конструктор электронный На основе Arduino
ПодробнееАннотация. Андатпа. Annotation
7 8 9 Аннотация В данном дипломном проекте разрабатывается система уклонения от препятствий для беспилотного летательного аппарата. В работе приводятся требования к создаваемой системе определения препятствий,
ПодробнееДОМАШНЕЕ ЗАДАНИЕ N 2*
ДОМАШНЕЕ ЗАДАНИЕ N 2* «Часть 2. Разработка и моделирование навигационной системы мобильного робота» Цель работы: реализация алгоритма обхода препятствий мобильным роботом с системой управления на основе
ПодробнееТалалаева Руфина Викторовна
Работа победителя заключительного этапа командной инженерной олимпиады школьников Олимпиада Национальной технологической инициативы Профиль «БЕСПИЛОТНЫЕ АВИАЦИОННЫЕ СИСТЕМЫ» Талалаева Руфина Викторовна
Гариханов Айдар Дамирович
Работа победителя заключительного этапа командной инженерной олимпиады школьников Олимпиада Национальной технологической инициативы Профиль «БЕСПИЛОТНЫЕ АВИАЦИОННЫЕ СИСТЕМЫ» Гариханов Айдар Дамирович Класс:
ПодробнееЛабораторная работа 10 Тема: Ход работы
Лабораторная работа 10 Тема: Ардуино + датчик освещенности (фоторезистор) При выполнении предыдущей работы вы научились снимать напряжение с потенциометра. В данной работе суть в плане технологии та же.
ПодробнееТанцующий и поющий робот
Танцующий и поющий робот Журав Илья МОУ СОШ Веста Научный руководитель к.ф.м.н. Богданов С.В. Вступление. Появление «Ардуино» позволяет научиться программировать микроконтроллеры, не затрачивая больших
ПодробнееДавайте построим робота!
Давайте построим робота! Вот как можно создать настоящего робота, который будет выполнять ваши команды. Мы назовем его Мake:Bot. Постройте его с нуля, используя часто встречающиеся электронные запчасти
ПодробнееЗанятие 3. Обработка входных сигналов
Занятие 3. Обработка входных сигналов 1. Выключатель (switch) Выключатель это прибор, который позволяет замыкать и размыкать электрическую цепь. При этом, смена состояния выключателя может происходить
ПодробнееАРДУИНЩИКА 12 МИНИ-ПРОЕКТОВ
КОНСПЕКТ АРДУИНЩИКА 1 МИНИ-ПРОЕКТОВ ArduBlock Technologies 1 мини проектов Веб-сайт: http://ardublock.ru Автор: Виталий Петров Вк группа: https://vk.com/ardublock Инстаграмм: https://www.instagram.com/ardublock.ru/
ПодробнееТретий тур Условие Страница 1 из 1
Третий тур Условие Страница 1 из 1 Люминесценция Расчет погрешностей не требуется! Проверяются только листы ответов! Приборы и оборудование Источники света: лазер фиолетовый, лазер зеленый (с источником
ПодробнееТарасова Вероника Евгеньевна
Работа призера заключительного этапа командной инженерной олимпиады школьников Олимпиада Национальной технологической инициативы Профиль «Электронная инженерия: умный дом» Тарасова Вероника Евгеньевна
ПодробнееСтартовые. часы. д.5. timing.ru
Стартовые часы ASC2 Руководство пользователя ООО «ОСТИ ТАЙМИНГ» Адрес: 197022, СПб, пр.медиков д.5 Телефон: (812) 327 91 99, 380 07 64 E mail: osti [email protected] www.osti timing.ru Оглавление Общие положения…
ПодробнееСунгатуллина Гульнара Габдулловна
Работа победителя заключительного этапа командной инженерной олимпиады школьников Олимпиада Национальной технологической инициативы Профиль «БЕСПИЛОТНЫЕ АВИАЦИОННЫЕ СИСТЕМЫ» Сунгатуллина Гульнара Габдулловна
ПодробнееУЛЬТРАЗВУКОВЫЕ ДАТЧИКИ
УЛЬТРАЗВУКОВЫЕ ДАТЧИКИ Датчики расстояния и приближения Серия UPT Ключевые особенности: Содержание: Технические характеристики…2 Размеры…2 Инструкция по обучению…3 Электрическое подключение…4 Звуковые
ПодробнееМикроконтроллер ESP-8266 и Ультразвуковой датчик HC-SR04 подключаем к сети Интернет
В нашем случае будем использовать модуль Wemos D1 Mini Pro на микроконтроллере ESP 8266 и Ультразвуковой датчик модель HC-SR04+ работает при напряжении в диапазоне от 3,3 Вольт — 5 Вольт (помечено как HC-SR04+ на задней стороне платы модуля).
Таблица сравнения параметров ультразвукового датчика моделей HC SR04 и HC SR04+
Имя параметра | Напряжение питания
| Min значения | Типичные значения | Max значения | Физическая величина |
Напряжение питания
| 3 .0 | 5.5 | V | ||
Потребление в режиме тишины | Vcc = 5V | 2.8 | mA | ||
Потребление в режиме тишины | Vcc = 3.3V | 2.2 | mA | ||
Min дальность обзора | Vcc = 5V | 2 | 3 | cm | |
Min дальность обзора | Vcc = 3.3V | 2 | 3 | cm | |
Max дальность обзора | Vcc = 5V | 400 | 450 | 600 | cm |
Max дальность обзора | Vcc = 3.3V | 350 | 400 | 550 | cm |
Эффективный угол обзора | 15 | градус | |||
Погрешность измерения расстояния | 1 | % | |||
Разрешение (градация выходного сигнала): | 1-3 | мм | |||
выход | GPIO | ||||
Рабочая температура | -20 | 80 | Градус С |
Вы можете использовать любую схему ESP 8266 и любой совместимый Ультразвуковой датчик, необходимо будет только согласование этих двух устройств по напряжению питания, микроконтроллер ESP 8266 для уменьшения энергопотребления работает при напряжении V CC = 3,3 Вольт, а модули ультразвуковых датчиков, обычно в целях требований повышенного напряжения питания пьезоэлектрических ультразвуковых преобразователей, работают при напряжением V CC= 5 Вольта, соответственно потребуется согласование логических уровней сигналов по напряжению для обмена импульсами между ESP 8266 и ультразвуковым датчиком.
Используется всего один МОП-транзистор. Рассмотрим работу схемы. Когда на входе 3,3V GPIO будет логический ноль, МОП-транзистор Q1 откроется (так как напряжение затвор-исток будет 3,3 Вольт), на выходе 5V logic также будет логический ноль так как он через транзистор Q1 будет подключен к входу 3,3V GPIO. Когда на входе 3,3V GPIO будет логическая единица, то есть напряжение 3,3 Вольт, то напряжение затвор-исток составляет 0 Вольт, транзистор Q1 закроется сопротивление R2 подтянет напряжение на выходе 5V logic до 5 Вольт.
Схема также преобразует логический уровень напряжения 5 Вольт в 3,3 Вольт в обратном направлении. Транзистор Q1 имеет встроенный диод между выводами стока и истока — если на входе 5V logic будет логический ноль — 5 Вольт, то и выходе 3,3V GPIO через диод будет логический ноль — 3,3 Вольт . Когда на входе 5V logic будет логическая единица + 5 Вольт, то и выходе 3,3V GPIO будет логическая единица напряжением +3,3 Вольт подтянутая через резистор R1.
Приведенная выше схема часто используется для преобразования уровней двунаправленных шин , например таких , как I2C. Для шины I2C, вам потребуется две копии схемы, одна для SDA линии, другая для SCL.
Рис. 2 Схема соединения модуля WeMos D1 Micro Pro на микроконтроллере ESP8266 с ультразвуковым датчиком HC-SR04+
Рис. 3 График реального времени, отображаемый данные с ультразвукового датчика HC-SR04+ на сервере «Интернет вещей» — thingspeak.com
Х- ВРЕМЯ; Y -ДИСТАНЦИЯ ДО ОБНАРУЖЕННОГО ОБЪЕКТА;
Если у вас нет соединительных проводов, можно использовать любые провода и панельки которые идут дополнительно в комплекте к модулю ESP 8266 Wemos D1 Mini Pro
Рис. 4 Комплект поставки модуля ESP 8266 D1 Mini Pro от фирмы Wemos
После построения схемы Рис. 2 Скачиваем следующие программы:
- Среду разработчика программ Arduino IDE
- Читаем «МОНИТОР ПОРТА СРЕДЫ РАЗРАБОТЧИКА ПРОГРАММ Arduino IDE«
- Скачиваем и загружаем в Arduino IDE ESP8266WiFi.h — Библиотеку WiFi функций для ESP8266
- Ниже приведенную программу без комментариев для загрузки в Arduino IDE
// АКАДЕМИЯ РОБОТОТЕХНИКИ
// https://MirRobo.ru
//
// Программа написана в среде разработчика программ Arduino IDE на языке “Wiring” —
// диалект языка С++
//
// ПОДКЛЮЧЕНИЕ УЛЬТРАЗВУКОВОГО ДАТЧИКА HC-SR04 К МИКРОКОНТРОЛЛЕРУ ESP-8266
//
// ПОДКЛЮЧЕНИЕ МИКРОКОНТРОЛЛЕРА ESP-8266 К ИНТЕРНЕТ ЧЕРЕЗ ТОЧКУ ДОСТУПА
// ИЛИ ЧЕРЕЗ ИНТЕРНЕТ WiFi МАРШРУТИЗАТОР
//
// ДЛЯ ПОДКЛЮЧЕНИЯ К ИНТЕРНЕТУ МИКРОКОНТРОЛЛЕРА ESP-8266 ПРОПИСЫВАЕМ СТАТИЧЕСКИЙ IP
// АДРЕС, МАСКУ IP АДРЕСА, АДРЕС ШЛЮЗА ПО УМОЛЧАНИЮ
//
// ДЛЯ ВЫВОДА ДАННЫХ ПОЛУЧАЕМЫХ С УЛЬТРАЗВУКОВОГО ДАТЧИКА HC-SR04 БУДЕМ ИСПОЛЬЗОВАТЬ
// МОНИТОР ПОРТА СРЕДЫ РАЗРАБОТЧИКА ПРОГРАММ Arduino IDE
// ДЛЯ ПОСТРОЙКИ ГРАФИКА ИЗ ДАННЫХ ПОЛУЧАЕМЫХ С УЛЬТРАЗВУКОВОГО ДАТЧИКА HC-SR04 БУДЕМ
// ИСПОЛЬЗОВАТЬ СЕРВИС «Интернет вещей» — thingspeak.com
//
// ДЛЯ ПРЕДСТАВЛЕНИЯ НА САЙТЕ АКАДЕМИИ РОБОТОТЕХНИКИ ГРАФИКА ДАННЫХ ПОЛУЧАЕМЫХ С
// УЛЬТРАЗВУКОВОГО ДАТЧИКА HC-SR04 ИСПОЛЬЗУЕМ С СЕРВИСА thingspeak.com ТАКОЙ ЖЕ
// ФРЕЙМ КАК НА YOUTUBE СЕРВИСЕ, НАСТРАИВАЕМ ЕГО ПОД СИГНАЛЫ ПОСТУПАЮЩИЕ С
// УЛЬТРАЗВУКОВОГО ДАТЧИКА HC-SR04
// НОЯБРЬ 27 2016
// АВТОР: PetrDeCril’on
// Website:nashashkola27.ru/robo
/* Подключаем библиотеки с расширением .h — это фрагменты уже кем то написанных программ содержащие часто используемые функции для наших программ, находятся простым поиском в сети Интернет */
#include <ESP8266WiFi.h> /* ESP8266WiFi.h — Библиотека WiFi функций для ESP8266. Директива #include используется для включения сторонних библиотек*/
/* Создаем символьные переменные (запись-модификатор char обозначает символьный литерал длиной один байт) и присваеваем (знак =) — т.е. задаем значения которые изменить в дальнейшем будет нельзя ( запись константы модификатор: const).*/
/*Знак звездочка * указывает что имя ssid — возможно изменяемый в программе указатель на не возможно к изменению в программе значение «sonet» и модификаторы const char распространяются не на ssid а на не изменяемые в программе данные «sonet» */
//Задаем имя ssid и пароль pass WiFi точки доступа, у Вас их значения будут свои:
const char* ssid = «sonet»;
const char* pass = «123456»;
//Определяем и задаем к каким контактам (D7,D6)модуля микроконтроллера ESP-8266 будут подключены контакты (Echo,Trigger) ультразвукового датчика HC-SR04
#define echoPin D7 // Echo — входной сигнал эха от модуля ультразвукового датчика
// HC-SR04
#define trigPin D6 // Trigger — выходной сигнал запуска вутреннего микроконтроллера
// датчика HC-SR04 поступающий от модуля ESP-8266
long duration, distance; /* Задаём переменную duration — значение длины принимаемого импульса со входа Echo — эхо от модуля ультразвукового датчика HC-SR04; и переменную distance — вычисленное значение растояния от датчика до предмета от которого отразился ультразвуковой импульс. long — переменная длиной 32 бита со знаком (4 байта), может принимать значения от -2147483648 до 2147483647 */
/* Задаем с помощью функции IPAddress х() из библиотеки ESP8266WiFi.h статические IP адреса, Вы можете эти строки убрать так как по умолчанию во всех точках доступа поднята динамическая IP адресация DHCP которая эти адреса раздаёт автоматически при подключению к точке доступа: */
IPAddress ip(172, 17, 18, 6); //статический IP адрес модуля ESP-8266
IPAddress gateway(172, 17, 18, 1);/*статический IP адрес шлюза по умолчанию — адрес WiFi точки доступа */
IPAddress subnet(255,255,255,240);//маска Вашей подсети
/* Задаем в виде строковой переменной String ключ API вашего канала полученный Вами при регистрации на сервисе «Интернет вещей» — thingspeak.com */
String apiKey = «QL2UYHRXC99WP4BE»;
/* Создаем указатель server на символьную константу const char* со значением в виде адреса URL api.thingspeak.com сервиса «Интернет вещей»*/
const char* server = «api.thingspeak.com»;
/* Запускаем WiFi клиента функции взятой из библиотеки ESP8266WiFi.h */
WiFiClient client;
/* В программах для микроконтроллеров должны быть две обязательные функции: setup() и loop(), слово void используется при объявлении функций. После названия функции и круглых скобок идут фигурные скобки, внутри которых будет располагаться ваш код.
Функция setup() запускается один раз, после каждого включения питания или сброса платы Arduino. В теле данной функции пишется код для инициализации переменных, установки режима работы цифровых портов, и т.д.*/
void setup() {
Serial.begin(115200); /* Запускаем и программируем на модуле ESP-8266 последовательный интерфейс UART и задаем ему скорость обмена с Вашим компьютером 115200 бит/сек — бод */
delay(10); /* на всякий случай для увеличения времени реакции модуля ESP-8266 на предыдущую команду задаем паузу в 10 миллисекунд */
pinMode(trigPin, OUTPUT);/* задаем режим OUTPUT- «Выход» контакту D6 модуля ESP-8266 с именем в нашей программе trigPin */
pinMode(echoPin, INPUT);/* задаем режим INPUT- «Вход» контакту D7 модуля ESP-8266 с именем в нашей программе echoPin */
WiFi.begin(ssid, pass);/*Соединяемся с точкой доступа */
WiFi.config(ip, gateway, subnet);/*Прописываем статические IP адреса модуля ESP-8266 согласованные с точкой доступа WiFi, Вам эта функция может не понадобиться если у вас на точке доступа динамическая IP адресация DHCP*/
/* Выводим статус подключения модуля ESP-8266 к точке доступа WiFi в «Монитор порта» среды разработчика программ Arduino IDE: */
while (WiFi.status() != WL_CONNECTED) { /*Запускаем While — цикл который будет выполняться непрерывно и бесконечно до тех пор, пока значение функции WiFi.status() станет равно глобальной переменной WL_CONNECTED то есть произойдет соединение с точкой доступа WiFi — значение функции while () круглых скобках, (!= — логический знак «не равно») не станет равно логическому ЛОЖНО */
delay(500);/*для увеличения времени соединения модуля ESP-8266 с точкой доступа WiFi задаем паузу в 500 миллисекунд */
Serial.print(«.»);/*С помощью функции Serial.print() передаем в цикле изображение точки в «Монитор порта» среды разработчика программ Arduino IDE, через последовательный порт как ASCII текст — отображаем процесс подключения к точке доступа WiFi в виде цепочки точек */
}
Serial.println(» «);/* С помощью функции Serial.println() передаем пробел в «Монитор порта» через последовательный порт как ASCII текст с следующим за ним символом переноса строки (ASCII символ 13 или ‘\r’) и символом новой строки ( ASCII 10 или ‘\n’*/)
Serial.print)«WiFi connected, using IP address: «(;/* Передаем в «Монитор порта» запись WiFi connected, using IP address: через последовательный порт как ASCII текст */
Serial.println(WiFi.localIP)();/* Передаем в «Монитор порта» IP адрес модуля ESP-8266 через последовательный порт как ASCII текст с следующим за ним символом переноса строки (ASCII символ 13 или ‘\r’) и символом новой строки (ASCII 10 или ‘\n’) */
Serial.println(ssid);/*Передаем в «Монитор порта» ssid — имя WiFi сети через последовательный порт как ASCII текст с следующим за ним символом переноса строки (ASCII символ 13 или ‘\r’) и символом новой строки (ASCII 10 или ‘\n’) */
}
/* Функция loop() в бесконечном цикле последовательно раз за разом исполняет команды, которые описаны в её теле. Т.е. после завершения функции снова произойдет её вызов. То есть микроконтроллер постоянно работает и ждет внешних команд и данных с датчиков его можно перезагрузить программно кнопкой Reset или выключив/включив электропитание*/
void loop() {
/* В цикле void loop() с контакта D6 модуля ESP-8266 (переменная в программе trigPin) посылаем с промежутком 50 миллисекунд импульсы длительностью 10 микросекунд для запуска внутреннего микроконтроллера датчика HC-SR04. С контакта D7 модуля ESP-8266 (переменная в программе echoPin) принимаем усиленный и преобразованный датчиком HC-SR04 импульс пропорциональный дистанции до обнаруженного объекта ультразвуковым датчиком и вычисляемой по импирической формуле дистанция в сантиметрах равна длительности принимаемого импульса деленная на 50, подбирая делитель можно откорректировать линейную погрешность ультразвукового датчика */
digitalWrite(trigPin, LOW);/*С помощью функции digitalWrite() подаем на цифровой вход/выход(pin)(контакт D6 модуля ESP-8266 переменная в программе trigPin)значение логического нуля LOW — 0В(земля).*/
delayMicroseconds(2); /*задаем длительность логического нуля на trigPin 2 микросекунды*/
digitalWrite(trigPin, HIGH);/*Подаем на цифровой вход/выход(pin)(контакт D6 модуля ESP-8266 переменная в программе trigPin)значение логической единицы HIGH — 5В (3.3В для 3.3V плат).*/
delayMicroseconds(10);/*задаем длительность логической единицы на trigPin 10 микросекунд */
digitalWrite(trigPin, LOW);/*Подаем на цифровой вход/выход(pin)(контакт D6 модуля ESP-8266 переменная в программе trigPin)значение логического нуля LOW — 0В(земля).*/
duration = pulseIn(echoPin, HIGH);/*Присваеваем переменной duration значение HIGH длительности принимаемого импульса с контакта D7 модуля ESP-8266 (переменная в программе echoPin) то есть принимаем усиленный и преобразованный датчиком HC-SR04 импульс пропорциональный дистанции до обнаруженного объекта ультразвуковым датчиком */
distance = duration/58.2;/* Вычисляем по импирической формуле дистанцию до обнаруженного объекта (в см), опираясь на скорость звука в воздухе */
Serial.println(distance);/* Передаем в «Монитор порта» дистанцию до обнаруженного объекта (в см) через последовательный порт как ASCII текст с следующим за ним символом переноса строки (ASCII символ 13 или ‘\r’) и символом новой строки (ASCII 10 или ‘\n’) */
delay(50);/*Делаем промежуток 50 миллисекунд между выходными запускающими импульсами вутреннего микроконтроллера датчика HC-SR04*/
// ДЛЯ ПОСТРОЙКИ ГРАФИКА ИЗ ДАННЫХ ПОЛУЧАЕМЫХ С УЛЬТРАЗВУКОВОГО ДАТЧИКА HC-SR04 БУДЕМ
// ИСПОЛЬЗОВАТЬ СЕРВИС «Интернет вещей» — thingspeak.com
if (client.connect(server,80)) {/*Подключаемся к серверу api.thingspeak.com или
«184.106.153.149» */
/* Присваеваем String — сроковой переменной postStr последовательным подсоединением — конкатенацией — значения ключа API вашего канала полученный Вами при регистрации на сервисе «Интернет вещей» — thingspeak.com; поле канала &field1=; переменной distance определяющей дистанцию до обнаруженного объекта (в см), а также символы переноса строки (ASCII символ 13 или ‘\r’( и символы новой строки (ASCII 10 или ‘\n’): */
String postStr = apiKey;
postStr +=»&field1=»;
postStr += distance;
postStr += «\r\n\r\n»;
/* С помощью функции client.print() передаем на сервер api.thingspeak.com используя метод POST, HTML страницу с данными с ультразвукового датчика HC-SR04 */
client.print(«POST /update HTTP/1.1\n»);
client.print(«Host: api.thingspeak.com\n»);
client.print(«Connection: close\n»);
client.print(«X-THINGSPEAKAPIKEY: «+apiKey+»\n»);
client.print(«Content-Type: application/x-www-form-urlencoded\n»);
client.print(«Content-Length: «);
client.print(postStr.length);
client.print(«\n\n»);
client.print(postStr);
}
client.stop();/* С помощью функции client.stop() отключаемся от сервера api.thingspeak.com */
Serial.println(«Waiting…»);/* Передаем в «Монитор порта» сообщение ожидания: Waiting… через последовательный порт как ASCII текст с следующим за ним символом переноса строки (ASCII символ 13 или ‘\r’) и символом новой строки (ASCII 10 или ‘\n’)*/
delay(20000);/* Задаем минимальную задержку в 15 секунд между запросами к серверу api.thingspeak.com для педачи на него данных с ультразвукового датчика HC-SR04 */
}
После загрузки и запуска программы (прошивки) на микроконтроллере ESP8266 проверьте командой PING подключение Вашей схемы к сети WiFi:
УЛЬТРАЗВУКОВЫЕ ДАТЧИКИ
ПЕРЕДЕЛКА УЛЬТРАЗВУКОВОГО ДАТЧИКА HC-SR04
Подключаем ультразвуковой дальномер HC-SR04 к Arduino. » BlogLinux.ru
Работа модуля HC-SR04 основана на принципе эхолокации. Модуль посылает ультразвуковой сигнал и принимает его отражение от объекта. Измерив время между отправкой и получением импульса, не сложно вычислить расстояние до препятствия.
Характеристики:
Напряжение питания: 5 В.
Потребление в режиме тишины: 2 мА.
Потребление при работе: 15 мА.
Диапазон расстояний: 2–400 см.
Эффективный угол наблюдения: 15°.
Рабочий угол наблюдения: 30°.
Выходы:
VCC – питание.
GND – общий провод.
Trig – цифровой вход для включения измерения.
Echo – после завершения измерения, на этот выход будет подана логическая единица на
время, пропорциональное расстоянию до объекта.
Принцип работы:
На вход Trig датчика подаем импульс высокого уровня длительностью 10–15
микросекунд(μs). Датчик отправляет ультразвуковой сигнал «chirp» из восьми коротких
импульсов частотой выше предела диапазон слуха человека 40 кГц. Электроника датчика знает
скорость звука в воздухе. Измеряя время между отправленным и принятым ультразвуком,
ультразвуковой датчик HC-SR04 формирует выходной сигнал. Спустя примерно микросекунду ультразвуковой датчик HC-SR04 выдает на выходе Echo импульс высокого уровня длительностью до 38 миллисекунд(ms). Если препятствий не обнаружено, то на выходе будет сигнал с
длительностью 38 мс. Длина импульса на выходе Echo пропорциональна расстоянию до препятствия.
Расстояние вычисляется по формуле: S=F/58, где
S – расстояние в сантиметрах,
F – продолжительность импульса в микросекундах.
Следующее измерение рекомендуется выполнять не ранее чем через 50 мс.
Поскольку в основе работы устройства используется звук, сонар плохо подходит для определения расстояния до звукопоглощающих объектов таких как мебель с высоким ворсом или персидских котов. Для определения расстояний в таком окружении подойдёт инфракрасный дальномер.
Код:
// Укажем, что к каким пинам подключено
int trigPin = 10;
int echoPin = 11;
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop()
{
int duration, distance; // для большей точности установим значение LOW на пине Trig
digitalWrite(trigPin, LOW);
delayMicroseconds(2); // Теперь установим высокий уровень на пине Trig
digitalWrite(trigPin, HIGH); // Подождем 10 μs
delayMicroseconds(10);
digitalWrite(trigPin, LOW); // Узнаем длительность высокого сигнала на пине Echo
duration = pulseIn(echoPin, HIGH); // Рассчитаем расстояние
distance = duration / 58;
// Выведем значение в Serial Monitor
Serial.print(distance);
Serial.println(" cm");
delay(100);
}
Функция pulseIn() считывает длину сигнала на заданном порту (HIGH или LOW). Например, если задано считывание HIGH функцией pulseIn(), функция ожидает пока на заданном порту не появиться HIGH. Когда HIGH получен, включается таймер, который будет остановлен когда на порту вход/выхода будет LOW. Функция pulseIn() возвращает длину сигнала в микросекундах. Функция возвращает 0, если в течение заданного времени (тайм аута) не был зафиксирован сигнал на порту.
Это очень простой по принципу работы сенсор. Его легко подключается, простота в работе. Но есть и другие сенсоры с разными интерфейсами подключения , более умны и т.д. Например URM37.
Подключение ультразвукового датчика к Ардуино
Самым распространенным ультразвуковым (УЗ) локатором для Arduino является модуль HC-SR04 [1]. Одним из недостатков данного устройства является отсутствие температурной компенсации, теоретически это свойство можно использовать для измерения температуры [2]. Существует подобный УЗ датчик US-100 в котором уже предусмотрена подобная компенсация. Датчик был приобретен на Али за 2,5 доллара.
Датчик поставляется в полиэтиленовом пакете.
Конструктивно датчик US-100 напоминает HC-SR04, единственным заметным отличием является второй контакт заземления и наличие перемычки для переключения режимов работы.
Датчик имеет габариты 44 х 26 х 23 мм и массу 8,4 г. Диаметр УЗ излучателя и приемника составляет 16 мм.
Дальность действия датчика составляет 4 метра, угол зрения 15 градусов, то есть эти параметры аналогичны таковым у HC-SR04. Диапазон рабочих температур датчика составляет от -20 до +70 градусов Цельсия [3,4].
Схема принципиальная УЗ датчика
Рассматриваемый датчик может работать при напряжении питания от 2,4 В до 5,5 В [3,4], что выгодно отличает US-100 от HC-SR04. HC-SR04 требует для питания строго напряжения 5 В. Данное обстоятельство позволяет использовать US-100 вместе с платами Arduino, рассчитанными как на 5 В так и на 3,3 В без дополнительных DC-DC преобразователей.
При надетой перемычке датчик передает информацию через последовательный порт, программу для Arduino позволяющую использовать US-100 в данном режиме, можно взять здесь [3].
В этом режиме датчик потребляет 2,5 мА при напряжении 5 В и 3,25 мА при 3,3 В.
При снятой перемычке логика работы US-100 ничем не отличается от таковой у HC-SR04 [1, 5]. Как показал опыт автора в данном случае нельзя подключать датчик к 0 и 1 портам Arduino.
В этом режиме датчик потребляет 2,4 мА при 5 В и 1,8 мА при 3,3 В.
Датчик US-100 корректно измеряет расстояние до твердой поверхности. При облучении ультразвуком ворсистой поверхности, рассматриваемый датчик завышает расстояние до препятствия, а в непосредственной близости выдает, что расстояние превышает радиус действия датчика. В целом датчик существенно превосходит HC-SR04 по точности измерения расстояния, кроме этого US-100 может передавать данные по последовательному интерфейсу, имеет более широкий диапазон напряжений питания. Все это по субъективному мнению автора оправдывает заметно более высокую стоимость US-100 по сравнению с HC-SR04.
Полезные ссылки
- 2shemi.ru/ultrazvukovoj-datchik-izmereniya-rasstoyanij-hc-sr04/
- 2shemi.ru/izmerenie-temperatury-s-pomoshhyu-ultrazvukovogo-datchika/
- mirrobo.ru/micro/datchik-rasstojanija-us-100/
- dvrobot.ru/238/320/411.html
- robocraft.ru/blog/electronics/772.html
Все файлы для работы УЗ датчика (прошивка, схема, даташит) в архиве по ссылке. Автор обзора — Denev.
Ультразвуковой датчик HC-SR04 для измерения расстояния. Подключение к Ардуино | Электроника и жизнь
Здравствуйте, уважаемые читатели! Сегодня поговорим о весьма распространенном ультразвуковом датчике HC-SR04, который позволяет измерять расстояния до объекта в диапазоне от 3 см до 4 метров. В данной статье, разберем схему подключения датчика HC-SR04 к Ардуино и установим необходимую для работы с датчиком библиотеку.
Ультразвуковой датчик HC-SR04Ультразвуковой датчик HC-SR04
Принцип действия датчика HC-SR04
Принцип действия датчика HC-SR04 заключается в том, что он генерирует ультразвуковой импульсы на частоте около 40кГц и отправляет их через излучатель, на плате обозначенный буквой T ( transmitter, с англ. передатчик). А далее, принимает отраженный от препятствия сигнал с помощью приемника, который на плате обозначен буквой R ( receiver, с англ. приемник). Зная скорость распространения звуковой волны заданной частоты и по задержке между отправкой сигнала и его получением, можно достаточно точно определить расстояние до объекта. Т.е. в своей работе, датчик использует принцип эхолокации.
Принцип действия датчика HC-SR04Принцип действия датчика HC-SR04
Заявленная погрешность при определении расстояния у датчика HC-SR04 составляет 3 мм. Далее мы на практике проверим эту величину.
Характеристики датчика HC-SR04
- Измеряемый диапазон : от 3 до 500 см (проверим на практике в следующей статье, ссылки внизу страницы).
- Точность измерения : 0,3 см.
- Угол измерения : 15 градусов.
- Напряжение питания : 5 В.
- Потребление при работе : 15 мА.
- Сила тока покоя : < 2 мА.
- Частота ультразвука : 40кГц.
- Размеры : 45 мм x 20 мм x 15 мм.
Схема подключения датчика HC-SR04 к Ардуино
Схема подключения датчика HC-SR04 к АрдуиноСхема подключения датчика HC-SR04 к Ардуино
Для подключения датчика нам потребуется задействовать 2 цифровых пина Ардуино. Цифровой вход датчика (Trig ) мы подключим ко 2 пину Ардуино и цифровой выход датчика ( Echo ) к 3 пину. Выводы питания VCC и GND подключим к пинам 5 V и GND Arduino UNO , соответственно.
Библиотеки для работы с датчиком HC-SR04
Для работы с ультразвуковым датчиком HC-SR04 существует множество библиотек. Расскажу о двух самых популярных.
Библиотека Ultrasonic
Скачать библиотеку можно по ссылке https:// github. com/ ErickSimoes/ Ultrasonic.
Библиотека UltrasonicБиблиотека Ultrasonic
После скачивания библиотеки добавляем ее в среду Arduino IDE.
Добавление библиотеки Ultrasonic в Arduino IDEДобавление библиотеки Ultrasonic в Arduino IDE
И открываем пример UltrasonicSimple .
Пример UltrasonicSimple библиотекиПример UltrasonicSimple библиотеки
Единственное, что изменим в скетче, это номера пинов, к которым у нас подключены цифровой вход (Trig) и цифровой выход датчика (Echo) с 12 и 13, на 2 и 3 , соответственно.
Изменение номеров подключенных пиновИзменение номеров подключенных пинов
После загрузки скетча в Ардуино, открываем Монитор порта и видим выводимое раз в секунду значение расстояния, измеренное датчиком.
Монитор портаМонитор порта
Минимальное измеряемое расстояние составляет 3 см . Тест на максимальное измеряемое расстояние, будет в следующей статье.
Библиотека NewPing
Теперь загрузим и установим другую библиотеку, которая называется NewPing . Загружаем самую последнюю версию библиотеки NewPing_v1.9.1.zip по ссылке со страницы https:// playground. arduino. cc/ Code/ NewPing/.
Библиотека NewPingБиблиотека NewPing
Добавляем библиотеку в Arduino IDE, открываем скетч NewPingExample из примеров библиотеки и вносим небольшие корректировки в соответствие с нашим подключением.
Изменения в скетче NewPingExampleИзменения в скетче NewPingExample
Загружаем скетч в Ардуино и открываем Монитор порта.
Монитор портаМонитор порта
Выводится расстояние до ближайшего препятствия в см. Кстати, хочу отметить, что скетч занимает в памяти 2458 байт, что на 262 байта меньше, чем в случае с библиотекой Ultrasonic . Минимальная дистанция определения препятствия составляет те же 3 см, а вот тест на максимальную дальность работы датчика и точность измерения с использованием обеих библиотек, я проведу в следующей статье . И мы на практике выясним, зависят ли получаемые результаты, от того, какую библиотеку использовать.
Продолжение >>> Вывод информации с датчика HC-SR04 на дисплей TM1637.
_________________________________________________________
Спасибо, что дочитали до конца! Если статья понравилась, нажмите, пожалуйста, соответствующую кнопку. Если интересна тематика электроники и различных электронных самоделок, подписывайтесь на канал. До встречи в новых статьях!
Другие публикации по теме:
Ультразвуковой дальномер HC-SR04 — Как подключить — AVR project.ru
По случаю приобрел себе ультразвуковой дальномер HC-SR04. Девайс представляет из себя модуль с двумя пъезоизлучателями, один из которых служит излучателем, а второй — приемником ультразвуковой волны; плюс управляющая электроника для управления излучателем и приемником. Для подключения модуль имеет 4-х контактный разъем: два из которых питание (требуется 5 вольт), и еще два для общения с микроконтроллером.
Интерфейс связи тут организован очень просто: на вход подаем короткий импульс длительностью 10-15 микросекунд и ждем импульса на выходе. Как только до приемника дойдет отраженная волна, модуль сам рассчитает расстояние и выдаст на ногу Echo импульс высокого уровня длинной до 25 мс. Длина выходного импульса будет пропорциональна расстоянию до препятствия от которого отразилась ультразвуковая волна. Нам остается только поймать этот импульс, посчитать его длину и перевести это значение в расстояние.
Технические характеристики:
- Напряжение питания: 5V
- Ток покоя: < 2 мА
- Эффективный угол обзора: < 15 °
- Диапазон расстояний: 2 см — 500 см
- Разрешение: 0,3 см
S=F/58 ; где S — дистанция в сантиметрах, F — длина импульса в микросекундах
Как видно, даже знать скорость звука не обязательно.
Для испытаний собрал вот такую схему:
Модуль соединяется к микроконтроллеру напрямую. Резисторы подтяжки ставить не нужно, они уже есть на плате модуля.
И так, нам нужно ловить всего один импульс, и затем посчитать его длину. По началу хотел подбить под это дело одно из внешних прерываний микроконтроллера, при этом прерывание должно было происходить как по переднему фронту (переход с низкого в высокое состояние), так и по заднему фронту (с высокого на низкое). Тоесть придется на лету менять конфигурацию этого прерывания. Плюс к этому нужно задействовать один из таймеров, который должен измерять длину импульса. Слишком сложно для маленькой операции фиксирования сигнала.. В Bascom-AVR на этот случай есть специальная команда Pulsein. Вот пример того, как поймать сигнал с помощью этой команды:
Pulsein A , Pind , 5 , 1
здесь, в переменную A запишется значение длины импульса в десятках микросекунд, снятого с ноги Pind.5. Единица на конце команды говорит, что нужно ловить сигнал высокого уровня. Если изменить на 0, тогда контроллер будет ловить сигнал низкого уровня.
Эта команда не использует прерываний и хардверного таймера, но способна определить появление импульса и зафиксировать его длину с разрешением 10 мкс. Команда использует для хранения длины импульса 2-х байтный тип переменной, поэтому максимальная длина принятого сигнала может быть 655,35 мс. Этого вполне хватает для поставленной задачи, но по необходимости можно отредактировать файл библиотеки mcs.lib и изменить максимальную длительность фиксируемого импульса.
Полный листинг программы представлен ниже
$regfile = «m8def.dat»
$crystal = 8000000
‘конфигурация подключения дисплея к портам МК
Config Lcd = 16 * 2
Config Lcdpin=Pin,Rs=Portc.5,E=Portc.4,Db4=Portc.3,Db5=Portc.2,Db6=Portc.1,Db7=Portc.0
Config Portd.4 = Output ‘выход для подключения ноги Trigger
Trigger Alias Portd.4
Trigger = 0
Config Portd.5 = Input ‘вход для импульса Echo
Config Portd.7 = Output ‘конфигурация для подключения светодиода
Led Alias Portd.7
Led = 0
Dim A As Word ‘сюда копируется значение длины сигнала
Dim S As Single ‘переменная для хранения расстояния
Const K = 0.1725 ‘коэффициент для перевода длины импульса в расстояние
Waitms 50
Cursor Off
Cls
Lcd «Sonar HC-SR04»
Locate 2 , 1
Lcd «AVRproject.ru»
Led = 1
Waitms 100
Led = 0
Wait 3
Do
Trigger = 1 ‘даем импульс на ногу Portd.4 длительностью 15 мкс
Waitus 15
Trigger = 0
Waitus 10
Pulsein A , Pind , 5 , 1 ‘ловим импульс высокого уровня на PinD.5
S = A * K ‘переводим значения
Cls
Lcd Fusing(s , «###.#») ‘выводим данные на LCD, расстояние в сантиметрах
If S < 20 Then ‘если растояние меньше заданного предела
Sound , Portb.0 , 200 , 500 ‘подадим голос через динамик на PortB.0
Led = 1 ‘и мигнем светодиодом
Waitms 20
Led = 0
End If
Waitms 100
Loop
End
На дисплей выводится число, показывающее расстояние до препятствия в сантиметрах. Еще добавил проверку на минимальное расстояние, если оно меньше 20-и сантиметров, будет выдан звуковой сигнал. По этому же принципу можно без проблем собрать парктроник своими руками 🙂
А теперь испытания:
Честно говоря не ожидал таких отличных результатов! Точность измерения проверял только до 50 см, показания прыгали не больше ± 0,5 см. И больше зависили от того, насколько вертикальна плоскость препятствия. Так же сигнал плохо отражается или вообще не отражается от ворсистых поверхностей. Оно и понятно, законы физики не обойдешь. В общем, модуль очень даже не плох!
Также есть модель сонара HC-SR04 для Proteus, её можно взять по ссылке ниже:
Ультразвуковой дальномер HC-SR04 без микроконтроллера часть 1
Часть 1. Сигнализаторы присутствия
В статье приводится описание принципа работы ультразвукового дальномера HC-SR04 и некоторых устройств на их основе: сигнализаторов присутствия, аналогового дальномера и выключателя освещения. Конструкции, описание которых приведены в статье, можно использовать в радиокружках для отработки навыков конструирования или в различных устройствах, в том числе и в домашней автоматике.
Ультразвуковой дальномер HC-SR04 (Ultrasonic Ranging Module HC-SR04. — https://lib.chipdip.ru/092/DOC00109 2302.pdf (29.01.18)), далее дальномер HC-SR04, широко известен, доступен и часто используется радиолюбителями для построения различных устройств. В отличие от других датчиков, дальномер HC-SR04 не реагирует на солнечный свет или цвет объекта, но его эффективность сильно зависит от отражательных свойств поверхности. Традиционно его применяют совместно с микроконтроллерами, а наиболее широко — с платами семейства Arduino, чему способствуют доступные библиотеки для управления дальномером. Описаний подобных конструкций много в Интернете. Но в некоторых случаях при построении отдельных устройств можно с успехом обойтись и без микроконтроллеров. Прежде всего, это относится к устройствам, где не требуется точного измерения расстояния, а сделать это позволяют некоторые особенности дальномера HC-SR04. Дело в том, что информация о расстоянии с его выхода формально выводится в цифровом виде, но её нетрудно простыми средствами обработать без микроконтроллера или преобразовать в аналоговую, а затем использовать для построения различных автоматов.
Но для начала надо подробнее познакомиться с конструкцией и параметрами дальномера HC-SR04 (рис. 1). Следует отметить, что топология печатной платы дальномера у разных производителей может отличаться.
Рис. 1. Дальномер HC-SR04
Основные технические характеристики
Напряжение питания, В ………….4,8…5,5
Максимальный потребляемый ток, мА……………….15
Угол обзора, град……………..15
Измеряемое расстояние, см …………2…400
Погрешность измерения, см………………………0,3
Интервал рабочих температур, оС ……………….0…+ 60
Габаритные размеры, мм . . . .45x20x15
Назначение выводов HC-SR04: Vcc — плюсовой вывод питания; Trig — вход запускающего сигнала; Echo — выход эхо-сигнала; GND — общий «земляной» вывод.
Принцип работы дальномера HC-SR04 основан на принципе эхолокации, т. е. использует точно такую же технологию, что и летучие мыши, дельфины и некоторые другие животные для ориентации в пространстве, а именно ультразвук (УЗ). На передней части платы дальномера расположено два УЗ-преобразователя, первый — это передатчик (Transmiter) УЗ-волн (TCT40-16T), он расположен на плате слева, иногда его отмечают надписью «T», а второй — приёмник (Receiver) отражённых УЗ-волн (TCT40-16R), он установлен справа, иногда маркируется надписью «R», а в центре расположен кварцевый резонатор.
Работу дальномера HC-SR04 поясняет рис. 2. Для запуска процесса измерения на вход Trig (UTR) надо подать импульс длительностью tTR= 10…15 мкс. По спаду этого импульса дальномер излучает пачку из восьми УЗ зондирующих импульсов UT на частоте 40 кГц. Через небольшой промежуток времени (около 1 мкс) после окончании пачки УЗ-импульсов на выходе Echo (UEC) появится высокий логический уровень. Он сменится на низкий, когда в приёмник попадёт отражённый УЗ-сигнал UR. Таким образом, длительность импульса tEC на выходе Echo зависит от расстояния до препятствия: L(см) = tEС(мкс)/58. Поэтому, измерив длительность импульса tEC и проведя несложные расчёты, можно определить это расстояние. Так обычно и происходит в устройствах, собранных на дальномере HC-SR04 и микроконтроллере (или плате семейства Arduino). По результатам измерения принимается какое-либо решение. Если отражённого УЗ-сигнала не будет или он будет ниже порога обнаружения, длительность импульса tEC — около 38 мс. Поэтому период следования запускающих импульсов TTR должен быть не менее 45…50 мс.
Рис. 2. Диаграмма, поясняющая работу дальномера HC-SR04
Сигнализатор присутствия-1
Самые распространённые датчики движения — это ИК-датчики, которые относятся к так называемым пассивным. Их основа — пироэлектрический датчик, который реагирует на изменение ИК-излучения, попадающего на него. Если это излучение будет мало, такой датчик на перемещение объекта не реагирует. Одним из главных недостатков большинства таких датчиков является то, что они реагируют только на движение человека. Если применить такой датчик в выключателе освещения, например, на лестничной площадке, где люди постоянно перемещаются, проблем не возникает. Но если человек будет неподвижен, такой ИК-датчик перестанет реагировать и свет погаснет.
Для таких случаев более подходящим будет активный датчик, который излучает зондирующий сигнал и принимает сигнал, отражённый от объекта. Сделать такой датчик можно на основе дальномера HC-SR04. В таком устройстве не требуется измерять точное расстояние до предмета, и вполне достаточно информации о том, что он расположен на расстоянии меньше заранее установленного. Принцип работы такого сигнализатора может быть основан на том, что в дежурном состоянии на выходе дальномера HC-SR04 присутствует сигнал, параметры которого обусловлены наличием удалённых предметов или препятствий. Впрочем, отражённого сигнала может и не быть совсем. Поэтому длительность импульса tЕСна выходе Echo должна быть сравнительно большой. При появлении в зоне действия дальномера НС-SR04 более близко расположенных предметов длительность импульса tEC существенно уменьшается. Это и можно использовать для построения сигнализатора присутствия. Но для этого надо каким-то образом измерить длительность импульса tEC. В устройствах с микроконтроллерами это реализуется напрямую. Более простое решение без процедуры измерения можно реализовать на логических микросхемах.
Схема датчика присутствия показана на рис. 3. На логических элементах DD1.1 и DD1.2 собран генератор запускающих импульсов. На выходе элемента DD1.2 формируются импульсы длительностью 10…15 мкс с периодом следования около 45 мс. Реализуется это за счёт того, что резисторы в цепи зарядки и разрядки конденсатора С2 отличаются примерно на четыре порядка. Элемент DD2.1 инвертирует сигнал с выхода Echo дальномера. На элементах DD2.2 и DD2.3 собран ждущий одновибратор образцовых импульсов, которые задают временное окно для сравнения с инвертированным сигналом с выхода Echo. Это сравнение осуществляет логический элемент DD2.4 (2И-НЕ). На элементах DD1.3 и DD1.4 собран буферный каскад, который подаёт питающее напряжение на элементы сигнализации — светодиод HL1 и акустический излучатель HA1 со встроенным генератором.
Рис. 3. Схема датчика присутствия
Диаграмма, поясняющая работу сигнализатора, показана на рис. 4. Осциллограммы в контрольных точках 1-6 в исходном состоянии показаны красным цветом. После поступления импульса запуска 1 через некоторое время на выходе Echo появляется импульс 2, длительность которого зависит от расстояния до объекта, от которого пришёл отражённый сигнал. Этот импульс инвертирует (импульс 3) элемент DD2.1. По спаду импульса 3 ждущий одновибратор формирует образцовый импульс 4, длительность которого можно изменять подстроечным резистором R3. Элемент DD2.4 сравнивает импульсы 3 и 4. В исходном (дежурном) состоянии устройства длительность импульса 3 превышает длительность импульса 4, поэтому на выходе этого элемента присутствует высокий логический уровень (сигнал 5). Конденсатор С4 через резистор R5 заряжается до того же уровня, и на выходе элементов DD1.3 и DD1.4 присутствует низкий уровень (сигнал 6), поэтому светодиод HL1 и звуковой излучатель HA1 обесточены.
Рис. 4. Диаграмма, поясняющая работу сигнализатора
При появлении в зоне контроля сигнализатора объекта, который отражает УЗ-сигналы, состояние устройства изменяется. Осциллограммы для этого случая показаны синим цветом. Во-первых, длительность импульса 2 на выходе Echo, а также импульса 3 уменьшается. Поэтому на выходе элемента DD2.4 кратковременно появится низкий уровень (импульс 5), что приведёт к быстрой разрядке через диод VD2 конденсатора С4 и появлению на выходе элементов DD1.3 и DD1.4 высокого уровня. В результате включится светодиод HL1 и начнёт работать звуковой излучатель HA1, которые и подадут сигнал о наличии какого-либо объекта в зоне контроля сигнализатора. После ухода объекта из этой зоны сигнализатор вернётся в исходное состояние. В дежурном режиме устройство потребляет ток 3,3 мА, при подаче сигнала — 7,5 мА. Для его питания надо применить стабилизированный источник.
Все элементы сигнализатора размещены на односторонней печатной плате из стеклотекстолита толщиной 1…1,5 мм, её чертёж показан на рис. 5, а смонтированная плата — на рис. 6. Применены постоянные резисторы С2-23, Р1-4, МЛТ (R1 в данном случае составлен из двух соединённых последовательно резисторов КВИ по 5,1 МОм), подстроечный — СП3-19, оксидные конденсаторы — К50-35 и импортные, остальные — плёночные или керамические (С2 должен быть с малым током утечки). Диоды — любые маломощные импульсные, светодиод — маломощный любого свечения, можно применить мигающий с напряжением питания 5 В, в этом случае резистор R6 заменяют проволочной перемычкой. Звуковой излучатель — со встроенным генератором, обеспечивающий достаточную громкость при напряжении 5 В. Дальномер HC-SR04 можно впаять в плату либо применить для его подключения гнёзда из серии PSB, например, отрезав четыре штуки от гнезда PSB-10 (DS1023-1×10). Второй вариант, конечно, предпочтительней, поскольку позволяет оперативно заменять дальномеры и тем самым проверять их работоспособность и сравнивать их между собой.
Рис. 5. Чертёж печатной платы сигнализатора
Рис. 6. Смонтированная плата устройства
Налаживание сводится к проверке надёжного запуска дальномера HC-SR04, при необходимости для этого следует подобрать конденсатор С2. Дальность обнаружения устанавливают подстроечным резистором R3.
Сигнализатор присутствия-2
В сигнализаторе, описание которого приведено выше, реализован метод контроля длительности импульса на выходе Echo дальномера. Но импульсы на этом выходе относительно просто преобразовать в постоянное напряжение и уже затем использовать его для проведения измерений или управления другими элементами. Дело в том, что дальномер работает постоянно, и на выходе Echo дальномера HC-SR04 присутствует не отдельный импульс, а их последовательность. Если такую последовательность подать на вход интегрирующей RC-цепи, на её выходе будет напряжение ивых, пропорциональное амплитуде Uп и скважности Q импульсов: Uвых = Uп/Q, где Q = TTR/tEC. На практике это означает, что с приближением объекта постоянное напряжение на выходе интегрирующей RC-цепи уменьшается.
Схема второго варианта датчика присутствия показана на рис. 7. Формирователь запускающих импульсов здесь реализован по несколько иному принципу, он собран на логических элементах микросхемы DD1. На элементах DD1.1 и DD1.2 собран RC-генератор импульсов с частотой следования около 60 мс. Эти импульсы напрямую поступают на первый вход (вывод 12) элемента DD1.3, а на второй — через дифференцирующую RC-цепь C3R4, в результате на его выходе формируются запускающие импульсы, которые инвертирует элемент DD1.4, после чего они поступают на вход Trig дальномера HC-SR04. Формирователь запускающих импульсов в этой конструкции собран на большем числе элементов, чем в предыдущем устройстве, но зато не содержит высокоомных резисторов.
Рис. 7. Схема второго варианта датчика присутствия
Выходные импульсы дальномера HC-SR04 поступают на интегрирующую RC-цепь R2C4, постоянное напряжение на выходе которой зависит от расстояния до объекта. Это напряжение подаётся на инвертирующий вход ОУ DA2, который работает как компаратор. На его неинвертирующий вход поступает образцовое напряжение с делителя напряжения R3R5. Если объект находится за пределами зоны контроля сигнализатора, напряжение на выходе интегрирующей цепи превышает образцовое и на выходе ОУ будет напряжение, близкое к нулю. Поэтому включён светодиод HL1 зелёного свечения, сигнализирующий о работе устройства. Светодиод HL2 красного свечения и акустический сигнализатор со встроенным генератором обесточены.
При появлении в зоне контроля объекта напряжение на инвертирующем входе ОУ уменьшается и на его выходе появляется напряжение примерно на 1,5 В меньше питающего. В результате светодиод HL1 гаснет, включаются светодиод HL2 и акустический излучатель HA1, которые и подадут сигнал.
Длительность запускающего импульса можно изменить подборкой конденсатора С3. Дальность срабатывания сигнализатора устанавливают подстроечным резистором R5. Чтобы ввести гистерезис и сделать переключение сигнализатора более чётким, следует ввести резистор R8, который обеспечивает положительную обратную связь. Этот резистор можно установить со стороны печатных проводников.
Чтобы сделать питание сигнализатора более универсальным, например, питать его от батареи «Крона» или блока питания с выходным напряжением 7…12 В, в устройство введён интегральный стабилизатор DA1, который стабилизирует напряжение питания дальномера HC-SR04 и цифровой микросхемы. В дежурном режиме потребляемый ток — 8 мА, при подаче сигнала — 13 мА.
Чертёж односторонней платы сигнализатора, изготовленной из стеклотекстолита толщиной 1…1,5 мм, показан на рис. 8, а смонтированная плата — на рис. 9. В этом сигнализаторе можно применить аналогичные детали.
Рис. 8. Чертёж односторонней платы сигнализатора
Рис. 9. Смонтрованная плата устройства
Эти сигнализаторы присутствия можно применить в моделях автомобилей или других подвижных объектах для исключения столкновения с препятствиями, а также в различных устройствах домашней автоматики.
Продолжение следует
Чертежи печатных плат в формате Sprint-Layout имеются здесь.
Автор: И. Нечаев, г. Москва
Ультразвуковой датчикHC-SR04 с руководством по Arduino
Ультразвуковой датчикHC-SR04 — это датчик, который может измерять расстояние . Он излучает ультразвук при 40 000 Гц (40 кГц) , который движется по воздуху и, если на его пути есть объект или препятствие, он отскакивает обратно к модулю. Учитывая время прохождения и скорость звука, вы можете рассчитать расстояние.
Конфигурационный вывод HC-SR04 — это VCC (1), TRIG (2), ECHO (3) и GND (4).Напряжение питания VCC составляет + 5V , и вы можете подключить вывод TRIG и ECHO к любому цифровому вводу / выводу на вашей плате Arduino.
материалов , которые нам понадобятся для создания этого проекта:
1. Arduino UNO R3 Ch440 (вы можете использовать любые платы Arduino)
2. Ультразвуковой датчик HC-SR04
3. Провода перемычки между мужчинами
4. Макетная плата
Соединение Arduino и ультразвукового датчика HC-SR04
Для генерации ультразвука нам нужно установить триггерный вывод на High State для 10 мкс .Это отправит звуковой импульс за 8 циклов, который будет перемещаться со скоростью звука и будет принят в Echo Pin. Echo Pin выведет , время в микросекундах, прохождение звуковой волны.
Например, если объект находится на расстоянии 20 см от датчика, а скорость звука составляет 340 м / с, или 0,034 см / мкс, звуковой волне потребуется пройти около 588 микросекунд. Но то, что вы получите от вывода Echo, будет удвоить , потому что звуковая волна должна пройти вперед и отскочить назад .Итак, чтобы получить расстояние в сантиметрах, нам нужно умножить полученное значение времени прохождения от вывода эхо-сигнала на 0,034 и разделить его на 2.
Для программного кода сначала нам нужно определить триггерный вывод и эхо-вывод, которые связаны на плату Arduino. В этом проекте EchoPin прикреплен к D2 , а TrigPin — к D3. Затем определите переменные для расстояния (int) и продолжительности (long).
В цикле сначала вы должны убедиться, что триггерный вывод свободен, поэтому мы должны установить этот вывод на LOW State всего на 2 мкс .Теперь для генерации волны ультразвука мы должны установить trigPin на HIGH State на 10 мкс . Используя функцию pulseIn () , вы должны прочитать время прохождения и поместить это значение в переменную «duration». Эта функция имеет 2 параметра, первый — это имя вывода эхо-сигнала, а для второго вы можете указать HIGH или LOW. В этом случае ВЫСОКИЙ означает, что функция pulseIn () будет ждать, пока вывод перейдет в ВЫСОКИЙ уровень, вызванный отраженной звуковой волной, и начнет отсчет времени, затем она будет ждать, пока вывод перейдет в НИЗКИЙ, когда звуковая волна закончится, что остановит отсчет времени.В конце функция вернет длину импульса в микросекундах. Чтобы получить расстояние, мы умножим продолжительность на 0,034 и разделим на 2, как мы объясняли это уравнение ранее. В конце мы напечатаем значение расстояния на последовательном мониторе.
Шаги:
1. Сначала выполните электромонтаж, как показано на рисунке
2. Откройте программное обеспечение Arduino IDE и запишите свой код, или загрузите код ниже и откройте его
3. Выберите свою собственную плату Arduino (в данном случае Arduino Uno), выбрав Tools > Board > Arduino / Geniuno Uno
4.Выберите свой COM-порт (обычно отображается только один существующий порт), Инструменты > Порт > COM .. (Если есть несколько портов, попробуйте один за другим)
5. Загрузите свой код с помощью нажатие Ctrl + U или Sketch > Upload
6. Для отображения данных измерений вы можете использовать Serial Monitor, нажав Ctrl + Shift + M (убедитесь, что скорость передачи данных 9600)
Результаты:
После загрузки кода отобразите данные с помощью Serial Monitor.Теперь попробуйте поставить объект перед датчиком и посмотреть результат измерения.
Для примера, вы можете использовать ручной ленточный измеритель, чтобы измерить расстояние и сравнить его с расстоянием на последовательном мониторе. Если вы хотите отобразить его на ЖК-дисплее, вы можете следовать второй схеме подключения и загрузить приведенный ниже код.
Как использовать ультразвуковой датчик HC-SR04 с Cricket
Предисловие: это наш клиентский проект от Хайрула Алама, который любезно делится тем, как он создает детектор парковок IoT с использованием ультразвукового датчика, Arduino и IoT Cricket Wi -Fi модуль .Он также дает советы, как сделать его в меньшем форм-факторе и питаться непосредственно от батарей.
В этом проекте я собираюсь показать, как использовать HC-SR04 для измерения расстояния и отправки уведомления на смартфон при обнаружении объекта в пределах 30 см. Здесь я использую Arduino UNO (но это может быть любой другой микроконтроллер) для оценки расстояния от ультразвукового датчика. Я также использую IOT Cricket для подключения к Интернету по сети Wi-Fi и отправки уведомлений на телефон.Я собираюсь настроить Cricket для использования службы Pushsafer для отправки push-уведомлений, но, конечно, вы можете использовать альтернативные службы, такие как Pushover, IFTTT, Blynk, Zapier, Emails, Firebase или любой другой интернет-сервис, который вам нравится.
Вы можете изменить этот проект, чтобы создать интеллектуальный детектор транспортных средств для парковки, и вы можете получать уведомления на свой телефон об отсутствии или наличии автомобиля. Установив устройство в каждый слот, вы также можете подсчитать общее количество свободных слотов, доступных на парковке, и визуализировать информацию из приложения для смартфона, веб-панели управления или интегрироваться в систему с помощью MQTT / HTTP RESTfulAPI.
Итак, без лишних обсуждений приступим к изготовлению!
Предварительные требования
Шаг 1. Подключение ультразвукового датчика
HC-SR04 к ArduinoУльтразвуковой датчик использует сонар (ультразвук) для определения расстояния до объекта. Это бесконтактный датчик для определения расстояния или дальности с высокой точностью и стабильностью. Ультразвуковой датчик состоит из ультразвукового передатчика и приемника. Передатчик отправляет 8 циклов ультразвука с частотой 40 кГц, а приемник ожидает получения эхо-сигнала.Расстояние рассчитывается на основе того, сколько времени прошло с момента передачи сигнала до момента получения эха.
Для запуска передачи HC-SR04 имеет вывод под названием Trig, а для уведомления о приеме он использует вывод Echo. Выводы Trig и Echo должны быть подключены к двум цифровым выводам Arduino. Контакты Vcc и Gnd датчика должны быть подключены к контактам 5V и GND Arduino соответственно.
Я использовал 4 перемычки «папа-мама» для подключения ультразвукового датчика к Arduino в соответствии с приведенной выше схемой.
Шаг 2. Подключение модуля Cricket WiFi к Arduino
Arduino не имеет сетевых возможностей. Итак, мы используем Cricket для подключения к Интернету для отправки уведомлений в мобильное приложение. Устройства Wi-Fi потребляют много энергии, а Cricket — нет! Крикет очень эффективно использует технику сна для экономии энергии. Эта энергоэффективность и совместимость по напряжению сделали его идеальным выбором для приложения IoT с питанием от аккумулятора. Cricket автоматически переходит в режим нулевого энергопотребления после отправки данных в сеть.Если вы хотите отправлять данные с регулярным интервалом, вы также можете настроить Cricket для этого. Это автоматически разбудит Cricket с заданным интервалом времени, используя его внутренние часы реального времени (RTC). Cricket также может просыпаться при подаче напряжения на вывод WAKE_UP от внешнего источника, и это то, что мы собираемся использовать в этом проекте.
Подключите:
Выход 3,3 В Arduino к контакту BATT Cricket
цифровой контакт 10 к контакту WAKE_UP Cricket
GND Arduino к GND Cricket
Я перерезал 2 перемычки «папа-папа» в середине, чтобы получилось 4, и припаял три с помощью сверчка в соответствии со схемой.Затем я подключил Cricket к Arduino, используя штекер.
Шаг 3. Загрузка программы в Arduino
Предположим, мы хотим получать уведомление на наш телефон, когда объект появляется в пределах 30 см от датчика. Для этого нам нужно измерить расстояние до объекта, проверив значение 30 см или меньше, и сгенерировать импульс 3,3 В на цифровой вывод Arduino. По умолчанию цифровой вывод Arduino выдает напряжение 5 В, что несовместимо с Cricket. Итак, мы будем использовать функцию analogWrite () для вывода ШИМ (вывод 10 в нашем случае), чтобы сгенерировать 3.Короткий импульс 3В. Для генерации 3,3 В значение аналоговой записи составляет около 170.
Скопируйте следующий эскиз и загрузите его в свой Arduino.
int trigPin = 8; // Курок int echoPin = 9; // Эхо int wakePin = 10; большая продолжительность; int см; void setup () { // Начало последовательного порта Serial.begin (9600); // Определяем входы и выходы pinMode (trigPin, ВЫХОД); pinMode (echoPin, ВХОД); pinMode (wakePin, ВЫХОД); } void loop () { int distance = calculate_distance (); if (distance <= 30) { analogWrite (wakePin, 170); // производим 3.3 В для вывода из спящего режима, digitalWrite () выдаст 5 В. задержка (10); // делаем высокий импульс на 10 мс analogWrite (wakePin, 0); // сделать его низким задержка (20000); // больше не измерять до тех пор, пока не пройдет 20 секунд. } задержка (500); // проверка каждые 1/2 секунды } int calculate_distance () { // Датчик запускается ВЫСОКИМ импульсом длительностью 10 или более микросекунд. // Заранее подайте короткий НИЗКИЙ импульс, чтобы обеспечить чистый ВЫСОКИЙ импульс: digitalWrite (trigPin, LOW); delayMicroseconds (5); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); // Считываем сигнал с датчика: ВЫСОКИЙ импульс, // продолжительность - это время (в микросекундах) с момента отправки duration = pulseIn (echoPin, HIGH); // Нам нужно преобразовать продолжительность в расстояние.// Мы можем рассчитать расстояние по следующей формуле: // расстояние = (время пробега / 2) x скорость звука // Скорость звука: 343 м / с = 0,0343 см / мкСм = 1 / 29,1 см / мкСм см = (продолжительность / 2) / 29,1; // Делим на 29,1 или умножаем на 0,0343 Серийный отпечаток (см); Serial.print («см»); Serial.println (); возврат см; }
Чтобы проверить, работает ли наша программа должным образом, откройте монитор последовательного порта и проследите за показаниями. Поместите руку или любое препятствие перед датчиком, медленно приблизьте его и посмотрите на показания, если отображаются правильные значения.
Шаг 4. Настройка
PushsaferPushsafer - одна из самых простых и надежных многоплатформенных служб push-уведомлений. Используя Pushsafer, вы можете бесплатно получить 50 уведомлений, а затем дополнительно приобрести 1000 примерно за 1 доллар. Его очень легко настроить, выполнив следующие действия:
Перейдите на pushsafer.com и создайте учетную запись
Войдите в свою учетную запись и с панели управления перейдите в раздел «Отправить уведомление»
Напишите свой Уведомление в окне сообщения
Нажмите «Создать ссылку» и напишите сгенерированную ссылку в блокноте и сохраните.Мы будем использовать эту ссылку при настройке Cricket
Установите приложение Pushsafer на свой смартфон и войдите в систему с той же учетной записью
Для тестирования вы можете нажать кнопку «Отправить сообщение». Если все настроено правильно, вы должны получить на свой смартфон уведомление, содержащее предложение, которое вы ввели в поле «Сообщение».
Шаг 5: Настройка Cricket
Теперь мы собираемся настроить Cricket для отправки уведомления на телефон, когда он просыпается.Это происходит, когда вывод WAKE_UP получает короткий импульс (некоторое напряжение на короткое время), а в нашем случае он получает импульс 3,3 В в течение 10 мс от цифрового вывода 10 Arduino. После получения импульса Cricket просыпается и подключается к службе Pushsafer через используя URL-ссылку, полученную на предыдущем шаге. После подключения служба Pushsafer отправляет уведомление на телефон, если на этом телефоне установлено приложение Pushsafer.
Приступим к настройке Cricket шаг за шагом.
Сначала нам нужно подключить Cricket к нашей сети Wi-Fi.Для этого
Нажмите кнопку встроенного Cricket в течение 5 секунд (это запустит новую точку доступа Wi-Fi с именем toe_device)
Подключитесь к этой точке доступа с телефона или ноутбука
Установите учетные данные WiFi : SSID и пароль и нажмите кнопку ПОДКЛЮЧИТЬ.
В случае успешного подключения откройте панель CONFIG и установите следующую конфигурацию
, которая может выглядеть следующим образом:
После успешной настройки нам нужно нажать кнопку выключения в правом верхнем углу, чтобы выйти из конфигурации Cricket.После этого наше устройство готово к работе.
Шаг 6: Физическое соединение и тестирование
Итак, мы подключили ультразвуковой датчик и Cricket к Arduino, загрузили программу в Arduino, настроили Pushsafer и Cricket. Мы также установили приложение Pushsafer на свой смартфон и вошли в нашу учетную запись. Теперь самое время проверить это.
Включите Arduino от ноутбука или внешнего блока питания с помощью кабеля USB. В качестве альтернативы вы можете использовать адаптер питания от 7 до 24 В.Я использую power bank для тестирования. Когда я помещаю руку перед датчиком в пределах 30 см, я получаю уведомление по телефону. Если вы тоже его получите, то Поздравляю! Вы успешно сделали это !!
Резюме
Я показал, как можно создать проект с Arduino и подключить его к WiFi с помощью Cricket . Поскольку Cricket имеет надежные возможности подключения, вы можете подключать свои устройства практически к любой интернет-службе и локальным системам с помощью API-интерфейсов MQTT и HTTP. Это может открыть новый способ создания ваших устройств IoT.В этом прототипе я использовал Arduino, однако он не идеален из-за размеров и энергопотребления. Другие микроконтроллеры со сверхнизким энергопотреблением и платы для разработки лучше подходят для конечного продукта. Чтобы упомянуть несколько: Raspberry Pi Pico, Teensy, Sparkfun Apollo3 baord, Microchip curiocity nano evalution kit, DFRobot Beetle, платы Texas Instrument LaunchPad, Maxim Integrated MAX78000FTHRI Board, Maxim Integrated MAX32666FTHR Evaluation Kit, QuickLogic QuickFeather Dev528, Nordic Board и т. Д.
Большинство из них могут питаться напрямую от аккумулятора вместе с Cricket . Таким образом, вы можете создавать устройства WiFi с батарейным питанием, которые могут работать очень долгое время от одной батареи (месяцы / годы). Некоторые платы (например, Apollo3 baord, QuickFeather Dev Kit или MAX78000FTHRI) также имеют возможность машинного обучения и потребляют очень мало энергии. Таким образом, одна из этих плат и Cricket могут быть идеальной комбинацией для устройства IoT с возможностью машинного обучения с батарейным питанием.
Спасибо, что поднялись сюда! Надеюсь, вам понравился этот урок.
Md Khairul Alam
Конфигурация контактов, работа и приложения
Ультразвуковой датчик HC-SR04 включает в себя передатчик и приемник. Этот датчик используется для определения расстояния до объектива. Здесь количество времени, необходимое для передачи и приема волн, будет определять расстояние между датчиком и объектом. Этот датчик использует звуковые волны с помощью бесконтактной технологии.Используя этот датчик, можно без повреждений измерить необходимое расстояние до цели и получить точные данные. Диапазон этого датчика составляет от 2 до 400 см.
Что такое ультразвуковой датчик HC-SR04?
HC-SR04 - это тип ультразвукового датчика, который использует сонар для определения расстояния до объекта от датчика. Он обеспечивает выдающийся диапазон бесконтактного обнаружения с высокой точностью и стабильными показаниями. Он включает в себя два модуля, таких как ультразвуковой передатчик и приемник.Этот датчик используется в различных приложениях, таких как измерение направления и скорости, охранная сигнализация, медицина, сонар, увлажнители, беспроводная зарядка, неразрушающий контроль и ультразвуковое исследование.
HCSR04-ультразвуковой датчикКонфигурация контактов ультразвукового датчика HC-SR04
Этот датчик включает четыре контакта, конфигурация контактов этого датчика обсуждается ниже.
- Контакт 1 (Vcc): Этот контакт обеспечивает питание датчика напряжением +5 В.
- Pin2 (триггер): это входной контакт, используемый для инициализации измерения путем передачи ультразвуковых волн, удерживая этот контакт на высоком уровне в течение 10 мкс.
- Pin3 (Echo): это выходной контакт, который становится высоким в течение определенного периода времени и будет эквивалентен продолжительности времени, в течение которого волна возвращается обратно к датчику.
- Pin4 (Земля): Это контакт GND, используемый для подключения к GND системы.
Характеристики
Характеристики датчика HC-SR04 включают следующие
- Для этого датчика используется источник питания +5 В постоянного тока
- Размеры 45 мм x 20 мм x 15 мм
- Ток покоя, используемый для этого датчика, составляет <2 мА
- Ширина входного импульса триггера составляет 10 мкс
- Рабочий ток 15 мА
- Угол измерения 30 градусов
- Диапазон расстояний от 2 см до 800 см
- Разрешение 0.3 см
- Фактический угол <15 °
- Диапазон рабочих частот 40 Гц
- Точность 3 мм
Рабочий ультразвуковой датчик HC-SR04
Ультразвуковой датчик HC-SR04 оснащен четырьмя контактами, а именно контактом Vcc, контактом триггера, контактом эхо и контактом заземления. Этот датчик используется для точного измерения расстояния между целью и датчиком. Этот датчик в основном работает со звуковыми волнами.
Когда на этот модуль подается питание, он генерирует звуковые волны, которые распространяются по воздуху и поражают необходимый объект.Эти волны ударяются и возвращаются от объекта, а затем собираются модулем приемника.
Здесь как пройденное расстояние, так и время прямо пропорциональны, потому что время, затрачиваемое на большее расстояние, велико. Если триггерный штифт удерживается на высоком уровне в течение 10 мкс, то будут генерироваться ультразвуковые волны, которые будут распространяться со скоростью звука. Таким образом, он создает восемь циклов звуковых всплесков, которые будут собраны в булавке Echo. Этот ультразвуковой датчик взаимодействует с Arduino для измерения необходимого расстояния между датчиком и объектом.Расстояние можно рассчитать по следующей формуле.
S = (V x t) / 2
Где "S" - требуемое расстояние
‘V’ - скорость звука
‘t’ - время, необходимое звуковым волнам, чтобы вернуться обратно после удара об объект.
Фактическое расстояние можно рассчитать, разделив его значение на 2, так как время будет удвоено после того, как волны пройдут и вернутся от датчика.
HC-SR04 Ультразвуковой датчик с платой Arduino
Здесь мы даем пример ультразвукового датчика HC-SR04, использующего плату Arduino.Этот датчик сопряжен с платой Arduino.
ультразвуковой датчик с платой ArduinoНеобходимые компоненты этого проекта в основном включают плату Arduino UNO, ультразвуковой датчик HC-SR04, макетную плату и перемычки. Связи этого проекта очень просты, как показано ниже.
- Вывод VCC датчика подключен к 5V Arduino
- Триггерный вывод датчика подключен к выводу 11 в Arduino
- Вывод Echo датчика подключен к выводу 12 в Arduino
- Контакт GND датчика подключен к контакту GND в Arduino
Рабочий
Точное измерение расстояния может быть достигнуто путем сопряжения датчика HC-SR04 с различными типами плат Arduino.
Сначала подайте питание на датчик для включения и подключите контакт GND этого датчика к контакту GND платы Arduino. Модуль датчика может быть запитан от источника питания платы Arduino, когда ток, протекающий через датчик, ниже 15 мА. Таким образом, текущие рейтинги Arduino не повлияют на датчик.
После настройки первичного устройства подключите оба контакта датчиков, таких как Trig & Echo, к входным / выходным контактам платы Arduino.Как мы обсуждали ранее, триггерный штифт в датчике вначале должен быть равен 10 мкс, чтобы запустить метод измерения. Таким образом, этот модуль датчика будет генерировать звуковые волны частотой 40 000 Гц примерно каждую секунду от источника.
Когда звуковые волны возвращаются, вывод Echo активируется до тех пор, пока эти волны не будут получены приемником. Время будет измеряться с помощью платы Arduino.
Приложения
К применениям датчика HC-SR04 относятся следующие:
- Этот датчик используется для измерения скорости, а также направления между двумя объектами
- Используется в беспроводной зарядке
- УЗИ медицинское
- Используется для обнаружения объектов и обхода препятствий с помощью роботов, таких как двуногие, поиск пути, обход препятствий и т. Д.
- Измерение глубины
- Увлажнители
- Этот датчик используется для нанесения на карту объектов рядом с датчиком путем его вращения
- Неразрушающий контроль
- Используя этот датчик глубины ям, можно измерять скважины, передавая волны через воду.
- Встроенная система
- Охранная сигнализация
Итак, это все об ультразвуковом датчике HC-SR04. Наконец, исходя из приведенной выше информации, мы можем сделать вывод, что этот датчик использует сонар для измерения расстояния между датчиком и объектом.Передатчик подает высокочастотный звуковой сигнал. Как только сигнал обнаруживает объект, он отражается обратно на вывод эхо-сигнала передатчика. Время, затраченное на передачу и прием сигнала, позволяет нам определить расстояние до объекта. Вот вам вопрос, что это за датчики определения расстояния?
Ультразвуковой датчикHC-SR04 на Raspberry Pi
В предыдущих руководствах мы описали датчики температуры, контроллеры движения PIR, а также кнопки и переключатели, которые могут подключаться непосредственно к портам GPIO Raspberry Pi.Ультразвуковой дальномер HC-SR04 очень прост в использовании, однако выходной сигнал необходимо преобразовать с 5 В в 3,3 В, чтобы не повредить Raspberry Pi! В этом уроке мы познакомим вас с физикой и электроникой, чтобы объяснить каждый шаг!
Что вам понадобится:
HC-SR04
Резистор 1 кОм
Резистор 2 кОм
Провода перемычки
Ультразвуковые датчики расстояния
Звук состоит из колеблющихся волн в среде (например, в воздухе) с высотой звука, определяемой близостью этих волн друг к другу, определяемой как частота.Человеческое ухо может слышать только часть звукового спектра (диапазон частот звуковых волн), определяемую как «акустический» диапазон. Очень низкочастотный звук ниже Acoustic определяется как «Инфразвук», а высокочастотный звук выше называется «Ultrasound». Ультразвуковые датчики предназначены для определения близости или дальности объекта с помощью отражения ультразвука, аналогично радару, для расчета времени, необходимого для отражения ультразвуковых волн между датчиком и твердым объектом. Ультразвук используется в основном потому, что он не слышен человеческим ухом и относительно точен на небольших расстояниях.Вы, конечно, можете использовать для этой цели акустический звук, но у вас будет шумный робот, который пищит каждые несколько секунд. . . .
Базовый ультразвуковой датчик состоит из одного или нескольких ультразвуковых передатчиков (в основном громкоговорителей), приемника и цепи управления. Передатчики излучают высокочастотный ультразвуковой звук, который отражается от любых ближайших твердых предметов. Часть этого ультразвукового шума отражается и обнаруживается приемником на датчике. Этот ответный сигнал затем обрабатывается схемой управления для вычисления разницы во времени между передаваемым и принимаемым сигналом.Впоследствии это время может быть использовано вместе с умной математикой для расчета расстояния между датчиком и отражающим объектом.
Ультразвуковой датчик HC-SR04, который мы будем использовать в этом руководстве для Raspberry Pi, имеет четыре контакта: заземление (GND), выход эхо-импульса (ECHO), вход триггерного импульса (TRIG) и источник питания 5 В (Vcc). Мы запитываем модуль с помощью Vcc, заземляем его с помощью GND и используем Raspberry Pi для отправки входного сигнала на TRIG, который запускает датчик для отправки ультразвукового импульса.Пульсовые волны отражаются от ближайших объектов, а некоторые отражаются обратно на датчик. Датчик обнаруживает эти возвратные волны и измеряет время между срабатыванием триггера и возвращенным импульсом, а затем отправляет сигнал 5 В на вывод ECHO.
ECHO будет иметь «низкий» уровень (0 В) до тех пор, пока датчик не сработает, когда он получит эхо-импульс. После обнаружения возвратного импульса ECHO устанавливается на высокий уровень (5 В) на время этого импульса. Длительность импульса - это полное время между датчиком, выдающим ультразвуковой импульс, и обратным импульсом, обнаруженным приемником датчика.Поэтому наш скрипт Python должен измерить длительность импульса, а затем рассчитать расстояние от нее.
ВАЖНО. Выходной сигнал датчика (ECHO) на HC-SR04 рассчитан на 5 В. Однако входной контакт Raspberry Pi GPIO рассчитан на 3,3 В. Отправка сигнала 5 В в этот незащищенный входной порт 3,3 В может повредить ваши контакты GPIO, чего мы хотим избежать! Нам понадобится небольшая схема делителя напряжения, состоящая из двух резисторов, чтобы снизить выходное напряжение датчика до уровня, с которым справится Raspberry Pi.
Делители напряжения
Делитель напряжения состоит из двух резисторов (R1 и R2), последовательно подключенных к входному напряжению (Vin), которое необходимо уменьшить до нашего выходного напряжения (Vout). В нашей схеме Vin будет ECHO, который нужно уменьшить с 5V до Vout, равного 3,3 В.
Следующая схема и простое уравнение могут применяться во многих приложениях, где необходимо снизить напряжение. Если вы не хотите разбираться в технологиях, просто возьмите резистор 1 x 1 кОм и 1 x 2 кОм.
Не углубляясь в математику, на самом деле нам нужно рассчитать только одно номинальное сопротивление резистора, так как важен коэффициент деления. Мы знаем наше входное напряжение (5 В) и требуемое выходное напряжение (3,3 В), и мы можем использовать любую комбинацию резисторов для достижения снижения. У меня есть несколько дополнительных резисторов 1 кОм, поэтому я решил использовать один из них в схеме как R1.
Если вставить наши значения, получим следующее:
Итак, мы будем использовать резистор 1 кОм для R1 и резистор 2 кОм в качестве R2!
Соберите схему
В этом проекте мы будем использовать четыре контакта Raspberry Pi: GPIO 5V [Pin 2]; Vcc (питание 5 В), GPIO GND [контакт 6]; GND (земля 0 В), GPIO 23 [контакт 16]; TRIG (выход GPIO) и GPIO 24 [контакт 18]; ECHO (вход GPIO)
1.Вставьте четыре перемычки «папа-мама» в контакты HC-SR04 следующим образом: Красный; Vcc, синий; TRIG, желтый; ЭХО и черный; GND.
2. Подключите Vcc к положительной шине макетной платы и подключите GND к отрицательной шине.
3. Подключите GPIO 5V [контакт 2] к положительной шине, а GPIO GND [Pin 6] - к отрицательной шине.
4. Вставьте TRIG в пустую направляющую и вставьте эту направляющую в GPIO 23 [контакт 16]. (Вы можете подключить TRIG напрямую к GPIO 23, если хотите).Мне лично просто нравится делать все на макетной плате!
5. Подключите ECHO к пустой шине, подключите другую пустую шину с помощью R1 (резистор 1 кОм)
6. Соедините шину R1 с шиной GND с помощью R2 (резистор 2 кОм). Оставьте пространство между двумя резисторами.
7. Добавьте GPIO 24 [контакт 18] к шине с помощью R1 (резистор 1 кОм). Этот вывод GPIO должен находиться между R1 и R2
.Вот и все! Наш датчик HC-SR04 подключен к нашему Raspberry Pi!
Обнаружение с помощью Python
Теперь, когда мы подключили наш ультразвуковой датчик к нашему Pi, нам нужно запрограммировать скрипт Python для определения расстояния!
Выходной сигнал ультразвукового датчика (ECHO) всегда будет низким (0 В), если только он не сработал, и в этом случае он будет выдавать 5 В (3.3В с нашим делителем напряжения!). Поэтому нам нужно установить один вывод GPIO в качестве выхода для запуска датчика и один в качестве входа для обнаружения изменения напряжения ECHO.
Сначала импортируйте библиотеку Python GPIO, импортируйте нашу библиотеку времени (чтобы наш Pi ждал между шагами) и установите нумерацию контактов GPIO.
импортировать RPi.GPIO как GPIO
импортное время
GPIO.setmode (GPIO.BCM)
Затем нам нужно назвать наши входные и выходные контакты, чтобы мы могли ссылаться на них позже в нашем коде Python.Мы назовем наш выходной контакт (который запускает датчик) GPIO 23 [контакт 16] как TRIG, а наш входной контакт (который считывает обратный сигнал от датчика) GPIO 24 [контакт 18] как ECHO.
TRIG = 23
ECHO = 24
Затем мы напечатаем сообщение, чтобы сообщить пользователю, что выполняется измерение расстояния. . . .
распечатать «Выполняется измерение расстояния»
Затем установите два порта GPIO как входы или выходы, как определено ранее.
GPIO.setup (TRIG, GPIO.OUT)
GPIO.setup (ECHO, GPIO.IN)
Затем убедитесь, что триггерный штифт установлен на низкий уровень, и дайте датчику время для стабилизации.
GPIO.output (TRIG, False)
печать «Ожидание установки датчика»
время. Сон (2)
Датчик HC-SR04 требует короткого импульса 10 мкс для запуска модуля, который заставит датчик запустить программу измерения дальности (8 ультразвуковых импульсов с частотой 40 кГц) для получения отклика эха.Итак, чтобы создать наш запускающий импульс, мы установили на выводе запуска высокий уровень 10 мкс, а затем снова установили низкий уровень.
GPIO.output (TRIG, True)
время сна (0,00001)
GPIO.output (TRIG, False)
Теперь, когда мы отправили импульсный сигнал, нам нужно прослушать наш входной вывод, который подключен к ECHO. Датчик устанавливает ECHO на высокий уровень на время, необходимое для прохождения и возврата импульса, поэтому наш код должен измерять количество времени, в течение которого вывод ECHO остается на высоком уровне.Мы используем строку «while», чтобы гарантировать, что каждая временная метка сигнала записывается в правильном порядке.
Функция time.time () записывает самую последнюю метку времени для данного условия. Например, если вывод переходит от низкого уровня к высокому, и мы записываем состояние низкого уровня с помощью функции time.time (), записанная временная метка будет самым последним временем, когда этот вывод был низким.
Таким образом, нашим первым шагом должна быть запись последней нижней временной метки для ECHO (pulse_start), например. непосредственно перед тем, как будет получен ответный сигнал и на выводе появится высокий уровень.
при GPIO.input (ECHO) == 0:
pulse_start = time.time ()
После получения сигнала значение изменяется с низкого (0) на высокое (1), и сигнал будет оставаться высоким на протяжении всего эхо-импульса. Поэтому нам также нужна последняя высокая отметка времени для ECHO (pulse_end).
в то время как GPIO.input (ECHO) == 1:
pulse_end = time.time ()
Теперь мы можем вычислить разницу между двумя записанными отметками времени и, следовательно, длительность импульса (pulse_duration).
pulse_duration = pulse_end - pulse_start
Учитывая время, которое требуется сигналу, чтобы добраться до объекта и обратно, мы можем рассчитать расстояние, используя следующую формулу.
Скорость звука варьируется в зависимости от среды, через которую он распространяется, а также от температуры этой среды. Однако некоторые умные физики вычислили скорость звука на уровне моря, поэтому мы возьмем за основу значение 343 м / с.Если вы пытаетесь измерить расстояние через воду, вы падаете именно здесь - убедитесь, что вы используете правильную скорость звука!
Нам также нужно разделить наше время на два, потому что то, что мы вычислили выше, на самом деле является временем, за которое ультразвуковой импульс проходит расстояние до объекта и обратно. Нам просто нужно расстояние до объекта! Мы можем упростить вычисление в нашем скрипте Python следующим образом:
Мы можем вставить это вычисление в наш скрипт Python:
расстояние = длительность_импульса x 17150
Теперь нам нужно округлить расстояние до 2 знаков после запятой (для наглядности!)
расстояние = круглое (расстояние, 2)
Затем печатаем расстояние.Приведенная ниже команда напечатает слово «Расстояние:», за которым следует переменная расстояния, а затем единица измерения «см»
.печать «Расстояние:», расстояние, «см»
Наконец, мы очищаем наши контакты GPIO, чтобы гарантировать, что все входы / выходы сброшены
GPIO.cleanup ()
Сохраните свой скрипт python, я назвал наш «range_sensor.py», и запустите его, используя следующую команду. Для этого скрипта важно запустить root (sudo):
Датчик установится на несколько секунд, а затем запишет расстояние!
Загрузки
Вы можете скачать приведенный выше пример HC-SR04 Raspberry Pi Python Script Здесь
HC-SR04 Размеры
HC-SR04 Временная диаграмма
Источники
Благодарим следующие источники за информацию об этом руководстве:
Raspberry Pi Spy - Часть 1
Raspberry Pi Spy - Часть 2
Создание байта
HC-SR04 Ультразвуковой датчик | Электротехника и информатика
Ультразвуковой модуль измерения дальности HC - SR04 обеспечивает функцию бесконтактного измерения от 2 до 400 см, точность измерения может достигать 3 мм.
Характеристики- Включает ультразвуковые преобразователи!
- Включает приемник и цепь управления!
- Использование триггера ввода-вывода для сигнала высокого уровня не менее 10 мкс!
- Модуль автоматически отправляет восемь импульсов 40 кГц и определяет, есть ли ответный импульсный сигнал!
- Подключение: Модуль сонара HC-SR04 должен быть подключен к источнику питания 5 В.В этом примере будет подробно описано подключение микроконтроллера Teensy 2.0 к модулю HC-SR04 и от модуля CP210x UART к USB. В этом примере модуль CP210x будет использоваться для питания Teensy 2.0 напряжением 5 В после программирования.
Для подключения системы подключите общее заземление между модулем CP210x и Teensy 2.0. Для систем связи всегда необходимо использовать общие заземления, чтобы обеспечить надежную передачу сигнала. Teensy 2.0 имеет два выделенных последовательных контакта UART, расположенных на PORT D, контакты 2 и 3.Имейте в виду, что при использовании последовательного порта UART вывод передачи (TXD) микроконтроллера должен быть подключен к выводу приема (RX) CP2102. Прием (RXD) микроконтроллера затем поступает на вывод передачи (TX) CP2012. Наконец, поскольку модуль CP210x будет питать Teensy, подключите вывод 5V CP210x к выводу 5V Teensy 2.0.
Для подключения модуля HC-SR04 подключите контакты питания и заземления, как показано. Контакт TRIG будет подключен к Teensy 2.0 на контакте D4, который будет настроен как цифровой выход.Вывод Echo HC-SR04 должен быть подключен к выводу D5 Teensy 2.0, который будет настроен как вход. Во время работы короткий импульс (10-15 мкс) на входе «Trig» сонара вызовет передачу ультразвукового импульса. Путем измерения времени, которое проходит до того, как пин «Эхо» поднимется, можно рассчитать расстояние. - После подключения устройства вы можете загрузить приведенный ниже пример кода C. Этот код протестирован для компиляции через avr-gcc под Windows и Linux.Перед использованием этих файлов вам может потребоваться установить компилятор avr-gcc. Код инициализирует аппаратный UART на Teensy 2.0 и многократно передает значение, измеренное модулем HC-SR04, через порт UART со скоростью 34800 бод. Протокол настроен на 8 бит данных, без контроля четности и один стоповый бит ( 8Н1).
HC-SR04 Module Teensy 2.0 Пример кода
- Пример кода можно скомпилировать из командной строки с помощью команды make all и загрузить на Teensy 2.0 с помощью команды 'make program' в Windows. Makefile в настоящее время не поддерживает автоматическую загрузку на машины Linux или Mac. Если у вас есть одна из этих платформ, загрузите загрузчик с веб-сайта Teensy 2.0 и запрограммируйте шестнадцатеричный код таким образом.
Teensy Loader
- Чтобы иметь возможность полностью использовать последовательный порт (UART) на компьютере, необходимо использовать «терминальную программу». Одна из предлагаемых программ для систем на базе Windows - Termite ( Local Copy ). Termite - это универсальный инструмент, позволяющий отображать и вводить как символы ASCII, так и необработанные шестнадцатеричные значения.Кроме того, при установке большинства операционных систем потребуется загрузить и установить драйвер для устройств USB - UART семейства CP210x. Их можно загрузить непосредственно с локальной, но более старых версий Silicon Labsor для Windows, Mac или Linux (3.x.x). Установка драйвера зависит от системы, но часто включает только простую утилиту-установщик. При необходимости обратитесь в службу поддержки Silicon Labs.
Обратите внимание, что на изображении ниже показана конфигурация Termite для связи с этим примером кода.Однако настройка «Порт» для каждого компьютера может отличаться. В этом примере операционная система выбрала COM4. На многих машинах это может быть COM1 или COM2. Чтобы найти COM-порт, который будет использоваться в Windows, откройте «Диспетчер устройств» Windows и просмотрите раздел «Порты» в списке устройств.
Teensy 3.6 с датчиком расстояния HC-SR04
HC-SR04 - это недорогой ультразвуковой датчик, в котором используются два датчика для измерения расстояния впереди до того, как он будет заблокирован предметом или поверхностью.Датчик имеет четыре контакта GND, VCC, TRIG и ECHO.Настройка оборудования
- HC-SR04 Заземление должно быть подключено к заземлению Teensy 3.6.
- HC-SR04 VCC должен быть подключен к Vin (который должен выдавать 5 В при подключении к USB).
- HC-SR04 TRIG должен быть подключен к цифровому выводу 0 Teensy 3.6.
- HC-SR04 ECHO должен быть подключен к одной ножке резистора (от 1 кОм до 100 кОм). Другая ножка резистора должна быть подключена к цифровому выводу 1 Teensy 3.6.Другая ножка резистора также должна быть подключена к одной ножке второго резистора (от 1 кОм до 100 кОм - то же значение, что и у первого резистора). Другая ножка второго резистора должна быть заземлена.
- Эти резисторы, идущие на землю, и контакт 1 образуют делитель напряжения, который снижает выходное напряжение HC-SR04 от 5 В до 2,5 В, что подходит для Teensy 3.6.
Вот фото и макет макета с подключенным датчиком и без него. Обратите внимание на соединения резисторов, заземления и цифровых контактов.
Пример 1 - Последовательный вывод
В этих примерах используется библиотека HCSR04 Мартина Сосича, которую можно загрузить с помощью инструмента Library Manager в Arduino.Монитор Arduino Serial выведет результат измерения в виде расстояния в см.
Пример 2 - USB MIDI CC
Датчик расстояния масштабируется до подходящего диапазона от 0 до 127 и отправляется через USB в виде значений MIDI CC, которые можно использовать в Ableton Live и другом программном обеспечении для управления звуковыми и музыкальными параметрами.
Посмотреть код можно здесь: https://github.com/little-scale/arduino-sketches/blob/master/Distance_Sensor_HCSR04_2_USB_MIDI_CC.ino
Пример 3 - USB MIDI Pitch с включением ноты с помощью кнопки
Кнопка добавлена к установка, подключенная к цифровому контакту 32 Teensy 3.6. Нажатие кнопки генерирует примечание о событии, которое использует датчик расстояния для установки высоты звука. Нажатие кнопки генерирует событие отключения ноты.
Посмотреть код можно здесь: https: // github.com / small-scale / arduino-sketches / blob / master / Distance_Sensor_HCSR04_3_USB_MIDI_Pitch.inoРабочий, Схема контактов, Описание и Спецификация
Конфигурация штифта ультразвукового датчикаНомер контакта | Имя контакта | Описание |
1 | Vcc | Вывод Vcc питает датчик, обычно + 5В |
2 | Триггер | Триггерный контакт - это входной контакт.Этот вывод должен находиться на высоком уровне в течение 10 мкс для инициализации измерения путем отправки волны США. |
3 | Эхо | Вывод Echo - это вывод вывода. Этот вывод становится высоким в течение периода времени, который будет равен времени, необходимому для возврата волны США обратно к датчику. |
4 | Земля | Этот вывод подключен к заземлению системы. |
- Рабочее напряжение: + 5В
- Теоретическое расстояние измерения: от 2 см до 450 см
- Практическое расстояние измерения: от 2 см до 80 см
- Точность: 3 мм
- Угол измерения: <15 °
- Рабочий ток: <15 мА
- Рабочая частота: 40 Гц
Купить ультразвуковой датчик HC-SR04 можно здесь.
Эквивалентные датчики измерения расстоянияПередатчик США Пара приемников, модуль ИК-датчика, пара ИК-датчиков, ИК-аналоговый датчик расстояния,
Ультразвуковой датчик HC-SR04 - рабочийКак показано выше, ультразвуковой датчик HC-SR04 (США) представляет собой 4-контактный модуль с именами контактов Vcc, Trigger, Echo и Ground соответственно. Этот датчик является очень популярным датчиком, который используется во многих приложениях, где требуется измерение расстояния или обнаружение объектов.Модуль имеет два проема спереди, которые образуют ультразвуковой передатчик и приемник. Датчик работает по простой формуле для средней школы:
Расстояние = Скорость × Время
Ультразвуковой передатчик передает ультразвуковую волну, эта волна распространяется по воздуху, и когда она сталкивается с каким-либо материалом, она отражается обратно к датчику, эта отраженная волна наблюдается модулем ультразвукового приемника, как показано на рисунке ниже
Теперь, чтобы рассчитать расстояние по приведенным выше формулам, мы должны знать скорость и время.Поскольку мы используем ультразвуковую волну, мы знаем универсальную скорость ультразвуковой волны в комнатных условиях, которая составляет 330 м / с. Схема, встроенная в модуль, будет рассчитывать время, необходимое для возвращения волны США, и включает высокий уровень эхо-сигнала на такое же конкретное количество времени, таким образом мы также можем узнать затраченное время. Теперь просто рассчитайте расстояние с помощью микроконтроллера или микропроцессора.
Как использовать ультразвуковой датчик HC-SR04Датчик расстояния HC-SR04 обычно используется как с микроконтроллерами, так и с микропроцессорными платформами, такими как Arduino, ARM, PIC, Raspberry Pie и т. Д.Следующее руководство является универсальным, поскольку его необходимо соблюдать независимо от типа используемого вычислительного устройства.
Подайте питание на датчик, используя регулируемое напряжение +5 В через контакты Vcc и заземления датчика. Ток, потребляемый датчиком, составляет менее 15 мА и, следовательно, может питаться напрямую от контактов 5 В на плате (при наличии). Контакты Trigger и Echo являются контактами ввода / вывода и, следовательно, могут быть подключены к контактам ввода / вывода микроконтроллера. Чтобы начать измерение, триггерный вывод должен быть установлен в высокий уровень на 10 мкс, а затем выключен.Это действие вызовет ультразвуковую волну с частотой 40 Гц от передатчика, а приемник будет ждать возвращения волны. Как только волна возвращается после того, как она отражается каким-либо объектом, вывод Echo переходит в высокий уровень в течение определенного количества времени, которое будет равно времени, необходимому для возврата волны обратно к датчику.
Время, в течение которого вывод Echo остается на высоком уровне, измеряется MCU / MPU, поскольку он дает информацию о времени, которое требуется для возврата волны обратно к датчику.Используя эту информацию, измеряется расстояние, как описано в заголовке выше.
Приложения- Используется для избегания и обнаружения препятствий с помощью таких роботов, как двуногий робот, робот для избегания препятствий, робот для поиска пути и т. Д.
- Используется для измерения расстояния в широком диапазоне от 2 см до 400 см
- Может использоваться для отображения объектов, окружающих датчик, путем его вращения
- Глубину некоторых мест, таких как колодцы, ямы и т.