Не работает ультразвуковой дальномер HC-SR04
- Войдите на сайт для отправки комментариев
Втр, 08/07/2014 - 12:02
Здравсвуйте! Столкнулся с проблемой - ультразвуковой дальномер не работает. Загрузил скетч из стандартной библиотеки и в монитор порта постоянно отсылает 0. Но если дотронуться до ножки одного из излучателя начинает отсылать случайные значения. Что это может быть?
нет контакта где он должен быть или неисправность дальномера :(
Добрый день.
возникла проблема с hc-sr04
ПОдключаю один дальномер - работает как надо.
подключаю второй отдельно - работает как надо.
подключаю два, первый на пины 2(Trig) и 3(Echo), второй на пины 5(Trig) и 6(Echo).
И тут начинается непонятка. Первый работает как следует, положенные 3 метра показывает. Второй - отсылает 0 в монитор порта.
Вначале грешил на быдлокод. Но, как оказалось, всё там нормально, а если всовывать-высовывать контакт 6(Echo), то он начинает показывать правильное расстояние.
Если поменять порты, допустим, с 5 и 6 на 8 и 9, то наблюдается та же картина. Пока не начнёшь совать - ни фига не заработает.
Господа, подскажите, как подключить два датчика одновременно?
Плата Arduino DUE.
код-то дайте...
pulseIn() - пока она выполняется МК глух и нем...
строку 37 в 32, строку 38 в 36
ну, ещё скопируйте строку 46 в 39
Попробуйте расчет поменять местами:
Спасибо огромное, помогло.
не знал, про глухоту МК во время pulseIn.
delay() - тоже блокирующая
Ещё такой вопрос:
реально ли сделать схему один излучатель - три приёмника?
допустим, выпаять излучатель, через провод его припаять назад, чтобы он был далеко, подключить ещё, допустим, 2 дальномера, но в них не подключать выход Trig, а только Echo? И поставить рядом 3 приёмника, излучатель на метр отнести, и снимать данные с 3 приёмников?
или Echo без Trig вообще работать не собирается?
const int echo2=6, а прерывание на ноге D6 есть?
UNO прерывания:
Int0 - D2
Int1 - D3
Поменяйте echo провода на выводы 2 и 3.
UPD. По ходу чтения темы - наверно бесполезно.
Про 3 приёмника непонятно. Надо одновременно давать Trig на все три, а принимать отдельно, или как?
не.
Ну, допустим есть квадрат. В вершинах - дальномеры без подключённого Trig. В одном выпаян излучатель, соединён проводами с дальномером, и помещён в центр. Всё это счастье подсоединено к Ардуино.Trig включается только один - на том дальномере, из которого выпаян излучатель. Echo - на всех 4-х. То есть, 5 пинов всего юзаем.
Ну так вот: реально ли в такой схеме получать в порт последовательно значения с дальномеров 1 2 3 4 соответственно?
А почему рядом предложил поставить - чтобы все приёмники в угол распространения попали.
после излучения импульса передатчиком приёмник выставляет временной строб для приёма отражённого сигнала, вне строба приёмник выключен
можно стартануть 4 датчика посредством http://arduino.ru/Tutorial/Upravlenie_portami_cherez_registry
на 1 заклеить приёмник ( не обязательно ), на 2,3,4 заклеить излучатели, тогда приёмники 2,3,4 будут принимать сигнал от 1
НО, зафиксировать длину импульса через пульсеИн можно только с одного приёмника :( , это придётся решать через счётчики и прерывания....
зачем вам это ? какая практическая польза ?
получать в порт последовательно значения с дальномеров 1 2 3 4 соответственно
да, можно, если последовательно
старт 1,2 - слушаем 2 , старт 1,3 - слушаем 3 , старт 1,4 - слушаем 4
зачем выпаивать ?!!!!!! лейкопластырь есть ?
телеметрия-триангуляция-тригонометрия ? :)
Да вот задание есть, с помощью этих дальномеров установить (с какой-то погрешностью) координаты Х У излучател на проводе.
Практическое - есть какой-то прибор, допустим, дефектоскоп в руке.
В него влепить этот излучатель и принимать координаты и показания n раз в секунду.
сохранить в файл и построить потом 3-д картину дефекта.
сопсно, чтобы можно было рукой водить и получать координаты.
Да не надо мне заклеить. Мне надо, чтобы он был на расстоянии метра от платы.
2D !!!!!!!!! если стороны квадрата по 3 м - расчётное положение излучателя ( объекта ) будет находиться в эллипсе 25 х 35 см,
вас такая точность устроит ?
Да не надо мне заклеить. Мне надо, чтобы он был на расстоянии метра от платы.
отнести датчик в сборе от ардуины на 4-ёх проводках или покурочить датчик и вынести пьезоголовку от датчика и ардуины на 2-ух проводках ? хозяин - барин :)
не на 4-ёх - на ТРЁХ !!!!!!! эхо с 1 датчика не используется
"3-д" - имелось в виду, что по оси Z будет показания дефектоскопа.
я бы плюнул, и посадил всё на двигатели, честно.
но, блин, ТЗ))
сторона квадрата порядка метра, максимум 1.20м
Пластырь, наклеенный на излучатель просто удваивает расстояние)))
приклейте кружок оргстекла S=1 cm :)
какая точность по X, Y нужна ?
точность вроде как полсантиметра.
Но блин, оно такое точное только если излучатель и приёмник на одной прямой. А там углы, все дела...
какая вообще достижима точность определения расстояния в случае произвольных направлений?
Скорее всего датчик ловит первое ( самое раннее, самое ближнее эхо) , а остальные игнорирует.
Если вам надо ловить еще и другие, а поймать их вы сможете сняв сигнал с выхода усилителя, вы увидите еще дальние отражения. Учтите, там пачка из 8-ми импульсов.
Но проблемма в том, что угол излучения сигнала и угол приёма эха достаточно широкий. Поэтому повернув весь датчик вправо-влево на достаточно большой угол( я думаю на 10-15-20 градусов) вы всё равно поймаете то-же самое препятствие, ближнее к вам.
Да, и ещё: нельзя одновременно запускать второй дальномер пока не пришло эхо от первого
точность вроде как полсантиметра.
Но блин, оно такое точное только если излучатель и приёмник на одной прямой. А там углы, все дела...
какая вообще достижима точность определения расстояния в случае произвольных направлений?
оно такое точное только если излучатель и приёмник на одной прямой - нет, не зависит, главное чтобы приёмник 2 попадал в диаграмму напрвленности передатчика 1
какая вообще достижима точность определения расстояния в случае произвольных направлений?
такая как даташите
точность вроде как полсантиметра.
для достижения такой точности забудьте про эти датчики.... надо на лазер переходить :)
лады, спасибо за совет да инфу, пойду веселиться дальше.
проект из долгого ящика... дети давно придумали, но мне некогда :)
"Отслеживание положения кота в спортзале"
может вас заинтересует ?
а можно немного условных обозначений и исходные условия? посвободнее стану - попробую сделать)
справа - приёмопередатчик на спину коту ( на дефектоскоп ) , круговой - 6 приёмников облучения лазерной указкой, 6 IR-излучателей , Nano и батарейка ( хватит по 2 каждого ) - при освещении любого приёмника лазерной указкой ардуинка формирует короткий импульс для излучения IR-ками.
синий прямугольник - ардуина с IR-приёмником, к ней ещё подключены два-три СКАБа ( сканирующий барабан - аббревиатура из ТО Су-27 :) ) - жёлтые , два-три репера - приёмники облучения лазерной указкой - зелёные.
СКАБ постоянно вращается ( хоть кулер от компа ) , на крыльчатке установлена лазерная указка ( не точка, а линия ! , её ориентируем вертикально ) , излучение включается от ардуины. Как передать питание на указку - кольцевой токосъёмник и два скользящих контакта.
Измерения :
Тоборот СКАБа - вычисляем по импульсам на репере, Тalpha = Трепер - Тobj , Тobj получаем от IR-передатчика объекта.
из этого запаздывания Тobj от Трепер и перида вращения СКАБа - получаем угол-"азимут" от репера на объект.
Указки на СКАБах включаем по очереди - можно раз 100 и больше в секунду ( не считал ).
Далее - сплошная тригонометрия : стороны треугольника установки СКАБов, углы этого треугольника, углы ориентации реперов и т.д.
два СКАБа и три маркерные точки на гермошлеме пилота - определение положения головы пилота ( вернее ГШ ) в 3D....
адекватен или уже лицом в приборах ? - затея оттуда :)
дефектоскоп - какая точность по Z ? неужели рукой можно выдержать нужный уровень ? почему нельзя посадить ДС на каретку, как в плоттере ?
хз. Плоттер я уже сделал.
и там всё очень просто. Дефектоскоп - как пример. Главное - получить координаты руки
Всем добрый вечер, недавно (раньше такого не было, возможно партия датчиков с каким-то браком) столкнулся с проблемой с дальномером HC-SR04: при подаче питания на схему, датчики (их 2 в схеме), в 10% включениях, не работают (молчат, не слышно потрескивание при измерениях, частота измерений порядка 10штук в 1 секунду), но стоит немного стукнуть хотя бы один из датчиков, то они начинают работать... собственно вопрос, в чем может быть дело???
На схеме ноги TRIG подключены напрямую к МК, ноги ECHO - к МК и подтянуты резистором 10КОм к земле (чтобы исключить срабатывание схемы, когда датчики не подключены).
Код следуюущий:
https://www.youtube.com/watch?v=oOdoP3dniYA
Добрый день.
возникла проблема с hc-sr04
...
Плата Arduino DUE.
Скажите, а тот факт, что hc-sr04 имеет 5 В логику, а плата Arduino Due - 3.3 В - это никаких проблем не создавало?