elchupanibrei (elchupanibrei) wrote,
elchupanibrei
elchupanibrei

Categories:

Библиотека для ультразвукового датчика расстояния HC-SR04

Наверное только ленивый не писал библиотеку под HC-SR04, HC-SRF05, DYP-ME007, BLJ-ME007Y. Все что видел меня не устроило - или унылая копипаста, или слишком тяжело. Пришлось писать свой велосипед.


ТТХ датчика:

- Рабочее напряжение: 5 В
- Рабочий ток: 10..20 мА (можно питать прям от цифрового выхода AVR и выключать для экономии)
- Рабочий диапазон: 4см..330см (у меня больше 200см не получилось)
- Угол раскрытия ультразвукового луча: 15°
- Рабочая частота: 40кГц
- Разрешение: 0.3см
- Максимальная частота опроса датчика: 20Гц


внешний вид HC-SR04

одна из версий схемы HC-SR04

ультразвуковой излучатель в разрезе

Датчик до безобразия прост, но с нюансами. В течении 10μs...100μs подаем на контакт TRIGGER высокий уровень и после 8-и ультразвуковых посылок меряем длительность высокого импульса на ECHO.


описание работы HC-SR04

Что умеет моя библиотека и чего не умеют другие:

- Компенсация скорости звука в соответствии с температурой окружающей среды
- Медианный фильтр, точнее расстояние до быстро движущейся мишени (например при наборе воды в бак)
- Можно задавать максимальное расстояние для ускорения измерения (например при определении объема жидкости в баке)

Особенности датчика в картинках:


больше 3.3 метра не меряет, меньше 45° рикошетит, маленькие и воздушные объекты не видит

раскрытие ультразвукового луча в 15° накладывает ограничение на форму бака

Датчик так себе, но за такую цену конкурентов мало. Забирать как всегда тут.

UDP: Если сенсор помер или не находит препятствие, библиотека возвращает число 38000 - "OUT OF RANGE". В файле HCSR04.h есть две пасхалки для продвинутых юзеров.

UDP2: Reverse engineering и объяснение принципа работы схемы здесь. Сравнение HC-SR04 с инфракрасным Sharp GP2Y0A02YK0F и лазерным STM VL53L0X тут.

UDP3: Библиотека подросла до версии 1.2.0 - теперь медианный фильтр работает еще быстрее.
Tags: #arduino, arduino
Subscribe

  • MatrixClock v2.0.0 уже на Github

    Выкатил финалочку. Писалось в свободное от работы, семьи время. На все про все ушло 1.5 года. Осталось нарисовать корпус для печати на 3D принтере.…

  • Собрал Ka-Radio32 на ESP32

    Два года слушал младшую модель Ka-Radio на ESP8266, но не хватало экрана, нормального управления и 320kbps. На github нашел интересную плату.…

  • Печатный корпус для клона Hakko T12

    Пересел с Hakko T900 на T12. Долго сопротивлялся, но наконец-то жаба сдалась. Контроллеры на STM32 не дешевеют и потихоньку исчезают. Им на смену…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 22 comments

  • MatrixClock v2.0.0 уже на Github

    Выкатил финалочку. Писалось в свободное от работы, семьи время. На все про все ушло 1.5 года. Осталось нарисовать корпус для печати на 3D принтере.…

  • Собрал Ka-Radio32 на ESP32

    Два года слушал младшую модель Ka-Radio на ESP8266, но не хватало экрана, нормального управления и 320kbps. На github нашел интересную плату.…

  • Печатный корпус для клона Hakko T12

    Пересел с Hakko T900 на T12. Долго сопротивлялся, но наконец-то жаба сдалась. Контроллеры на STM32 не дешевеют и потихоньку исчезают. Им на смену…