Подключение нескольких датчиков HC-SR04
-
- Рядовой
- Сообщения: 5
- Зарегистрирован: 01 окт 2018, 16:48
- Имя: Александр
Подключение нескольких датчиков HC-SR04
Есть задача отслеживать положение предмета по осям х и y, думаю установить несколько датчиков HC-SR04 в ряд и опрашивать их. Но есть вероятность что при опросе датчики будут ловить сигнал от соседних и выдавать помехи. Как в flprog сделать последовательный опрос датчиков HC-SR04?
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Подключение нескольких датчиков HC-SR04
[ref]Alexnet135[/ref], Попробовать вот так
[spoiler] [/spoiler]
Попробуй может получится, в генераторе нужно установить время которое будет достаточно для опроса датчика
[spoiler] [/spoiler]
Попробуй может получится, в генераторе нужно установить время которое будет достаточно для опроса датчика
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
- Rovki
- Полковник
- Сообщения: 5724
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 68 раз
- Поблагодарили: 221 раз
- Контактная информация:
Подключение нескольких датчиков HC-SR04
Так от самого предмета будут идти отражения во все стороны (датчики) ... 

Электронщик до мозга костей и не только
Подключение нескольких датчиков HC-SR04
Разрешите уточнить. Блок 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- константа без учёта наличия второго датчика, т.е. условие всегда будет истинно.AlexCrane писал(а): 01 окт 2018, 21:33в генераторе нужно установить время которое будет достаточно для опроса датчика
А дальше, если ТС определит сколько датчиков должно быть (4-е дистанция вперёд-назад и вверх-вниз или же 2-а горизонталь-вертикаль) то сложить блок из скетча- не составит большого труда.
-
- Рядовой
- Сообщения: 5
- Зарегистрирован: 01 окт 2018, 16:48
- Имя: Александр
Подключение нескольких датчиков HC-SR04
Есть комната 3х2 хочу сделать следящую подсветку. По стене 2м расположить 4 датчика 2 с одной 2 с другой на случай если 2 объекта будут на одной плоскости, которые будут задавать координаты свечения. На 3м стене располагаем 4 датчика, которые будут задавать интенсивность в зависимости от удаления. Чтоб эхо датчика не прилетало соседнему необходимо опрашивать их по очереди, пришёл ответ опросил другой и т.д.
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Подключение нескольких датчиков HC-SR04
[ref]Labu559[/ref], функция pulseIn тормозит loop до сигнала или тайм аута?
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Подключение нескольких датчиков HC-SR04
Ув.[ref]AlexCrane[/ref], я ни в коем случае не программист, и использую в своих примитивных заключениях доступные источники, в данном случае этот. Кроме того, я лучше ориентируюсь в схемах, чем в словесных описаниях. Потому, все ещё надеясь, что правильно понял, как работает 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 датчиков из демо-примера, так как Меги у меня нет и мультиплексора тоже.
Пробуйте: Ардуино-библиотека, [spoiler title=Пользовательский Блок на 5 датчиков,] [/spoiler] [spoiler title= результаты теста демо проекта,] [/spoiler]номера пинов подключения датчиков указываются в параметрах пользователя, есть вывод в монитор порта (скорость- 115200), дистанция до 3-х метров (такое ТЗ в 5-м сообщении). Испытывал на 2-х датчиках и Nano328p. Результат работы меня не впечатлил, потому не оптимизировал код, не делал описания, нужны фильтры значений. Если подойдёт для Ваших задач,- доделаю как Вам нужно. Удачи!
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Labu559 03 окт 2018, 13:06, всего редактировалось 2 раза.
-
- Рядовой
- Сообщения: 5
- Зарегистрирован: 01 окт 2018, 16:48
- Имя: Александр
Подключение нескольких датчиков HC-SR04
Попробовал установить пользовательский блок дальномер нс04 по перерыв. с сайта с корректировкой температуры и перезапуском при зависании. Если ставлю этот блок несколько раз, ставлю разные ноги триггера и общий эхо и включают эти блоки по очереди, то при компеляции ардуино выдаёт ошибку.
Отправлено спустя 7 минут 27 секунд:
На счёт нет ответа на датчике уже писал что помещение 3х2 исходя из этого ответ будет. 2 секунды ожидания сигнала тоже терпимо. Просто я не специалист программирования. В электронике и логических элементах я разбираюсь, но написать скетч или пользовательский блок мне пока не по силам
Отправлено спустя 7 минут 27 секунд:
На счёт нет ответа на датчике уже писал что помещение 3х2 исходя из этого ответ будет. 2 секунды ожидания сигнала тоже терпимо. Просто я не специалист программирования. В электронике и логических элементах я разбираюсь, но написать скетч или пользовательский блок мне пока не по силам
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя