И еще: нет смысла использовать ADC, тут либо есть сигнал, либо нет, обычные цифровые входы, просто надо сделать какую-то обвязку-фильтр, чтобы отсечь помехи и "слышать" только "свою" частоту.
Мне кажется, что усложнение оправдано. 1 Отключаем приемник, включам излучатель. 2 Запускаем импульс 3 Выключаем излучатель и включаем приемник. 4 Пишем все с приемника какое то время. Формируем профиль. 5 Разбираем пики на принятом профиле. То есть задача измерить расстояние до всех преград, как я понял ТСа, при условии, что растояние до преграды вообще неизвестно, пять метров или 11 км. То есть задача сонар сделать, а не глубиномер. Мне интересно, как сделать излучатель ультразвука, чтоб в воде работал. ЗЫ А АЦП нужно чтоб ложное эхо на неоднородностях воды отсечь, хотя бы.
Ну так расстояние до всех преград и будет записываться, ведь вы отключаете приемник только тогда, когда пройдет максимальное время, за которое звук пройдет, допустим 10км (глубже мест в мире нету), и он (приемник) будет рисовать точку при каждом зафиксированном отраженном сигнале.
При таком раскладе он скорее всего ничего не запишет. А точка ничего не скажет от чего отразился сигнал, сколько отразилось от преграды, а сколько прошло дальше.
Точка скажет на какой глубине объект. Ведь мы параллельно с излучением импульса запускаем счетчик глубины, который отсчитывает какое расстояние успел пройти звук, и делим это значение пополам, и это значение будет координатой Y той точки, что мы будем рисовать на экране. То есть на экране будет видно на каких глубинах было отражение сигнала, то есть будет понятно где препятствия.
Совершенно верно. В воде много всего интересного может быть, ультразвук иногда отражается от слоев с разной температурой, если мы будем просто фиксировать "если есть какое-то эхо, тут ставим точку, если ничего нет - рисуем черноту", то мы запутаемся в сигналах. Так что оцифровка всего, что приходит из воды хотя бы с 8 битовой точностью вполне оправдана - на мониторе мы будем видеть полутона и сможем разобрать где там что - дно, рыба, мусор или слой воды другой температуры.
Для измерения глубины у себя в бассейне на даче Ваше решение идеально - мы точно знаем, что у нас кроме воды и ровного дна ничего нет. В реальном озере картина значительно сложнее.
Нужно найти излучатель на несколько сотен килогерц и вклеить его в герметичный корпус, перед излучателем сделать акустическую линзу (нужно почитать справочники). Есть вариант проще - купить готовый на алибабе: http://www.alibaba.com/product-gs/721200130/Ultrasonic_Underwater_Depth_Transducer_200Khz.html
А каким образом предполагается проводить сканирование дна? Нацеливать импульс под разными углами и получать конус сканирования? Каким образом оно в существующих девайсах осуществляется?
Обычно они ничего не сканируют. В бытовых эхолотах стоит один излучатель, он генерирует импульс, который конусом немного расходится вниз. Затем эхолот слушает отраженные импульсы и рисует на экране дно, а если есть другие (не очень сильные отражения) он может нарисовать на экране иконки рыб, например. Ну а если это дорогие аппараты для яхт - там может быть массив излучателей для улучшения разрешения, плюс система знает куда и с какой скоростью плывет яхта и строит картинку на экране.
Похоже все зависит от скорости срабатывания АЦП. В МК ATtiny13A или ATtiny45 время преобразования 260 мкс. То есть "всасывая" отклики в лоб, мы получаем погрешность плюс минус 39 сантиметров примерно. Причем переход на более быстродействующие АЦП не панацея. Видимо на таком уровне анализировать время откликов, без анализа мощности и исходить из этой информации. Например если серия откликов с расстояния 30 метров и один-два с расстояния 27, то вероятно это не дно, а рыба. Плюс увеличение скорости АЦП - увеличение погрешности преобразования. То есть либо ошибка в определении расстояния либо ошибка в определении силы отраженного сигнала.