Помогите сделать последовательный опрос датчиков 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, я ни в коем случае не программист, и использую в своих примитивных заключениях доступные источники, в данном случае этот. Кроме того, я лучше ориентируюсь в схемах, чем в словесных описаниях. Потому, все ещё надеясь, что правильно понял, как работает HC-SR04 уверен , что алгоритм ТС в сообщении №5 не совсем удачный, так как по моей же, может ошибочной, интерпретации алгоритма работы HC-SR04, для опроса 8-ми датчиков необходимо слишком много времени, за которое движущийся объект поменяет дислокацию. К тому-же ТС не учитывает диаграмму направленности HC-SR04 (30 градусов) и "мертвые" зоны. А на счёт, Вашего вопроса, наверное "тормозит" на мизерное время движения ультразвука к объекту и обратно в данном случае, так как излучатель активируется (8 импульсов) до запуска функции pulseIn(pin, value, timeout) и второй пойманный приемником отклик должен прекратить её (timeout ожидания уровня value на pin). Это если отклика нет, то таймаут будет в 1сек и соответствено тормозить будет на это же время. В данном случае идёт речь о паузах между измерениями или суммарно(delayMicroseconds(10)+timeout+100мсек)х 8 датчиков. Ну как-то так.