C++| Arduino IDE | ESP8266. Описание контактов ультразвукового датчика HY-SRF05 :
1 — VCC для питания 5 В
2 — TRIG Вход сигнала триггерного управления
3 — ECHO Выход эхо-сигнала
4 -OUT Выход цифровой есть/нет (при использовании модуля для сигнализации при обнаружении препятствия или присутствия человека)
5 -GND для земли
C++| Arduino IDE | ESP8266. Характеристики модуля ультразвукового датчика HY-SRF05 :
Ультразвуковой датчик дальномер HY-SRF05 обеспечивает бесконтактное дистанционное зондирование от 2 см до 450 см, с точностью измерения до 3 мм. Модуль включает в себя ультразвуковой передатчик, приемник и схему управления.
C++| Arduino IDE | ESP8266. Основной принцип работы ультразвукового датчика HY-SRF05 :
(1) На вход TRIG подаются импульсы длительностью не менее 10мкс;
(2) Эти импульсы запускают работу встроенного в модуль микроконтроллер, который формирует и отправляет 8 импульсов с частотой 40кГц на ультразвуковую керамическую передающую антенну, и автоматически принимает приходящий эхо сигнал от приемной керамической антенны;
(3) Расстояние до объекта сканирования вычисляется по формуле:
Измеренное расстояние = (T (время перемещения ультразвуковой волны-импульса до объекта и обратно) * (340 м/сек)) / 2. Где 340 м/сек скорость звука в воздухе, которая зависит от температуры, поэтому это необходимо учитывать, если Вам необходима точность измерения расстояния до объекта сканирования.
C++| Arduino IDE | ESP8266. Программа (Scetch) на языке С ++ (язык «Wiring» для Arduino) для ультразвукового датчика HY-SRF05
Протестировано с помощью HY-SRF05, HC-SR04 Предполагая, что температура в помещении составляет 20 градусов по Цельсию Схема: * Подключение VVC датчика, подключенного к + 5 В * Подключение GND датчика, подключенного к земле * Соединение TRIG датчика, подключенного к цифровому выходу 12 * Подключение ECHO датчика, подключенного к цифровому выходу 13 * /
const int TRIG_PIN = 12; const int ECHO_PIN = 13; void setup() { // инициализировать последовательную связь Serial.begin(115200); pinMode(TRIG_PIN,OUTPUT); pinMode(ECHO_PIN,INPUT); } void loop() { long duration, distanceCm, distanceIn; //Задаем короткий импульс LOW заблаговременно, чтобы обеспечить чистый импульс HIGH: digitalWrite(TRIG_PIN, LOW); delayMicroseconds(2); digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); duration = pulseIn(ECHO_PIN,HIGH); // Преобразуем время в расстояние distanceCm = duration / 29.1 / 2 ; distanceIn = duration / 74 / 2; if (distanceCm <= 0){ Serial.println("Out of range"); } else { Serial.print(distanceIn); Serial.print("in, "); Serial.print(distanceCm); Serial.print("cm"); Serial.println(); } delay(1000); }
C++| Arduino IDE | ESP8266. Принципиальная схема модуля ультразвукового датчика HY-SRF05 :
C++| Arduino IDE | ESP8266. Сравнение самого известного модуля ультразвукового датчика HC-SR04 с модулем ультразвукового датчика HY-SRF05 :
HC-SR04 | HY-SRF05 | |
Рабочее напряжение | 5 В постоянного тока | 5 В постоянного тока |
Статический ток | <2 мА | <2 мА |
Выходной сигнал: | Электрический частотный сигнал, высокий уровень 5В, низкий уровень 0 В | Электрический частотный сигнал, высокий уровень 5В, низкий уровень 0 В |
Угол датчика | <15 градусов | <15 градусов |
Расстояние обнаружения (заявлено) | 2 см-450cm | 2 см-450cm |
точность | ~ 3 мм | ~ 2 мм |
Входной сигнал запуска | Импульс 10us TTL | Импульс 10us TTL |
Эхосигнал | выходной сигнал TTL PWL | выходной сигнал TTL PWL |
Входы/Выходы |
|
|
В начале статьи в описании неправильно указана последовательность пинов.
Спасибо большое! Что хоть кто то читает мои рассказы внимательно 😉 . Исправил.