А если воспользоватся вот этим
Код 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);
}