En primer lugar, para su aplicación particular, realmente sólo necesita una frecuencia de muestreo de 1 kHz más o menos, suponiendo que está sintonizando la frecuencia fundamental y no uno de los parciales inarmónicos ...
De todos modos, en cuanto a la máxima frecuencia de muestreo posible, el Manual de Arduino dice:
La lectura de una entrada analógica tarda unos 100 microsegundos (0,0001 s), por lo que la velocidad máxima de lectura es de unas 10.000 veces por segundo.
Esto implicaría que la frecuencia de muestreo de 10 kHz es la máxima. Sin embargo. Puede obtener mayores tasas de muestreo si acceder directamente a los registros del ADC . El Procesamiento de audio en tiempo real con Arduino utiliza dos canales a 15 kHz, por ejemplo. Así que el máximo de 10 kHz es sólo mientras se usa la función incorporada AnalogRead(), porque tiene mucha sobrecarga.
El ADC está optimizado para funcionar mejor con una velocidad de reloj de entre 50 kHz y 200 kHz:
Por defecto, el circuito de aproximación sucesiva requiere una frecuencia de reloj de entrada [reloj ADC] entre 50 kHz y 200 kHz para obtener la máxima resolución.
Dado que una conversión ADC tarda 13 ciclos de reloj, esto supondría una frecuencia de muestreo de 4 kHz a 15 kHz. Según AVR120: Caracterización y calibración del ADC en un AVR :
Para un rendimiento óptimo, el reloj del ADC no debe superar los 200 kHz. Sin embargo, las frecuencias de hasta 1 MHz no reducen significativamente la resolución del ADC.
El funcionamiento del ADC con frecuencias superiores a 1 MHz no está caracterizado.
1 MHz de frecuencia de reloj = 77 kHz de frecuencia de muestreo, así que ese es el máximo realista.
El hilo del foro ¿Lectura analógica más rápida? tiene más sobre esto.