Спасибо, почти со всем разобрался.
Только не понимаю зачем запускать цикл:
for(i=0; i<num; i++) //цикл несущей
{
digitalWrite(irLed, HIGH); //зажигаем ик-диод
delayMicroseconds(impulse); //положительный полупериод
digitalWrite(irLed, LOW); //гасим ик-диод
delayMicroseconds(impulse-1); //выравниваем скважность
}
ведь к:
val=digitalRead(tsop);//Прочитать показания датчика
контроллер перейдет только по завершении цикла if