Поделюсь и я своими наработками.
Перепробовав множество конструкций ик-локаторов и алгоритмов обработки, наилучшие результаты я получил, использовав следующий алгоритм:
50 раз в секунду (это продиктовано тем, что в этом же прерывании я управляю сервами)
формируются пачки по 25-50 импульсов с частотой несущей TSOP, отдельно для правого локатора, отдельно для левого. Между пачками для правого и левого локаторов пауза в 450 мкс, чтобы "соседний" TSOP "успокоился".
После каждого импульса (не пачки!) проверяется состояние соответствующего TSOP'а и, при необходимости, инкременируется соответствующий счетчик.
Получившиеся значения фильтруются путем усреднения последних 5 значений.
Результат фильтрации сравнивается с заданным пороговым значением. Меняя порог - меняем чувствительность.
Конструкция радара - управляемый при помощи полевика с логическим уровнем ИК светодиод 875 nm, подключен через токоограничительный резистор 3 кОм, оптически изолирован - помещен в корпус из под электролита (спасибо Radist'у за идею
).
TSOP 940 nm 38 кГц, подключен согласно даташита.
Срабатывания четкие, надежные, в отличие от алгоритма, когда проверяется состояние TSOP после пачки импульсов.