• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Делюсь опытом Библиотека для ультразвукового датчика HC-SR04

enjoynering

Well-known member
Знаю что баян, но то что есть в интернете меня не устроило. Написал свой велосипед:

- измерение расстояния от 4 см до 250 мм*
- компенсация изменения скорости звука от температуры окружающей среды
- установка максимального расстояния для ускорения измерений

забирать тут - enjoyneering/HCSR04

* - мой экземпляр больше 260см не бьет, меньше 2см начинает выдавать бред от 2см до 3.5см. поэтому минимум 4см.
 

Вложения

enjoynering

Well-known member
так если посмотреть не для чего библиотеки не требуются :) читаешь datasheet и пишешь на чистом Cи.

а не могли вы опробовать мою? просто интересно, будет ли мерить до 400см? не понятно - то ли это мой сенсор, то ли код, то ли pulseIn()?

я посмотрел исходники pulseIn(), он вроде как почти прерывание-безопасный тк считает такты процессора а не millis().
 
Последнее редактирование:

enjoynering

Well-known member
1 - чтоб быстрее было
2 - если вы смотрите в черную дыру то сенсор как бы вам намекает
3 - зачем? если у меня робот за это время 0.5км проедит, а в ячейке он еще в нулевой отметке. имхо лучше опрашивать когда надо и получать 99.9% реальное расстояние.
4 - в гугле забанили? прошу - esp8266/Arduino
 

enjoynering

Well-known member
не всем нужны прерывания и не всегда они полезны, плюс на некоторых платах их всего два и они могут быть заняты например энкодером с кнопкой. поэтому pulseIn() имеет право на жизнь и работает довольно точно.
про 0.5км не шутил. для незрячих ваши метод может и рабочий, а вот для быстрых объектов (например сенсор как уровень воды в м-а-а-аленьком баке с напором воды как мосводоканле). имхо лучше забирать данные в реальном времени, а не брать тухлятину.
про черню дыру без шуток. у меня сенсор слеп после 260см у вас после 400см. все что дальше для него черна дыра . если ничего не найдено то он выдает импульс длительностью 32мс...38мс (в зависимости от модели или прошивки. в сенсоре установлен 8 битный микропроцессор STC11, EM78P152). ваш незрячий может попасть под машину без этой проверки.
 

Вложения

Последнее редактирование:

enjoynering

Well-known member
спасибо что разрешили.

я в принципе не против, но хотелось бы увидеть Ваш код целиком (не кусками). махать языком все горазды, а как поделится так - у меня живот болит. заранее спасибо.
 

enjoynering

Well-known member
добавил простой (с размерностью 3) медианный фильтр. помогает на быстро меняющихся объектах - например замер уровня в баке при наборе воды
 
Сверху Снизу