Некорректная работа сонара HC-SR04
- Войдите на сайт для отправки комментариев
Добрый день!
На базе Nano, сонара HC-SR04 и модема SIM800C сделал измеритель уровня дизельного топлива в большом баке (объем 2000 л, высота 146 см). Бак стоит на улице в заглубленном в землю кирпичном кессоне. Температура в нем примерно -3. Измеритель стоит в горловине бака и смотрит строго вертикально вниз - на поверхность топлива. Измеритель принимает СМСки с настройками параметров (установка высоты бака и скорости звука, которая зависит от температуры). По СМС-запросу отправляет ответную СМС с уровнем топлива (высота бака минус расстояние от сонара до поверхности). Пока отлаживал дома - все было четко. Сотню раз уровень определялся довольно точно (ошибка 1%) в широком диапазоне (многократно менял высоту бака). Скорость звука тоже менял в ходе тестирования. Т.е. скетч работает отлично. Как только поставил в бак, первые пару часов работал нормально - показывал 110 см (проверял рулеткой), но потом стал постоянно показывать одно и тоже значение - 140 см (т.е. 6 см до поверхности). Топливо я не доливал. На этом расстоянии перед сонаром нет никаких препятствий. До ближайшей стенки бака сантиметров 35-40.
В чем может быть проблема?
А как вы меняли скорость звука?
Вообще то в баке звук отражается не только от поверхности топлива, но и от стенок бака. И радар принимает множество отраженок.
Есть такая штука - ДУТ (датчик уровня топлива). Купил, поставил (подключил), один раз оттарировал и забыл.
А как вы меняли скорость звука?
Вообще то в баке звук отражается не только от поверхности топлива, но и от стенок бака. И радар принимает множество отраженок.
угу. первые 2 часа от стенок не отражался, а потом начал.
Так автор даже скетч не показал. Может там в условиях стоит, что только при изменении уровня от точки отчета дергать порт. А изменения уровня жидкости , как говорит топикстартер , не менялись. И тут что то пошло не так через 2 часа , пошел замер, приведший к такому результату.
Если бы датчик заглючил сразу, то я бы поверил в отражения от стенок бака. Но 2-3 часа он работал нормально, хотя и остыл до температуры -3. Показания с сонара считываются не постоянно, а только по запросу из Ардуино, которая опрашивает GSM-модем на предмет получения СМС. Т.е. я, находясь в другом городе, сам посылаю СМС определенного формата, которую принимает модем, обрабатывает Ардуино, считывает с датчика показания (код метода чтения указан ниже) и отправляет мне ответную СМС. Другими СМС я могу настраивать высоту бака и скорость звука. Оба параметра сохраняются в EEPROM Ардуино, так что даже после передергивания питания настройки сохраняются.
Весь бутерброд из 3х плат (Ардуино Нано, модем SIM800 и сонар HC-SR04), облитых лаком, слепленных между собой двухсторонним скотчем, наглухо замурован в силиконовый герметик. Только "глаза" сонара я ничем не защитил.
Подскажите, пожалуйста, марку влагостойкого датчика, который нормально работает в уличных условиях (от -10 до +30). Я что-то такого для Arduino не видел. Может не ультразвуковой, а с каким-то другим излучением?
Подскажите, пожалуйста, марку влагостойкого датчика, который нормально работает в уличных условиях (от -10 до +30). Я что-то такого для Arduino не видел. Может не ультразвуковой, а с каким-то другим излучением?
И ещё в разных местах по поиску "парктроник" или JSN-SR04T
Подскажите, пожалуйста, марку влагостойкого датчика, который нормально работает в уличных условиях (от -10 до +30). Я что-то такого для Arduino не видел. Может не ультразвуковой, а с каким-то другим излучением?
И ещё в разных местах по поиску "парктроник" или JSN-SR04T
Датчики парктроников точно не годятся - у них угол 75%, как у этого по ссылке. Все отражения от стенок бака будет ловить. Нужен узконаправленный датчик. Лучше, посмотрю в сторону ИК-дальномеров.
Лучше, посмотрю в сторону ИК-дальномеров.
лучше поплавок на штанге, проверенный десятилетиями метод.
Лучше, посмотрю в сторону ИК-дальномеров.
лучше поплавок на штанге, проверенный десятилетиями метод.
Кто из них будет передавать мне уровень СМСкой в другой город - поплавок или штанга?
Вы, если мыслей в голове нет, лучше ничего не пишите.
Кто из них будет передавать мне уровень СМСкой в другой город - поплавок или штанга?
у вас сейчас сам УЗ-датчик СМС-ки шлет, или все-таки микроконтроллер?
Вы. если хотите отвести мое предложение - придумайте что-нить поумнее
Поплавок с резистивным слоем, например, достаточно простое и надежное решение. В каждом (почти) баке стоит)))
Датчики парктроников точно не годятся - у них угол 75%, как у этого по ссылке. Все отражения от стенок бака будет ловить. Нужен узконаправленный датчик.
Поплавок с резистивным слоем, например, достаточно простое и надежное решение. В каждом (почти) баке стоит)))
Предыдущий уровнемер у меня как раз был такой - стандартный стрелочный датчик с поплавком на веревочке. Я посадил на ость стрелки переменный резистор и откалибровал. Все работало отлично до первых морозов. Внутри механизма бывает конденсат, который замерзает и датчик начинает подклинивать - поплавок не опускается вслед за топливом. Я намучился обливать механику спреем для размораживания замков с силиконовой смазкой - помогает не надолго. Поэтому и решил отказаться от механики. Но HC-SR04 тоже оказался глючный. Может такой экземпляр попался, а может он не работает на холоде и в сырости. Попробую использовать ИК-дальномер. На Ali продаются герметичные. Плюс ИК-дальномерам не нужно подстраивать скорость звука, которая меняется от 325 до 350 м/с при изменении температуры от -10 до +30.