Подключение нескольких датчиков HC-SR04

Помогите сделать последовательный опрос датчиков HC-SR04

Использование прочих датчиков и энкодеров и пользовательских блоков к ним
Ответить
Alexnet135
Рядовой
Сообщения: 5
Зарегистрирован: 01.10.2018{, 16:48}
Репутация: 0
Имя: Александр

Подключение нескольких датчиков HC-SR04

#1

Сообщение Alexnet135 » 01.10.2018{, 19:15}

Есть задача отслеживать положение предмета по осям х и y, думаю установить несколько датчиков HC-SR04 в ряд и опрашивать их. Но есть вероятность что при опросе датчики будут ловить сигнал от соседних и выдавать помехи. Как в flprog сделать последовательный опрос датчиков HC-SR04?

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

Подключение нескольких датчиков HC-SR04

#2

Сообщение AlexCrane » 01.10.2018{, 21:33}

Alexnet135, Попробовать вот так
СпойлерПоказать
HC-SR04.png
Попробуй может получится, в генераторе нужно установить время которое будет достаточно для опроса датчика
Вложения
HC-SR04 test.flp
(58.36 КБ) 109 скачиваний
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Аватара пользователя
Rovki
Полковник
Сообщения: 4872
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 269
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Подключение нескольких датчиков HC-SR04

#3

Сообщение Rovki » 01.10.2018{, 22:03}

Так от самого предмета будут идти отражения во все стороны (датчики) ... :shok:
Электронщик до мозга костей и не только

Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25.01.2018{, 22:23}
Репутация: 95
Откуда: Bukovyna
Имя: Василий

Подключение нескольких датчиков HC-SR04

#4

Сообщение Labu559 » 01.10.2018{, 23:07}

AlexCrane писал(а):
01.10.2018{, 21:33}
в генераторе нужно установить время которое будет достаточно для опроса датчика
Разрешите уточнить. Блок HC-SR04 повторно, или блоки HC-SR04 последовательно должны включаться в работу (следующее измерение ) с промежутками не менее 50 мсек. В штатном блоке- 100 мсек. Если я понял правильно, это делается для избавления получения эхо от удалённых предметов на расстоянии больше 400 см, или повторно отражённого затухающего сигнала. А выполнение всего кода штатного Блока HC-SR04 полностью происходит в одном цикле ф-и Loop(), не прерываясь, потому "время опроса" или точнее время однократного выполнения кода не фигурирует совершенно, и определяется значением удержания запускающго импульса в HIGH (10 мкс) + таймаут функции pulseIn(pin, value, timeout) где timeout- время ожидания импульса не определён, т.е. значение по умолчанию - одна секунда . А вот строка кода штатного Блока HC-SR04 if (abs((millis() - _ultrasonic1P))>100) - в данной ситуации будет лишней, ведь 100- константа без учёта наличия второго датчика, т.е. условие всегда будет истинно.
А дальше, если ТС определит сколько датчиков должно быть (4-е дистанция вперёд-назад и вверх-вниз или же 2-а горизонталь-вертикаль) то сложить блок из скетча- не составит большого труда.

Alexnet135
Рядовой
Сообщения: 5
Зарегистрирован: 01.10.2018{, 16:48}
Репутация: 0
Имя: Александр

Подключение нескольких датчиков HC-SR04

#5

Сообщение Alexnet135 » 02.10.2018{, 08:50}

Есть комната 3х2 хочу сделать следящую подсветку. По стене 2м расположить 4 датчика 2 с одной 2 с другой на случай если 2 объекта будут на одной плоскости, которые будут задавать координаты свечения. На 3м стене располагаем 4 датчика, которые будут задавать интенсивность в зависимости от удаления. Чтоб эхо датчика не прилетало соседнему необходимо опрашивать их по очереди, пришёл ответ опросил другой и т.д.

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

Подключение нескольких датчиков HC-SR04

#6

Сообщение AlexCrane » 02.10.2018{, 15:11}

Labu559, функция pulseIn тормозит loop до сигнала или тайм аута?
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25.01.2018{, 22:23}
Репутация: 95
Откуда: Bukovyna
Имя: Василий

Подключение нескольких датчиков HC-SR04

#7

Сообщение Labu559 » 02.10.2018{, 22:45}

AlexCrane писал(а):
02.10.2018{, 15:11}
функция pulseIn тормозит loop до сигнала или тайм аута?
Ув.AlexCrane, я ни в коем случае не программист, и использую в своих примитивных заключениях доступные источники, в данном случае этот. Кроме того, я лучше ориентируюсь в схемах, чем в словесных описаниях. Потому, все ещё надеясь, что правильно понял, как работает HC-SR04 уверен , что алгоритм ТС в сообщении №5 не совсем удачный, так как по моей же, может ошибочной, интерпретации алгоритма работы HC-SR04, для опроса 8-ми датчиков необходимо слишком много времени, за которое движущийся объект поменяет дислокацию. К тому-же ТС не учитывает диаграмму направленности HC-SR04 (30 градусов) и "мертвые" зоны. А на счёт, Вашего вопроса, наверное "тормозит" на мизерное время движения ультразвука к объекту и обратно в данном случае, так как излучатель активируется (8 импульсов) до запуска функции pulseIn(pin, value, timeout) и второй пойманный приемником отклик должен прекратить её (timeout ожидания уровня value на pin). Это если отклика нет, то таймаут будет в 1сек и соответствено тормозить будет на это же время. В данном случае идёт речь о паузах между измерениями или суммарно(delayMicroseconds(10)+timeout+100мсек)х 8 датчиков. Ну как-то так.
P.S. нашёл альтернативу штатному блоку вот здесь. Попробую сделать блок на 5 датчиков из демо-примера, так как Меги у меня нет и мультиплексора тоже.

Пробуйте: Ардуино-библиотека
,
Пользовательский Блок на 5 датчиков,Показать
MultiSonar5beta(CODE).ubi
(81.11 КБ) 97 скачиваний
результаты теста демо проекта,Показать
MultiSonarTest.png
номера пинов подключения датчиков указываются в параметрах пользователя, есть вывод в монитор порта (скорость- 115200), дистанция до 3-х метров (такое ТЗ в 5-м сообщении). Испытывал на 2-х датчиках и Nano328p. Результат работы меня не впечатлил, потому не оптимизировал код, не делал описания, нужны фильтры значений. Если подойдёт для Ваших задач,- доделаю как Вам нужно. Удачи!
Последний раз редактировалось Labu559 03.10.2018{, 13:06}, всего редактировалось 2 раза.

Alexnet135
Рядовой
Сообщения: 5
Зарегистрирован: 01.10.2018{, 16:48}
Репутация: 0
Имя: Александр

Подключение нескольких датчиков HC-SR04

#8

Сообщение Alexnet135 » 03.10.2018{, 09:47}

Попробовал установить пользовательский блок дальномер нс04 по перерыв. с сайта с корректировкой температуры и перезапуском при зависании. Если ставлю этот блок несколько раз, ставлю разные ноги триггера и общий эхо и включают эти блоки по очереди, то при компеляции ардуино выдаёт ошибку.

Отправлено спустя 7 минут 27 секунд:
На счёт нет ответа на датчике уже писал что помещение 3х2 исходя из этого ответ будет. 2 секунды ожидания сигнала тоже терпимо. Просто я не специалист программирования. В электронике и логических элементах я разбираюсь, но написать скетч или пользовательский блок мне пока не по силам
Вложения
Безымянный1.png

Ответить

Вернуться в «Прочие датчики и энкодеры»