Сначала выкидываете arduino IDE, затем отказываетесь от библиотек, предоставляемых arduino и читаете мануалы к AVR. И тут окажется, что есть такая штука, как input capture. При замыкании геркона процессор аппаратно помещает в специальный регистр время, когда это произошло, а потом вызывает прерывание.
Только висит IC не на том таймере, который используется для подсчета времени в arduino.
Без использования IC у вас нормально спидометр работать не будет.