Выяснил окончательно, у нас движок и коробка японские и датчик японский: 2500 импульсов на километр, 2.5 импульса на метр.
Посему код выглядит так:
Код:
void int_on()
{
count++; //увеличить счетчик volatile
if (count >=2) //ждем 2 импульса - 2имп=0,8м
{
speedtime = micros()-time; //время прихода 2 импульсов
time = micros(); //обнулить
Speed=((0.8*3600000)/speedtime); //перевод в км/ч
Serial.println(speedtime);
Serial.println(Speed);
count = 0;
}
}
Единственный ньюанс:
Значение micros() переполняется и сбрасывается на ноль, приблизительно через 70 минут.
То есть после часа поездки, произойдет сбой или это программно обработать придется...