Tacómetro de baja velocidad con Arduino

Ando necesitando diseñar un tacómetro con Arduino el cual pueda medir velocidades menores a 100rpm con una resolución de 1rpm. Lo voy a utilizar con un encoder de diez pulsos por vuelta fijado en el eje de un motor. Hice un prototipo midiendo pulsos durante un segundo, pero la resolución en malísima (la resolución es aprox. 10rpm por pulso).
¿Tendré que medir tiempos en vez de pulsos? ¿O qué otro método me recomiendan?
Aprovecho para consultar ahora ya que no tengo el proyecto durante unos días y con todas las ideas que recopile cuando vuelva a tenerlo pruebo.

Muchas gracias!!!

tienes sos opciones

contar los pulsos en un periodo de tiempo largo (1 minuto por ejemplo)

o contar el tiempo entre dos pulsos cosas un reloj lo suficientemente rápido

el caso que nos ocupa 100rpm son 0.6 segundos por pulso, vas sobrado para hacerlo con millis y interrupciones (incluso sin interrupciones chequeando continuamente la entrada si la señal tiene un HIGH que dure un tiempo razonablemente alto)

Para la precisión se usan las interrupciones externas.

Para la resolución se usa un contador de microsegundos (o de ciclos del reloj de ser posible).