HC-SR04 аппаратные проблемы.
- Войдите на сайт для отправки комментариев
Втр, 17/02/2015 - 14:31
В вкратце по "hc-sr04", пришло две штуки обе НЕ хотят работать с MEGA 2560, но так-как используются только Digital IN/OUT то на MEGA, не грешу.
Суть проблемы в видео http://www.youtube.com/watch?v=TClJlWjZgdQ&spfreload=10
Провёл анализ проблемы, микропроцессор шилда перестает посылать на трансивер сигналы, TX1, TX2, и HVOFF всегда в логической единице, соответственно после PNP транзистора (ключ по питанию MAX3232/232), питание на данную микросхему тоже перестает приходить. Если в цепи усилителя ресивера создать любой сигнал (к примеру фон от пальца, касаюсь на видео), микроконтроллер начинает посылать импульсы на трансивер по все трем линиям, но до следующего пропадания сигнала на ресивере. И это все при посыле строба на ECHO, любой частоты. То-есть явная ошибка в работе логики микроконтроллёра этого шилда. Вопрос что за МК стоит на шилде (затерто название), и где-бы надыбать прошивку с него.
Схема почти полный аналог http://uglyduck.ath.cx/HC-SR04E/HC-SR04.svgz
Только у меня max3232 c своими обвязками. И ещё у него кварц на 27мГц, у меня же без опознавательных знаков,
на осцилограмме снимается Один мегагерц, кстати ставил на 4мГц, осцилограф показывает тот-же Один мГц, и с ним ничего не поменялось.
С уважением!
Вижу, помошников нету... Видимо и решения поставленной задачи нету...
пример стандартный я полагаю проверял. питание не перепутал. пеермычки черные с одной стороны платы на другую не делал
пины указал правильно. просадки по питанию нет. пины не паленые и на других проверял. так?
Конечно! Даже с таймингами игрался... толку ноль.
Обижаете.
Не понял суть вопроса, пардон...
Если бы указал НЕправильно, то и в терминал ничего не получал-бы (на видел видно-же, что пакеты падают при определённых условиях.)
Питал от разных источников, да и на осцилограмме увидел-бы
Нет, не паленые, на других проверял, от безисходности предпологал что возможны конфликты с пинами ATMEGA2560, поэтому пробывал разные. Это еще до того как стал разбирать принцип работы шилда.
Сегодня получил UNO R3. С ней все то-же самое. Так что косвенно подтверждается, что проблема в прошивке МК шилда. Одно смущает почему осцилографом снимаю 1мГц с кварца, хотя впаивал за место штатного 4-х мегагерцевый, а на схеме у человека вообще 27 мГц, резонатор стоит. Хотя на фото в инете у всех на 4 мГц впаян.
Попробую завтра ради прикола на 25 мГц впаять, на 27 мГц в закрамах не нашёл к сожалению...
у меня похожая проблема - сенсор работает нормально до тех пор пока не потеряет эхо. Если не услышит эхо то виснет и помогает то ли off/on по питанию или же касание пальцем к цепочки резисторов/конденсаторов. Пока решение не нашёл.
С сенсором HC-SR04+ проблем нет.
Похоже вся партия такая, купленная в течении последних пары месяцев, и не только у одного продавца.
Сам брал вот у этого http://bit.ly/1Bvb4e1
Попробовал только что http://www.instructables.com/id/Easy-ultrasonic-4-pin-sensor-monitoring-...
Вроде работает, только дальнее эхо не всегда ловит. В районе метр - полтора достаточно стабильно, а то что дальше может и 4 метра выкинуть. Для вывода графиков использовал http://www.megunolink.com/downloads/download-megunolink-pro/
мой hc-sr04 так не захотел работать. hc-sr04+ без проблем
Включал в Мега2560 и питался прямо с 2 и 5 пинов. Прямо как на инструктаблес. Вроде всё ОК
Я не включал, но вы можете попробовать ограничить время ожидания отклика:
duration = pulseIn(4, HIGH, 10000);
Будет выдавать "0" если время больше 10000 микросекунд.
А по схеме подозрения на кварц, его кондёрчики, R17 перепроверить... HVOff TX1 TX2 вроде должны дёргаться сразу после TRIG сигнала. Может его длительность погонять больше-меньше?
// The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
pinMode(3, OUTPUT);// attach pin 3 to Trig
digitalWrite(3, LOW);
delayMicroseconds(2);
digitalWrite(3, HIGH);
delayMicroseconds(5); // Тут 5 используют
digitalWrite(3, LOW);
А тут - 10 .... http://robocraft.ru/blog/electronics/772.html
Ну и сотню -другую микрофарад прямо на разъём питания- очень удачно входит ниже кварца между TX и RX
А по схеме подозрения на кварц, его кондёрчики, R17 перепроверить... HVOff TX1 TX2 вроде должны дёргаться сразу после TRIG сигнала. Может его длительность погонять больше-меньше?
C R17 все нормально 10k, на RST всегда логическая еденица. А вот с кварцем... помните я в первом посте писал, что при установке кварца на 4мГц, все равно снимается меандр в 1мГц? Так вот без кварца, этот же 1мГц так-же успешно снимается, с 6 выхода (OSC0). На 5 выводе (OSC1) всегда 5 вольт.
Похоже наши узкоглазые друзья с фьюзами напортачили?
По поводу HVOff TX1 TX2, да должны, но не дергаются, когда плата в "дауне", на HVOff всегда еденица, ну это и понятно PNP транзюком дергает. Да и хрен-бы с ним, можно было-бы MAX и так питать. Но вот на TX1/TX2 ничего нету...
Кондеры по питанию тоже ставил, (когда не удало запустить плату) на 0,1 и 1000mF, без толку.
P.S. Продавец после "спора" пошел на встречу сразу, и пообещал вернуть деньги. Закажу сейчас HC-SR4+, а с этими буду по возможности экспериментировать... MK стоит EM78P153S. Придет на днях программатор, попробую "попинать" каметь, может откликнется...
Покурил сейчас даташит EM78P153S, он идет с ROM, на борту. Даже если они не залочили доспуп к памяти, перепрошить его не удастся. Новый на ALi стоит около 1$, то-есть почти как данный модуль... Авчинка выделки не стоит, как говорится.
А чем плюс от неплюса отличается? Никто не обьяснит?
Я вчера пробовал датчиком человека "поймать".... Стенки он ловит нормально, а вот человека- в зависимости от одежды. Шерстяной свитер на руке не ловит почти никогда, даже если близко.
Надо в коридоре длиной 2.5 метра достоверно узнать у какой двери стоит человек. Противоположную дверь видит нормально, а с человеком около неё может или уменьшить показания до 2-ух метров или совсем не замерять- тогда показывает в районе 4-рёх. Ну и угол слишком узкий. Коридорчик 1.30 шириной. Похоже ультрасоник не пойдёт, а так хотелось. Не строить-же лазерную " гребёнку" как в кино..... С шагом 10 сантиметров или с зеркалами " змейкой" эти 2 метра ....
http://uglyduck.ath.cx/ep/archive/2014/01/Making_a_better_HC_SR04_Echo_L...
I've simulated the filter in PSpice and it is not centered at 40KHz as it should be but instead it has a 18KHz peak. By changing just two resistors (R13 to 2K2 and R11 to 18K) the filter response is shifted to the pulse frequency and this greatly improves the detection sensitivity.
А чем плюс от неплюса отличается? Никто не обьяснит?
Кроме компоновки деталей на плате, разницы не увидел. Просто, раз сказали что работают, вот и заказал. Так-как с другими обжигаться желания больше нет.
И кстати я был прав, сейчас почти у всех продавцов модули безкварцевые пошли, на внутреннем резонаторе.
Вот такой. Есть отличия
Нашёл и решение для своих (2 шт.) HC-SR04. Правда через ж.. но так как работает нормально и не зависает, то пока оставил. Резистор 4.7к на Vcc
Странно что около макс232 не видно кондёров преобразователя и впечатление что схема усилителя и фильтра немного упрощена....
Вот такой. Есть отличия
Отличия от HC-SR04+ ? Визуально там совсем другая схема...
Нашёл и решение для своих (2 шт.) HC-SR04. Правда через ж.. но так как работает нормально и не зависает, то пока оставил. Резистор 4.7к на Vcc
Может стоило с четверной ноги LM324, кинуть питание, да и резюк (SMD) припаять к крайнему правому резистору в цепочке? Фактически вы потеряли только по энергосбережению, на первый взгляд. Так-как не даете возможность "заснуть" МК, кстати если снять, TRIG, HVOff переходит в еденицу?
sasasa, попробывал по вашему методу (хотя теоретически предпологал, что не должно сработать), не помогло...
Я вчера пробовал датчиком человека "поймать".... Стенки он ловит нормально, а вот человека- в зависимости от одежды. Шерстяной свитер на руке не ловит почти никогда, даже если близко.
Ультразвук вообще капризная штука, почти как узконаправленный свет. Чуть повернешь пластинку - и амплитуда эха меняется в несколько раз, а такой же отражатель сбоку диаграммы направленности, но как надо повернутый может дать сигнал в разы больше, чем не как надо повернутый но в центре. Эту тему чтобы прочувствовать, как датчик видит препятствия, - можно подпаяться к седьмой ноге LM324 на датчике и подать на осциллограф, с запуском от Trig. И поиграть перед датчиком с разными предметами, поверхностями, материалами, - посмотреть что и какое эхо дает. ИМХО сильно помогает оценить возможности датчика в бытовой обстановке) Делаю сейчас на этой основе макет-подобие радиолокационной станции для студентов, чтобы общие принципы на столе демонстрировать :-)
Makoshin
Вот, как всё-таки иногда приятно почитать коментарии людей. Спасибо, большое!
Всегда рад поддержать хорошее дело)
ИМХО для определения двери УЗЧ датчик не самый лучший вариант потому, что его слишком просто обмануть. Например встанет человек в коридоре, заслонит проход - и можно хоть все двери открыть, датчик увидит только ближнее препятствие. А вот как безконтактный определитель прохождения по коридору, если его поставить на потолке - думаю сработает хорошо. С его разрешающей способностью под ним и ползком не проползешь, а в два вертикальных эшелона люди по коридору не ходят, поэтому никто его с направления потолка не заслонит.
Двери можно попробовать определять ИК датчиком. Например наклеить на двери отражающие полоски возле верхней кромки, и светить с конца коридора ИК-диодом повдоль. А приемник поместить там же в простенький объектив (от китайского бинокля за 300р или в любом советском хламчике в ящиках найти что-то подходящее от фильмоскопов), так чтобы он смотрел только на зеркальца поверх голов (мало кто бывает выше двери ростом). И как только в приемнике стрельнет отражение - срабатывает нужная реакция :-) Надо только определить, отражает ли стандартная светоотражающая лента ИК лучи, вроде должна. Теоретически, можно даже закалибровать приемник под определение двери по максимальной амплитуде отраженного сигнала, но это не самый лучший метод, ведь дверь могут открыть не полностью или часть отражения все таки будет заслонена. В общем это не готовая идея, но копнуть в эту сторону можно.
Помню в радиолокации был такой термин ВАРУ - ВременнАя Автоматическая Регулировка Усиления. И вроде по схеме что-то похожее есть, правда там просто снижают порог компаратора, но именно по времени. Это конечно не усиление поднимать, а наоборот, порог менять. Хоть как-то....
trembo
Да, это типичная ВАРУ, как на /*моих*/ наших РЛС (только у нас ее глубина еще может управляться), я так понял она применяется в HC-SR04 для гашения влияния излученного импульса на приемник в момент излучения. Там такой холм стабильный от начала развертки и на все первые 5-6 см. А завал графика ВАРУ как раз той же продолжительности. Хочу попробовать вынести приемную гильзу на отдельную подставку, думаю тогда холм исчезнет, когда механическая связь уйдет.
Вообще было бы неплохо научить этот датчик менять продолжительность зондирующего импульса, она у него (не помню сколько микросекунд) но глубина измеряемого объема по расчетам получается 6см. По осциллографу хорошо видно, если на линейку поставить две цели и начать их раздвигать подальше, то точно на 6см общий горб начинает разделяться на вершине на два. Но продолжительность задается, как я понял, с внутреннего контроллера, это третья микросхема, посередине которая. Так бы увеличивая длительность можно было бы выиграть прирост по дальности обзора, а уменьшая - по разрешающей способности на малой дистанции.
по поводу кварца к меня стоит на 8мгц
а если где то фонит то смотрите видимо какой то вход у микросхемы lm324 висит в воздухе
вот и ловит все что не попадя
посмотрите на выводах 5,10,12 должно быть 2.5в
да практически на всех выводах половина питания
если нет то искать причину
по поводу кварца к меня стоит на 8мгц
Ничего удивительного, по даташиту на проц ставится кварц до 20мГц.
а если где то фонит то смотрите видимо какой то вход у микросхемы lm324 висит в воздухе
вот и ловит все что не попадя
Э... не совсем вас понял... у кого, что фонит?
это когда подносите руку или за что нибудь беретесь и все начинает работать
а потом все опять повторяется
это ж аналоговая микросхема операционный усилитель
а там модет пищать шуметь квакать и тд и тп
на вашей схеме между 8и9 ногой стоит резистор а конденсатора нет как по схеме а это обратная связь и усиление
не порядок
китайцы как всегда сэкономили кондер на 12пик
а кварц с тремя выводами ? или с думя?
если с двумя то нет кондеров на обратной стороне платы
может быть срыв генерации кварца
да и по поводу кварца должен стоять тот который стоял изначально
потому что контроллер делит частоту до 40 килогерц
а это резонансная частота излучателя и приемника
если поставить кварц меньше или больше то излучатель не будет работать должным образом
так как делиться будет по другому (делиться она программно)
вы ж не знаете программу которая там вшита
Пытаюсь найти калькулятор который сказал бы о параметрах фильтра по номиналам деталей. Проверить кЕтайцОв....
Полно тех, которые считают от частоты номиналы....
http://www.wa4dsy.com/robot/bandpass-filter-calc
на вашей схеме между 8и9 ногой стоит резистор а конденсатора нет как по схеме а это обратная связь и усиление
не порядок
китайцы как всегда сэкономили кондер на 12пик
На всех последних шилдах, что предлагают китайцы, этого кондера нет, ни у кого, ни у одной фирмы. Одно из первого что делал, это впаивал кондер. Не помогло.
а кварц с тремя выводами ? или с думя?
если с двумя то нет кондеров на обратной стороне платы
может быть срыв генерации кварца
Кварц типовой на два вывода, кондеры, на массу стоят.
да и по поводу кварца должен стоять тот который стоял изначально
потому что контроллер делит частоту до 40 килогерц
а это резонансная частота излучателя и приемника
Кварц стоит родной, но вы видимо не внимательно читали, я же писал что МК сам генерирует 1мГц.
То-есть, регистры МК (OSC1 и OSC0) прошиты в еденицу, поменять их невозможно, так-ка МК прошивается одноразово.
если поставить кварц меньше или больше то излучатель не будет работать должным образом
так как делиться будет по другому (делиться она программно)
вы ж не знаете программу которая там вшита
Ну... это-ж, и так понятно-ж...
Еще раз повторю, МК должен питать MAX232/3232 по наличию меандра на входе TRIG, и формировать сигнал на TX1/TX2, не зависимо от наличия сигнала на входе Threshold. И он это благополучно НЕ делает. Явная ошибка в прошивке.
[quote=vodyanov]
Кварц стоит родной, но вы видимо не внимательно читали, я же писал что МК сам генерирует 1мГц.
вот видимо по этому и не работет
почему он это делает?
не задавали себе вопрос?
вот видимо по этому и не работет
почему он это делает?
не задавали себе вопрос?
В смысле?
В вкратце по "hc-sr04", пришло две штуки обе НЕ хотят работать с MEGA 2560, но так-как используются только Digital IN/OUT то на MEGA, не грешу.
Та же самая проблемма, так же задевешь кондёры с краю работает, еще работает если рядом включен рабочий датчик.. Проблема в средней микрухе, я перепаивал с рабочего датчика и он начал нормально работать.. Еще помогает если стукнуть по датчику))
Та же самая проблемма, так же задевешь кондёры с краю работает, еще работает если рядом включен рабочий датчик..
Ну всю правильно, рабочий датчик же, шлет импульсы, приемнику нерабочего всё равно чьи импульсы, вот и контроллер нерабочего начинает их обрабатывать и включает при этом свой передатчик, хотя по логике он должен работат постоянно от меандра ECHO.
Проблема в средней микрухе, я перепаивал с рабочего датчика и он начал нормально работать..
Ага, именно в ней, а точнее в микропрограмме этого МК, но так-как прошивки на просторах нету и исходников тоже, да и МК программируется единожды, и не дает себя перепрошить то мой совет, если брали на Ali создавайте "спор", и ссылайтесь на эту ветки или на видео что в первом посте. Деньги вернут.
Еще помогает если стукнуть по датчику))
Все, верно. Приемник/передатчик пьезовые и при любом ударе генерируют ток, который и воспринимается как испульс.
Кстати оказалось надевание войлочных трубочек на гильзы датчиков обостряет диаграмму направленности раза в два. До этого пробовал картонные - оно обостряют меньше. *так, к слову*
Makoshin, А растояние?
Маленько падает, но в целом разрешающая способность повышается, перестают лезть в экран боковые предметы. А так вообще - сильно зависит от препятствия, но до двух метров уверенно видит на столе карболитовый коробок от термостата, человека в куртке видит за три метра точно. Все зависит от материала и от угла наклона поверхности, гладкая поверхность в ультразвуке "бликует" под острым углом. Стоит повернуть на пару градусов - амплитуда эха падает в несколько раз, еще на пару - пропадает совсем. Поэтому провалилась идея сделать "ультразвуковую трость" для слепых - она просто не видит уходящих стенок коридора из за особенностей отражения. Поверхность с неровностями от 1см (плата с деталями например) уже под разными углами отражается лучше, даже почти параллельно лучу отражает. А вот ткань не отражает совсем. Прям делал опыт - ставлю ту карболитовую коробочку, от нее сильное эхо. Накрываю вязанной шапкой - всё, ноль, шапка больше ее в четыре раза по площади - а ответного сигнала никакого.
Makoshin, Всё понятно, придется на робота навешивать еще и ИК-сенсор, для малых растояний. Это печалит.
vodyanov,
Вот с ИК сенсорами еще не работал, знаю что они бывают на разные диапазоны (0-30, 30-100, 100-250 итд). И вроде как работают по принципу падения яркости от расстояния, но тогда не понятно как они не сбиваются от разных поверхностей. Но что-то вроде принцип у них совсем простой, не на задержке импульса по времени.
Makoshin, Да, там все просто, как правило: фильт->усилитель->компаратор
А кто-нибудь пробовал с гильзой излучателя поработать отдельно? Например прицепить ее на выход и подать тон? Хотелось бы сделать излучатель, управляемый Ардуино, такой чтобы можно было управлять частотой излучения (в доступных пределах) и длительностями зондирующих импульсов. В качестве стенда на кафедру, в лабораторию радиолокации, чтоб студенты на столе опыты ставили на лабах :-)
А почему нет? Единственное нужно усиливать сигнал c Arduino (не зря же они поставили преобразователь TTL уровней в виде max232/3232)...
Поменять частоту можно, но....
У каждого подобного излучателя есть частота собственного резонанса.
И не зря, поверьте, с ним работают именно на этой частоте....
Вот только спад происходит не сильно, и в каком-то определенном диапазоне излучатель работает устойчиво, Да конечно на частоте собственного резонанса мы имеет наибольший КПД, но это не кретично, кстати даже в данном устройстве частота работы датчика не соответствует частоте резонанса излучателей.
Столкнулся с проблемой просадки по питанию (вплоть до перезагрузки микропроцессора) при подаче сигнала на пин Trig.
Это как-то можно вылечить ?
Это вход процессора. Высокоомный. С привязкой 10 К к питанию. Нагрузки никакой.
А вот при "щелчке" ( вернее их 8 штук) может и просесть ваше питание.
Повесьте 220 - 470- 1000 мкФ на ваш датчик ( земля - 5 вольт) .
Прекрасно паяется на плату датчика между излучателем и приёмником.
trembo - Огромное спасибо, помогло:)
Сам столкнулся с проблемой зависания датчика при потере эха, восстанавливается работа
постукиванием по приемнику, касанием пальцами в районе LM324, или снятием - подачей питания
датчика.
Проблема решается програмно за одну секунду. Для этого шунтируем питание на датчике керамическим смд
конденсаторм 10мкф (со старой мамки) и подключаем питание датчика к коллектору PNP транзистора (КТ361),
эмиттер на +5вольт, базу последовательно через резистор 2-3ком подключаем к свободному цифровому
выходу.
В программе проверяем выход датчика, if (если) Ultrasjnic.Randing(CM) == 0, ставим выбранный пин в HIGH
(отключаем питание датчика), делаем задержку 500мс, включаем питание датчика LOW ,делаем задержку 500мс,
далее ваша программа.
Если датчик зависает (...(СМ))==0, программа выключает - включает питание датчика, восстанавливая его работу.
С уважением.
Костыли.... Ну тоже вариант, по мне лучше иметь нормальные датчики чем постоянно опрашивать переменную...
vodyanov, жалко выкидывать 3 датчика, ждать с китая нормальные 4-6 недель, а опрос переменной
думаю займет несколько микросекунд, пока датчик работает, все нормально, а сбои происходят
не так уж и часто, при измерении уровня воды в емкости не критично.
С уважением.
Такая же фигня! пришли пять штук из китая, на всех одна и та же проблема. При удаленнии от датчика более 120см, теряет эхо и не возвращается в работу. планировал использовать как датчик присутствия на расстояние до 3-х метров. точность измерения расстояния не важна, главное что бы срабатывал при изменении в зоне действия датчика. Использовать датчик движения не вариант, не всегда двигаюсь в этом месте ))) Написал продавану, жду что ответит.