Primero, para su aplicación particular, realmente solo necesita una frecuencia de muestreo de aproximadamente 1 kHz, suponiendo que esté sintonizando la frecuencia fundamental y no uno de los parciales inarmónicos ...
De todos modos, en cuanto a la tasa de muestreo máxima posible, el manual de Arduino dice:
Se necesitan aproximadamente 100 microsegundos (0,0001 s) para leer una entrada analógica, por lo que la velocidad máxima de lectura es de aproximadamente 10,000 veces por segundo.
Esto implicaría que la frecuencia de muestreo de 10 kHz es la máxima. Sin embargo. Puede obtener tasas de muestreo más altas accediendo directamente a los registros de ADC . La página Arduino Realtime Audio Processing utiliza dos canales a 15 kHz, por ejemplo. Entonces, el máximo de 10 kHz es solo mientras se usa la función incorporada AnalogRead (), porque tiene mucha sobrecarga.
El ADC está optimizado para un mejor funcionamiento con una velocidad de reloj de entre 50 kHz y 200 kHz:
Por defecto, los circuitos de aproximación sucesivos requieren una frecuencia de reloj de entrada [reloj ADC] entre 50 kHz y 200 kHz para obtener la resolución máxima.
Dado que una conversión ADC toma 13 ciclos de reloj, esta sería una frecuencia de muestreo de 4 kHz a 15 kHz. De acuerdo con AVR120: Caracterización y calibración del ADC en un AVR :
Para un rendimiento óptimo, el reloj ADC no debe exceder los 200 kHz. Sin embargo, las frecuencias de hasta 1 MHz no reducen significativamente la resolución ADC.
No se caracteriza el funcionamiento del ADC con frecuencias superiores a 1 MHz.
Frecuencia de reloj de 1 MHz = frecuencia de muestreo de 77 kHz, así que ese es el máximo realista.
El hilo del foro ¿Lectura analógica más rápida? tiene más información sobre esto