А если воспользоватся вот этим 
	Код HTML:
	pulseIn(порт, значение); 
Описание: 
Считывает импульс (высокий или низкий) c цифрового порта и возвращает продолжительность импульса в микросекундах. 
Например, если параметр «значение» при вызове функции установлен в HIGH, то pulseIn() ожидает, когда на порт поступит высокий уровень сигнала. С момента его поступления начинается отсчет времени до тех пор, пока на порт не поступит низкий уровень сигнала. Функция возвращает длину импульса (высокого уровня) в микросекундах. Работает с импульсами от 10 микросекунд до 3 минут. Обратите внимание, что эта функция не будет возвращать результат, пока импульс не будет обнаружен. 
Параметры: 
порт: номер порта, с которого считываем импульс 
значение: тип импульса HIGH или LOW 
Возвращаемое значение: возвращает длительность импульса в микросекундах (тип int) 
Пример: 
int duration; // объявление переменной duration типа int
duration = pulseIn(pin, HIGH); // измеряем длительность импульса
 т.е программа будет такой
	Код HTML:
	// Сбор данных с двух АЦП, и двух цифровых входов   
    // 12 - скорость  
    // 13 - тахометр  
    // 2 - температура охлаждающей жидкости  
    // 3 - уровень топлива  
    // 4 - напряжение автомобильной сети  
    for(i=3; i<=4; i++)  
      {  
        resultInput[i]=analogRead(i);    
      }  
    for(i=12; i<=13; i++)
      {
        resultInput[i]= pulseIn(pin(i), HIGH);
      }