Доработал алгоритм согласно Вашему графику, там только непонятно начальное состояние реле.
Когда нет прохождения сигнала - реле включено.
Когда есть прохождение сигнала, программа считает заданное количество прохождений, затем отключает реле.
Число повторов задается через EEPROM в ячейке с адресом 0x00. Число должно быть меньше 100, иначе берется значение по умолчанию - 5.
Вероятно я неправильно понял задачу, уточните. Сейчас светодиод периодически отсылает пачку импульсов, содержащий в себе некоторый код. По примеру, как работают пульты ДУ. Сигнал приемником должен быть не просто принят, но и проверен на соответствие отправленному коду. Преимущество этого метода - экономичность, надежность и исключение ошибок при наличии помех. Недостаток - низкое быстродействие. Сейчас по умолчанию число повторов сигнала установлено 5, периодичность отправки сигнала ~120 мсек. Таким образом, программа сможет определить снижение уровня примерно через 0,6-0,8 сек.
Если частоту 36 кГц излучать непрерывно, без модуляции, то быстродействие значительно вырастет. Но не будет преимуществ нынешнего варианта.