La frecuencia de las señales del codificador está directamente relacionada con la resolución del codificador y la velocidad del eje del motor (antes de la caja de cambios, ya que es donde se adjunta).
$$ f_ {enc} = CPR * u_M $$
donde: \ $ f_ {enc} \ $ es la frecuencia de salida del codificador, \ $ CPR \ $ significa "Counts Per Revolution", \ $ u_M \ $ es la velocidad del motor en \ $ \ frac {revolutions} { sec} \ $.
La tasa de Nyquist determina que la frecuencia de muestreo debe duplicar la frecuencia de la señal. Sin embargo, tenga en cuenta que las dos señales se compensan con \ $ 90 ^ o \ $, por lo que es como muestrear una señal con una frecuencia \ $ 2f_ {enc} \ $. Por lo tanto, el μC debe utilizar una frecuencia de muestreo de:
$$ F_s = 4f_ {enc} = 4 * CPR * u_M $$
Esto sería un valor mínimo y cualquier valor superior sería más sólido.
La frecuencia de muestreo del arduino, y cualquier otro microcontrolador, dependerá de qué tan rápido sea su código y el reloj de μC. Para esta aplicación específica, puede utilizar una de las salidas del codificador como señal de interrupción y cuando se activa la interrupción, simplemente lea la segunda salida. Luego, simplemente incremente o disminuya el contador de acuerdo con el valor de la segunda salida. Esto es mucho más rápido que muestrear continuamente las señales. Aunque no es determinista ya que el código ahora implica una interrupción.
La "hoja de datos" del codificador es tan mala que no puedo saber qué es la RCP, pero una vez que se obtiene ese valor, calcular la frecuencia de muestreo mínima requerida es sencillo.